B
    u9a                 @   s   d Z ddlZddlmZ ddlmZmZmZ ejdd dkrLe	ed nLe
ed ed	 d
ZdZdZedZG dd dee ZG dd	 d	ee ZdS )zEModule for testing the behavior of generics across different modules.    N)dedent)TypeVarGenericOptional   )      af  
    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__
    AB)	default_a	default_bTc               @   s   e Zd ZeddZdS )r	   r
   )Zsome_bN)__name__
__module____qualname__dict__annotations__ r   r   (/usr/lib/python3.7/mod_generics_cache.pyr	   '   s   c               @   s.   e Zd ZG dd dee ZededdZdS )r
   c               @   s   e Zd ZdS )zB.AN)r   r   r   r   r   r   r   r	   .   s   r	   zB.A)Zmy_inner_a1Zmy_inner_a2Z
my_outer_aN)r   r   r   r   r   r	   r   r   r   r   r   r   r
   -   s
   )__doc__systextwrapr   typingr   r   r   version_infoexecr   r   r   r   r   r	   r
   r   r   r   r   <module>   s   
