Staging
v0.5.1
https://github.com/python/cpython
Revision 9eb3d5463976068900e94b860ced7e035885835c authored by Steve Dower on 21 August 2019, 22:52:42 UTC, committed by GitHub on 21 August 2019, 22:52:42 UTC
bpo-37834: Normalise handling of reparse points on Windows
* ntpath.realpath() and nt.stat() will traverse all supported reparse points (previously was mixed)
* nt.lstat() will let the OS traverse reparse points that are not name surrogates (previously would not traverse any reparse point)
* nt.[l]stat() will only set S_IFLNK for symlinks (previous behaviour)
* nt.readlink() will read destinations for symlinks and junction points only

bpo-1311: os.path.exists('nul') now returns True on Windows
* nt.stat('nul').st_mode is now S_IFCHR (previously was an error)
1 parent c30c869
Raw File
Tip revision: 9eb3d5463976068900e94b860ced7e035885835c authored by Steve Dower on 21 August 2019, 22:52:42 UTC
bpo-37834: Normalise handling of reparse points on Windows (GH-15370)
Tip revision: 9eb3d54
mod_generics_cache.py
"""Module for testing the behavior of generics across different modules."""

import sys
from textwrap import dedent
from typing import TypeVar, Generic, Optional


if sys.version_info[:2] >= (3, 6):
    exec(dedent("""
    default_a: Optional['A'] = None
    default_b: Optional['B'] = None

    T = TypeVar('T')


    class A(Generic[T]):
        some_b: 'B'


    class B(Generic[T]):
        class A(Generic[T]):
            pass

        my_inner_a1: 'B.A'
        my_inner_a2: A
        my_outer_a: 'A'  # unless somebody calls get_type_hints with localns=B.__dict__
    """))
else:  # This should stay in sync with the syntax above.
    __annotations__ = dict(
        default_a=Optional['A'],
        default_b=Optional['B'],
    )
    default_a = None
    default_b = None

    T = TypeVar('T')


    class A(Generic[T]):
        __annotations__ = dict(
            some_b='B'
        )


    class B(Generic[T]):
        class A(Generic[T]):
            pass

        __annotations__ = dict(
            my_inner_a1='B.A',
            my_inner_a2=A,
            my_outer_a='A'  # unless somebody calls get_type_hints with localns=B.__dict__
        )
back to top