You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Several type annotations in _interpreters and _interpqueues are wrong #13351
_interpreters.exec() is annotated as returning None, while on error it actually returns a namespace (though this fact is largely undocumented)
_interpreters.exec() is annotated as only taking str as the code argument, though it's documented to also accept code objects:
Functions (and code objects) are also supported, with some restrictions.
The code/function must not take any arguments or be a closure
(i.e. have cell vars). Methods and other callables are not supported.
_interpqueues.create() takes 3 mandatory arguments (create(maxsize, fmt, unboundop) -> qid), but the type stub says it takes 2
_interpqueues.get() returns a 3-tuple (item, fmt, unboundop), not 2-tuple as annotated in typeshed
_interpqueues.put takes 4 arguments (qid, item, fmt, unboundop), not 3 as annotated in typeshed (admittedly its own docstring is also wrong!)
I believe the annotations may have been correct at the time they were added, but changes have been made to them in the CPython repository since then.
(PRs to improve introspectability in CPython would also be welcome -- I'm guessiong these would probably have all been caught by our tests if inspect.signature() produced good results for these functions!)
Thanks for documenting this @agronholm! I originally annotated these back during the beta period, I'll go through again and make sure these are up to date and put up a PR.
Activity
AlexWaygood commentedon Dec 31, 2024
PR(s) welcome!
(PRs to improve introspectability in CPython would also be welcome -- I'm guessiong these would probably have all been caught by our tests if
inspect.signature()produced good results for these functions!)max-muoto commentedon Jan 2, 2025
Thanks for documenting this @agronholm! I originally annotated these back during the beta period, I'll go through again and make sure these are up to date and put up a PR.
max-muoto commentedon Jan 2, 2025
Just put up a PR fixing these: #13355
ZeroIntensity commentedon Jan 2, 2025
It's
namespace | None. It only returns a namespace if an exception occurred.agronholm commentedon Jan 2, 2025
Isn't that what I said too?
ZeroIntensity commentedon Jan 2, 2025
Ah, I misinterpreted/misread it--I saw "on error" as "erroneously." Sorry 😆
max-muoto commentedon Jan 29, 2025
We should be able to close this out. CC: @AlexWaygood