Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR removes a check that always tried to autocomplete a class using its
__init__
function.In fact, the
inspect
module (used afterwards inbpython/bpython/inspection.py
Line 286 in f9b21ca
__init__
. Since at least Python 3.6, it handles__call__
,__new__
and__signature__
in addition to__init__
, so restricting the signatures to__init__
is actually a downgrade.See https://github.com/python/cpython/blob/2c56c97f015a7ea81719615ddcf3c745fba5b4f3/Lib/inspect.py#L2284
I'm raising this issue because our CLI requires
__signature__
to work, which is the case if you letinspect.signature
do its job by default but not if you manually selectcls.__init__
🙂Note: I also doubt that the
__new__
check below is useful on modern Python versions, since__new__
is also checked byinspect.signature
(therefore byinspection.getfuncprops
), but I didn't remove it in this PR.