Closed
Description
There are several issues in the code of __annotations__
getters and setters in type
and module
types.
PyDict_Contains()
returns -1 on error. The code interprets it as a positive answer.- Calling
PyDict_Contains()
is not needed in all these cases at first place. Just try to get or delete an attribute and analyze the result. - All errors raised when accessing
module.__dict__
(including MemoryError and KeyboardInterrupt) are replaced with a TypeError.