Several type annotations in _interpreters
and _interpqueues
are wrong #13351
Open
Description
_interpreters.exec()
is annotated as returningNone
, while on error it actually returns anamespace
(though this fact is largely undocumented)_interpreters.exec()
is annotated as only takingstr
as thecode
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.