[$] Inspecting and modifying Python types during type checking
Python has aunique approach to static typing. Python programs can contain typeannotations, and even access those annotations at run time, but the annotationsaren't evaluated by default. Instead, it is up to external programs to ascribemeaning to those annotations. The annotations themselves can be arbitrary Pythonexpressions, but in practice usually involve using helpers from the built-intyping module, the meanings of which external type-checkers mostlyagree upon. Yet the type system implicitly defined by the typing moduleand common type-checkers is insufficiently powerful to model all of the kinds ofdynamic metaprogramming found in real-world Python programs.PEP 827 ("Type Manipulation")aims to add additionalcapabilities to Python's type system to fix this, butdiscussionof the PEP has been of mixed sentiment.