
    =)iE                     X   U d dl Z d dlmZmZmZmZmZmZmZm	Z	m
Z
 e j                  dk  rdeee      defdZnd dlZdeee      defdZdZdj"                  Zdeed   fZeeeef   ed	<   d
edefdZd
ee   defdZd
ee   defdZd
ee   deedf   fdZd
ee   deedf   fdZy)    N)		AnnotatedAnyCallableLiteralOptionalUnionget_args
get_originget_type_hints)   
   tpreturnc                     | t         u S N)r   r   s    */mnt/e/genesis-system/lib/typer/_typing.pyis_unionr      s    U{    c                 :    | t         u xs | t        j                  u S r   )r   types	UnionTyper   s    r   r   r      s    U{3bEOO33r   )NoneTypeis_none_typeis_callable_typeis_literal_typeall_literal_valuesr   r   r   r	   r
   r   
NONE_TYPEStype_c                 &    t         D ]  }| |u s y y)NTF)r   )r   	none_types     r   r   r   4   s!     	I r   c                 8    | t         u xs t        |       t         u S r   )r   r
   r   s    r   r   r   ;   s    H=
5 1X ==r   c                 $    t        |       t        u S r   )r
   r   r#   s    r   r   r   ?   s    e''r   .c                     t        |       S r   )r	   r#   s    r   literal_valuesr&   C   s    E?r   c                 X    t        |       s| fS t        |       }t        d |D              S )z
    This method is used to retrieve all Literal values as
    Literal can be used recursively (see https://www.python.org/dev/peps/pep-0586)
    e.g. `Literal[Literal[Literal[1, 2, 3], "foo"], 5, None]`
    c              3   @   K   | ]  }t        |      D ]  }|   y wr   )r   ).0valuexs      r   	<genexpr>z%all_literal_values.<locals>.<genexpr>Q   s"     Ju0B50IJ1JJs   )r   r&   tuple)r   valuess     r   r   r   G   s.     5!xE"FJJJJr   )systypingr   r   r   r   r   r   r	   r
   r   version_infotypeboolr   r   __all__	__class__r   r   r-   __annotations__r   r   r   r&   r    r   r   <module>r8      s   
 
 
 gXd3i( T  4Xd3i( 4T 4 >> %)(GDM#B
E#sC-  B  >DI >$ >(49 ( ($s) c3h 
Kd3i 
KE#s(O 
Kr   