gh-113978: Ignore warnings on text completion inside REPL - #113979
Conversation
sobolevn
left a comment
There was a problem hiding this comment.
Maybe instead we should do this?
» git patch
diff --git Lib/rlcompleter.py Lib/rlcompleter.py
index 206d6fb511c..62fd2c7fdec 100644
--- Lib/rlcompleter.py
+++ Lib/rlcompleter.py
@@ -176,8 +176,9 @@ def attr_matches(self, text):
if (word[:n] == attr and
not (noprefix and word[:n+1] == noprefix)):
match = "%s.%s" % (expr, word)
+ import types
if isinstance(getattr(type(thisobject), word, None),
- property):
+ (property, types.GetSetDescriptorType)):
# bpo-44752: thisobject.word is a method decorated by
# `@property`. What follows applies a postfix if
# thisobject.word is callable, but know we know that
|
My thoughs: properties should not evaluate when auto-complete works, so I think that adding an ignore just hides this problem. So, we should really address the root of this problem: do not execute |
I agree. But is this true only for built-in objects and their properties or user defined as well? class D:
def __get__(self, _, __):
print("evaluated")
class C:
prop = D()trying to get suggestions for |
|
We can also try to replace |
|
Some things depend on being evaluated. Using cpython/Lib/test/test_rlcompleter.py Lines 51 to 85 in 77b45fa Things like |
|
Thanks @WolframAlph for the PR, and @ambv for merging it 🌮🎉.. I'm working now to backport this PR to: 3.13. |
…onGH-113979) (cherry picked from commit e03dde5) Co-authored-by: Yan Yanchii <yyanchiy@gmail.com>


gh-113978