Skip to content

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

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

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.
@jdevries3133
Copy link
Contributor Author

@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 added needs backport to 3.9 only security fixes needs backport to 3.10 only security fixes labels Jul 29, 2021
@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
@miss-islington
Copy link
Contributor

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 <[email protected]>
@bedevere-bot
Copy link

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

@bedevere-bot bedevere-bot removed the needs backport to 3.10 only security fixes label Jul 29, 2021
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 <[email protected]>
@bedevere-bot bedevere-bot removed the needs backport to 3.9 only security fixes label Jul 29, 2021
@bedevere-bot
Copy link

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 <[email protected]>
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 <[email protected]>
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.

5 participants