mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
bpo-46348: modernize test_typing
(GH-30547)
This commit is contained in:
parent
43839ba438
commit
e2a9c8ef09
2 changed files with 16 additions and 66 deletions
|
@ -1,53 +1,21 @@
|
|||
"""Module for testing the behavior of generics across different modules."""
|
||||
|
||||
import sys
|
||||
from textwrap import dedent
|
||||
from typing import TypeVar, Generic, Optional
|
||||
|
||||
default_a: Optional['A'] = None
|
||||
default_b: Optional['B'] = None
|
||||
|
||||
if sys.version_info[:2] >= (3, 6):
|
||||
exec(dedent("""
|
||||
default_a: Optional['A'] = None
|
||||
default_b: Optional['B'] = None
|
||||
|
||||
T = TypeVar('T')
|
||||
T = TypeVar('T')
|
||||
|
||||
|
||||
class A(Generic[T]):
|
||||
some_b: 'B'
|
||||
|
||||
|
||||
class B(Generic[T]):
|
||||
class A(Generic[T]):
|
||||
some_b: 'B'
|
||||
pass
|
||||
|
||||
|
||||
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__
|
||||
)
|
||||
my_inner_a1: 'B.A'
|
||||
my_inner_a2: A
|
||||
my_outer_a: 'A' # unless somebody calls get_type_hints with localns=B.__dict__
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue