TYP: Postponed Evaluation of Annotations (PEP 563)
a few files as POC/for discussion

from https://www.python.org/dev/peps/pep-0563/

> PEP 3107 added support for arbitrary annotations on parts of a function definition. Just like default values, annotations are evaluated at function definition time. This creates a number of issues for the type hinting use case:

> - forward references: when a type hint contains names that have not been defined yet, that definition needs to be expressed as a string literal;
> - type hints are executed at module import time, which is not computationally free.

> Postponing the evaluation of annotations solves both problems.
+/- 0 on doing this now versus waiting until its fully implemented in the standard library. Does this have a noticeable impact on import performance or is it stylistic for where we are at now? I've not tested performance, presumably the import time gets a little longer with every type annotation added.

from a style POV. we can get rid of some noqa: F401 and get better formatting with black (although that's only really the case when PRs with whole typing expressions that sometimes get merged)

for a contributor POV, there are less things to get right if don't need to ensure types are enclosed in quotes see https://github.com/pandas-dev/pandas/pull/36022#issuecomment-684952618

from a reviewer POV, it's nice to just show the type in the IDE which can't be done with string literals (VS code anyway)

> +/- 0 on doing this now versus waiting until its fully implemented in the standard library.

That'll be Python 3.10 I would be +1 on this. thanks @simonjayhawkins 