• Ivan Levkivskyi's avatar
    bpo-32873: Treat type variables and special typing forms as immutable by copy and pickle (GH-6216) · 83494037
    Ivan Levkivskyi yazdı
    This also fixes python/typing#512
    This also fixes python/typing#511
    
    As was discussed in both issues, some typing forms deserve to be treated
    as immutable by copy and pickle modules, so that:
    * copy(X) is X
    * deepcopy(X) is X
    * loads(dumps(X)) is X  # pickled by reference
    
    This PR adds such behaviour to:
    * Type variables
    * Special forms like Union, Any, ClassVar
    * Unsubscripted generic aliases to containers like List, Mapping, Iterable
    
    This not only resolves inconsistencies mentioned in the issues, but also
    improves backwards compatibility with previous versions of Python
    (including 3.6).
    
    Note that this requires some dances with __module__ for type variables
    (similar to NamedTuple) because the class TypeVar itself is define in typing,
    while type variables should get module where they were defined.
    
    https://bugs.python.org/issue32873
    83494037
2018-03-24-19-54-48.bpo-32873.cHyoAm.rst 187 Bytes