2017-02-13 17:50:14 -04:00
|
|
|
"""Module for testing the behavior of generics across different modules."""
|
|
|
|
|
2023-05-18 19:56:15 -03:00
|
|
|
from typing import TypeVar, Generic, Optional, TypeAliasType
|
2017-02-13 17:50:14 -04:00
|
|
|
|
2022-01-12 12:48:10 -04:00
|
|
|
default_a: Optional['A'] = None
|
|
|
|
default_b: Optional['B'] = None
|
2017-02-13 17:50:14 -04:00
|
|
|
|
2022-01-12 12:48:10 -04:00
|
|
|
T = TypeVar('T')
|
2017-02-13 17:50:14 -04:00
|
|
|
|
|
|
|
|
2022-01-12 12:48:10 -04:00
|
|
|
class A(Generic[T]):
|
|
|
|
some_b: 'B'
|
2017-09-14 15:33:00 -03:00
|
|
|
|
|
|
|
|
2022-01-12 12:48:10 -04:00
|
|
|
class B(Generic[T]):
|
2017-09-14 15:33:00 -03:00
|
|
|
class A(Generic[T]):
|
2022-01-12 12:48:10 -04:00
|
|
|
pass
|
2017-09-14 15:33:00 -03:00
|
|
|
|
2022-01-12 12:48:10 -04:00
|
|
|
my_inner_a1: 'B.A'
|
|
|
|
my_inner_a2: A
|
|
|
|
my_outer_a: 'A' # unless somebody calls get_type_hints with localns=B.__dict__
|
2023-05-18 19:56:15 -03:00
|
|
|
|
|
|
|
type Alias = int
|
|
|
|
OldStyle = TypeAliasType("OldStyle", int)
|