Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-44752: Make rlcompleter not call @property methods #27401

Merged
merged 3 commits into from Jul 29, 2021

Conversation

jdevries3133
Copy link
Contributor

@jdevries3133 jdevries3133 commented Jul 28, 2021

  • rlcompleter was calling these methods to identify whether to add
    parenthesis to the completion, based on if the attribute is callable.
  • for property objects, completion with parenthesis are never desirable.
  • property methods with print statements behaved very strangely, which
    was especially unfriendly to language newcomers. could suddenly
    produce output unexpectedly.

https://bugs.python.org/issue44752

* rlcompleter was calling these methods to identify whether to add
  parenthesis to the completion, based on if the attribute is callable.
* for property objects, completion with parenthesis are never desirable.
* property methods with print statements behaved very strangely, which
  was especially unfriendly to language newcomers. <tab> could suddenly
  produce output unexpectedly.
Lib/rlcompleter.py Show resolved Hide resolved
Lib/rlcompleter.py Show resolved Hide resolved
Lib/test/test_rlcompleter.py Outdated Show resolved Hide resolved
@jdevries3133
Copy link
Contributor Author

jdevries3133 commented Jul 28, 2021

@ambv, I see what you mean now about that change weakening the test. I created a new test case, and revised the original one to use the original assertions, now using __getattribute__ instead of @property since @property is now special-cased.

@ambv ambv changed the title bpo-44752: rlcompleter does not call @property methods bpo-44752: Make rlcompleter not call @property methods Jul 29, 2021
@ambv ambv merged commit 50de8f7 into python:main Jul 29, 2021
13 checks passed
@miss-islington
Copy link
Contributor

miss-islington commented Jul 29, 2021

Thanks @jdevries3133 for the PR, and @ambv for merging it 🌮🎉.. I'm working now to backport this PR to: 3.10, 3.9.
🐍🍒🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Jul 29, 2021
)

* rlcompleter was calling these methods to identify whether to add
  parenthesis to the completion, based on if the attribute is callable.
* for property objects, completion with parenthesis are never desirable.
* property methods with print statements behaved very strangely, which
  was especially unfriendly to language newcomers. <tab> could suddenly
  produce output unexpectedly.
(cherry picked from commit 50de8f7)

Co-authored-by: Jack DeVries <58614260+jdevries3133@users.noreply.github.com>
@bedevere-bot
Copy link

bedevere-bot commented Jul 29, 2021

GH-27444 is a backport of this pull request to the 3.10 branch.

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Jul 29, 2021
)

* rlcompleter was calling these methods to identify whether to add
  parenthesis to the completion, based on if the attribute is callable.
* for property objects, completion with parenthesis are never desirable.
* property methods with print statements behaved very strangely, which
  was especially unfriendly to language newcomers. <tab> could suddenly
  produce output unexpectedly.
(cherry picked from commit 50de8f7)

Co-authored-by: Jack DeVries <58614260+jdevries3133@users.noreply.github.com>
@bedevere-bot
Copy link

bedevere-bot commented Jul 29, 2021

GH-27445 is a backport of this pull request to the 3.9 branch.

ambv pushed a commit that referenced this pull request Jul 29, 2021
…H-27444)

* rlcompleter was calling these methods to identify whether to add
  parenthesis to the completion, based on if the attribute is callable.
* for property objects, completion with parenthesis are never desirable.
* property methods with print statements behaved very strangely, which
  was especially unfriendly to language newcomers. <tab> could suddenly
  produce output unexpectedly.
(cherry picked from commit 50de8f7)

Co-authored-by: Jack DeVries <58614260+jdevries3133@users.noreply.github.com>
ambv pushed a commit that referenced this pull request Jul 29, 2021
…27445)

* rlcompleter was calling these methods to identify whether to add
  parenthesis to the completion, based on if the attribute is callable.
* for property objects, completion with parenthesis are never desirable.
* property methods with print statements behaved very strangely, which
  was especially unfriendly to language newcomers. <tab> could suddenly
  produce output unexpectedly.
(cherry picked from commit 50de8f7)

Co-authored-by: Jack DeVries <58614260+jdevries3133@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants