New submission from Netzeband <an...@netzeband.eu>:
When evaluating the type-hints of an inner-class (a class defined inside a function scope), the forward declaration does not work correctly. In this case the typing.get_type_hints does not get the right namespace, thus the class-string specified is not found. When using the same syntax for a normal class (defined in global space) it works, or when using another class instead a forward declaration, also everything works. As a workaround one could pass the local namespace (locals()) from the function where the class has been defined in to typing.get_type_hints. However in normal situations the typing.get_type_hints call is deep in the call hierarchy to do some runtime type-checks and at this point only the reference to the function-object is existing and no-one is aware of the fact, that this is just a method defined in a inner class. >From the outside perspective one would expect, that typing.get_type_hints >reacts the same, independent of the type of class. ---------- components: Library (Lib) files: typing_check.py messages: 349535 nosy: netbnd priority: normal severity: normal status: open title: typing.get_type_hints wrong namespace for forward-declaration of inner class type: behavior versions: Python 3.6, Python 3.7 Added file: https://bugs.python.org/file48539/typing_check.py _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue37835> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com