
    z%i                       	 d dl mZmZ d dlZd dlmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Zd dlZd dlZd dlZd dlmZmZmZmZ d dlmZmZmZmZmZmZmZmZ g dZdddd	ZddddZd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'g Z(i Z)ddddZ* e+       fdZ, G d d      Z- G d d      Z. G d de-e.d
      Z/ G d d e/d
      Z0 G d! d"e1      Z2 G d# d$e2%      Z3e/d&        Z4e/d'        Z5e/d(        Z6e/d)        Z7e/d*        Z8e/d+        Z9e/d,        Z:d- Z;e/d.        Z<e0 e*d
      d/               Z=e/d0        Z>e/d1        Z?e/d2        Z@ G d3 d4e-d
      ZAd5e3d6eBfd7ZCd5e3d6eBfd8ZD G d9 d:      ZEd; ZFd< ZGd= ZHd> ZIe*d?        ZJd@ ZKdA ZL G dB dCe-d
      ZM G dD dEeMd
      ZN G dF dGe.eMd
      ZO G dH dIeOd
      ZP G dJ dKe.eNd
      ZQ G dL dMeOd
      ZR G dN dOeOd
      ZS G dP dQe.eNd
      ZTdR ZU G dS dTeNd
      ZV G dU dVeNd
      ZWe/dW        ZX G dX dYeNd
      ZY G dZ d[      ZZ e+h d\      Z[ e+h d]      Z\e[e\z  d^hz  Z]d_ Z^d` Z_ddbZ`dddZag dedfdggdhZbej                  di        Zde(j                  edj                         dj Zg ej                  eeg       dk Zi ej                  eei       [g[i G dl dme      Zjekdn        Zl G do dpeej%      Zm G dq dre.eNd
      Zn G ds dt      Zodu Zpdv Zqdw Zrej                  ej                  ej                  ej                  eeefZwddxZxdy Zydz Zzd{ Z{d| Z|d}Z}d~e5d6e5fdZ~d Zd Zd Z e ej                  ee            Zd Zd Zd Zd Z ed      Z ed      Z ed      Z edd
      Z edd
      Z edd
      Z edd
      Z edd
e1      Z edee      ZeOZ eej                   j*                  d       Z eej                   j,                  da      Z eej                   j.                  d      Z eej                   j0                  da      Z eej                   j2                  da      Z eej                   j4                  da      Z eej                   j6                  da      Z eej                   j8                  da      Z eej                   j:                  d       Z eej                   j<                  da      Z eej                   j>                  da      Z eRej                   j@                  dc      Zde_         eej                   jD                  dad      Z eej                   jH                  da      Z eej                   jJ                  dc      Z eej                   jL                  dc      Z eej                   jN                  da      Z eej                   jP                  da      Z ePej                   jR                  d d      Z eSeddd      Zde_         eedadd      Z eej\                  dad      Z eedadd      Z ee+dadd      Z eej                   jd                  da      Z eej                   jf                  da      Z eej                   jh                  dc      Z eej                   jj                  da      Z eejl                  dad      Z eejp                  dad      Z eedcdd      Z eej                  dcd      Z eejx                  dc      Z eejz                  da      Z eej|                  dc      Z eej                   j~                  d      Z eej                   j                  dc      Z ee1dadd      Zde_        ep G d dem             Zep G d dem             Zep G d dem             Zep G d dem             Zep G d dem             Zep d               Zep d               ZddZ e+h d      Z e+h d      Z G d de1      ZddZe1j                  eddi       Zd Zee_         G d de1      Zdd
ddZe1j                  eddi       Zd e_        e/d        Ze/dÄ        Z G dĄ dū      ZeZdZ G dƄ dee         Z G dȄ dee         Z G dʄ dee         Z G d̄ de1      Z G d΄ deݬ%      Zedz   e_        eej                  eސj                  <    eej                  da      Z eej                  da      Z G dф deݬ%      Z
edz   e
_        e
ej                  e
j                  <    dԄ        Z G dՄ dem      Zd
dddddלdeBdeBdeBdeBdee1e3   ede3f   z  df   de3d6efd߄Zddd fZ d        Zy)    )abstractmethodABCMetaN)defaultdict)WrapperDescriptorTypeMethodWrapperTypeMethodDescriptorTypeGenericAlias)_idfuncTypeVar	ParamSpecTypeVarTupleParamSpecArgsParamSpecKwargsTypeAliasTypeGeneric)c	AnnotatedAnyCallableClassVarConcatenateFinal
ForwardRefr   LiteralOptionalr   ProtocolTupleTyper   r   UnionAbstractSet
ByteString	ContainerContextManagerHashable	ItemsViewIterableIteratorKeysViewMappingMappingViewMutableMappingMutableSequence
MutableSetSequenceSized
ValuesView	AwaitableAsyncIteratorAsyncIterable	Coroutine
CollectionAsyncGeneratorAsyncContextManager
ReversibleSupportsAbsSupportsBytesSupportsComplexSupportsFloatSupportsIndexSupportsIntSupportsRoundChainMapCounterDequeDictDefaultDictListOrderedDictSet	FrozenSet
NamedTuple	TypedDict	GeneratorBinaryIOIOMatchPatternTextIOAnyStrassert_typeassert_nevercastclear_overloadsdataclass_transformfinalget_args
get_originget_overloadsget_type_hintsis_typeddictLiteralStringNeverNewTypeno_type_checkno_type_check_decoratorNoReturnNotRequiredoverloadoverrider   r   Requiredreveal_typeruntime_checkableSelfTextTYPE_CHECKING	TypeAlias	TypeGuardr   UnpackFallow_special_formsc                ^    	 | t        d       S t        | t              rt        | ||      S | S )N)moduleis_class)type
isinstancestrr   )argrq   ro   s      :/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/typing.py_type_convertrx      s3    G
{Dz#s#f7JKKJ    Tc                   	 t         t        f}|s|t        fz  }|r
|t        fz  }t	        | ||      } t        | t              r| j                  |v rt        |  d      | t        t        t        t        t        t        fv r| S |r| t        t        fv r| S t        | t              s| t         t        fv rt        d|  d      t!        |       t"        u rt        | d| dd      | S )N)rq   ro    is not valid as type argumentzPlain z Got z.100.)r   r   r   r   rx   rt   _GenericAlias
__origin__	TypeErrorr   r\   ra   r]   rh   rk   _SpecialFormrs   tuple)rv   msgis_argumentrq   ro   invalid_generic_formss         rw   _type_checkr      s    
 %h/(,!eX-!
F@S
TC3&NN333%=>??
sM8UD)DD
sx&77
#|$/B(B&%CDEECyE3%uS4L233Jry   c                 N    | du xs  t        | t        t        t        t        f      S N.)rt   r   listr   _ConcatenateGenericAlias)rv   s    rw   _is_param_exprr      s,    #: @CD)%=>@ @ry   c                     	 | j                   t        j                  j                  u xr t	        |      dk(  xr t        |d          S )N   r   )r~   collectionsabcr   lenr   )typargss     rw   _should_unflatten_callable_argsr      sE     	+//222 	=Ta;N47$;<ry   c                 X   	 t        | t              r6| j                  dk(  r| j                  S | j                   d| j                   S | du ryt        | t        j
                        r| j                  S t        | t              rddj                  d | D              z   dz   S t        |       S )	Nbuiltinsr|   ....[, c              3   2   K   | ]  }t        |        y wN)
_type_repr).0ts     rw   	<genexpr>z_type_repr.<locals>.<genexpr>   s     :z!}:   ])
rt   rs   
__module____qualname__typesFunctionType__name__r   joinreprobjs    rw   r   r      s     #t>>Z'###..!3#3#3"455
cz#u))*||#uTYY:c:::S@@9ry   c                 b   	 g }| D ]  }t        |t              rt        |t              r/|D ])  }t        |g      D ]  }||vs|j	                  |        + St        |d      r||vsd|j	                  |       vt        |dd      D ]  }||vs|j	                  |         t        |      S N__typing_subst____parameters__ )rt   rs   r   _collect_parametersappendhasattrgetattr)r   
parametersr   x	collecteds        rw   r   r     s     J )a5!  5!4aS!9 5I 
2")))455 Q*+
"!!!$Q 0"5 )J&%%a())$ ry   c           
          	 |st        |  d      t        |      }||k7  rt        d||kD  rdnd d|  d| d|       y )N is not a generic classToo manyfew arguments for 	; actual , expected )r   r   )clsr   elenalens       rw   _check_genericr      sm     3%6788z?Dt|$v%@PSu U##'&D6; < 	< ry   c                     g }| D ]=  }t        |dd       }||r|d   du s|j                  |       -|j                  |       ? |S )N__typing_unpacked_tuple_args__.)r   extendr   )r   newargsrv   subargss       rw   _unpack_argsr   ,  sW    G  #?FGBK34FNN7#NN3  Nry   c                     t        |       }t        |      t        |       k  r2g }| D ])  }||v s|j                  |       |j                  |       + |} | S r   )setr   r   remove)params
all_params
new_paramsr   s       rw   _deduplicater   6  s^    VJ
:V$
 	%AJ!!!$!!!$	% Mry   c                     	 g }| D ]O  }t        |t        t        j                  f      r|j	                  |j
                         ?|j                  |       Q t        t        |            S r   )	rt   _UnionGenericAliasr   	UnionTyper   __args__r   r   r   r   r   ps      rw   _remove_dups_flattenr   D  s_    
 F a,eoo>?MM!**%MM!	 f%&&ry   c                     	 g }| D ]?  }t        |t              r|j                  |j                         /|j	                  |       A t        |      S r   )rt   _LiteralGenericAliasr   r   r   r   r   s      rw   _flatten_literal_paramsr   T  sL    RF a-.MM!**%MM!	
 =ry   typedc               (    	 fd}|  ||       S |S )Nc                       t        j                               }|t         <   t        j	                  |j
                         ~t        j                          fd       }|S )Nr   c                  P    	 t           | i |S # t        $ r Y nw xY w | i |S r   )_cachesr   )r   kwdsfuncs     rw   innerz+_tp_cache.<locals>.decorator.<locals>.inners  s>    t}d3d33 &&&s    	)	functools	lru_cacher   	_cleanupsr   cache_clearwraps)r   cacher   r   s   `  rw   	decoratorz_tp_cache.<locals>.decoratorh  s^     1	##%06**+			' 
	' ry   r   )r   r   r   s    ` rw   	_tp_cacher   c  s%    ( ry   c                    	 t        | t              r| j                        S t        | t        t        t
        j                  f      rt        | t              rft        d | j                  D              }| j                  }t        | |      r| j                  |d d |d   f   } n| j                  |   } |r	t        |    } t        fd| j                  D              }|| j                  k(  r| S t        | t              rt	        | j                  |      S t        | t
        j                        r$t        j                  t        j                   |      S | j#                  |      S | S )Nc              3   V   K   | ]!  }t        |t              rt        |      n| # y wr   )rt   ru   r   r   rv   s     rw   r   z_eval_type.<locals>.<genexpr>  s*       $.c3#7
3S@s   ')r   c              3   :   K   | ]  }t        |        y wr   )
_eval_type)r   aglobalnslocalnsrecursive_guards     rw   r   z_eval_type.<locals>.<genexpr>  s     ^a
1hI^s   )rt   r   	_evaluater}   r	   r   r   r   r   __unpacked__r   r~   rm   r   reduceoperatoror_	copy_with)r   r   r   r   r   is_unpackedev_argss    ```   rw   r   r     s)    !Z {{8Wo>>!m\5??CDa& :: D ..K.q$7LL$s)T"X!67LL&1I^STS]S]^^ajj Ha&g66a)##HLL'::;;w''Hry   c                       e Zd Z	 dZd Zy)_Final)__weakref__c                "    d|vrt        d      y )N_rootz&Cannot subclass special typing classesr   )r   r   r   s      rw   __init_subclass__z_Final.__init_subclass__  s    $DEE ry   N)r   r   r   	__slots__r  r   ry   rw   r   r     s    ( IFry   r   c                       e Zd Z	 dZdZy)_NotIterabler   N)r   r   r   r  __iter__r   ry   rw   r  r    s     IHry   r  c                   \    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zed        Zy)r   )_name__doc___getitemc                 V    || _         |j                  | _        |j                  | _        y r   )r	  r   r  r  )selfgetitems     rw   __init__z_SpecialForm.__init__  s!    %%
ry   c                 8    |dv r| j                   S t        |      )N>   r   r   )r  AttributeError)r  items     rw   __getattr__z_SpecialForm.__getattr__  s     //::T""ry   c                     t        d|       )NCannot subclass r   r  basess     rw   __mro_entries__z_SpecialForm.__mro_entries__  s    *4(344ry   c                      d| j                   z   S Ntyping.r  r  s    rw   __repr__z_SpecialForm.__repr__      4::%%ry   c                     | j                   S r   r  r  s    rw   
__reduce__z_SpecialForm.__reduce__      zzry   c                     t        d|       )NzCannot instantiate r   )r  r   r   s      rw   __call__z_SpecialForm.__call__  s    -dX677ry   c                     t         | |f   S r   r   r  others     rw   __or__z_SpecialForm.__or__      T5[!!ry   c                     t         || f   S r   r$  r%  s     rw   __ror__z_SpecialForm.__ror__      UD[!!ry   c                     t        |  d      )Nz! cannot be used with isinstance()r   r  r   s     rw   __instancecheck__z_SpecialForm.__instancecheck__      4& ABCCry   c                     t        |  d      )Nz! cannot be used with issubclass()r   r  r   s     rw   __subclasscheck__z_SpecialForm.__subclasscheck__  r/  ry   c                 &    | j                  | |      S r   )r	  r  r   s     rw   __getitem__z_SpecialForm.__getitem__  s    }}T:..ry   N)r   r   r   r  r  r  r  r  r  r"  r'  r*  r.  r2  r   r5  r   ry   rw   r   r     sO    0I'
#5&8""DD / /ry   r   )r   c                       e Zd Zd Zy)_LiteralSpecialFormc                 N    t        |t              s|f} | j                  | g| S r   )rt   r   r	  r4  s     rw   r5  z_LiteralSpecialForm.__getitem__  s)    *e,$Jt}}T/J//ry   N)r   r   r   r5  r   ry   rw   r7  r7    s    0ry   r7  c                   (     e Zd Z fdZ fdZ xZS )_AnyMetac                 H    | t         u rt        d      t        |   |      S )Nz+typing.Any cannot be used with isinstance())r   r   superr.  )r  r   	__class__s     rw   r.  z_AnyMeta.__instancecheck__  s&    3;IJJw(--ry   c                 2    | t         u ryt        | 	         S )Nz
typing.Any)r   r<  r  )r  r=  s    rw   r  z_AnyMeta.__repr__  s    3;w!!ry   )r   r   r   r.  r  __classcell__r=  s   @rw   r:  r:    s    .
" "ry   r:  c                         e Zd Z	  fdZ xZS )r   c                 P    | t         u rt        d      t        |   | g|i |S )NzAny cannot be instantiated)r   r   r<  __new__r   r   kwargsr=  s      rw   rC  zAny.__new__  s/    #:899ws4T4V44ry   )r   r   r   rC  r?  r@  s   @rw   r   r     s    	5 5ry   r   )	metaclassc                      	 t        |  d      Nz is not subscriptabler   r4  s     rw   ra   ra     s     tf12
33ry   c                      	 t        |  d      rH  r   r4  s     rw   r]   r]   &  s    ( tf12
33ry   c                      	 t        |  d      rH  r   r4  s     rw   rh   rh   ?  s     tf12
33ry   c                      	 t        |  d      rH  r   r4  s     rw   r\   r\   S  s    , tf12
33ry   c                 <    	 t        ||  d      }t        | |f      S N accepts only single type.r   r}   r  r   r  s      rw   r   r   n  ,    " zdV+E#FGDw''ry   c                 <    	 t        ||  d      }t        | |f      S rM  rO  rP  s      rw   r   r     rQ  ry   c                    	 |dk(  rt        d      t        |t              s|f}dt        fd|D              }t        |      }t	        |      dk(  r|d   S t	        |      dk(  rt        d       |v rt        | |d	      S t        | |      S )
Nr   z Cannot take a Union of no types.z)Union[arg, ...]: each arg must be a type.c              3   6   K   | ]  }t        |        y wr   r   r   r   r   s     rw   r   zUnion.<locals>.<genexpr>  s     ?q{1c*?      r   r   r   name)r   rt   r   r   r   rs   r   r  r   r   s     @rw   r   r     s    : R:;;j%( ]

5C?J??J%j1J
:!!}
:!T
j 8!$
DDdJ//ry   c                     	 t         | |f   S r   r$  )leftrights     rw   _make_unionr_    s     ury   c                 J    	 t        ||  d      }t        |t        d       f   S )Nz requires a single type.)r   r   rs   )r  r   rv   s      rw   r   r     s,    6
jTF*B"C
DCd4j!!ry   c           
          	 t        |      }	 t        d t        t        t	        |                  D              }t        | |      S # t
        $ r Y w xY w)Nc              3   &   K   | ]	  \  }}|  y wr   r   )r   r   _s      rw   r   zLiteral.<locals>.<genexpr>  s     ^A1^s   )r   r   r   r   _value_and_type_iterr   r   r4  s     rw   r   r     s\    , )4J^d;OPZ;[6\)]^^
  j11  s   -A 	AAc                      	 t        |  d      rH  r   r4  s     rw   rk   rk     s     tf12
33ry   c                     	 |dk(  rt        d      t        |t              s|f}|d   du st        |d   t              st        d      dg fd|d d D        |d   }t	        | |      S )Nr   z&Cannot take a Concatenate of no types.r   .zMThe last parameter to Concatenate should be a ParamSpec variable or ellipsis.z/Concatenate[arg, ...]: each arg must be a type.c              3   6   K   | ]  }t        |        y wr   rU  rV  s     rw   r   zConcatenate.<locals>.<genexpr>  s     AAK3'ArW  )r   rt   r   r   r   r[  s     @rw   r   r   	  s     R@AAj%( ]
rNc!Z
2	%J : ; 	;
;CRACRAR:b>RJ#D*55ry   c                 <    	 t        ||  d      }t        | |f      S rM  rO  rP  s      rw   rl   rl   #  s-    +X zdV+E#FGDw''ry   c                   D    e Zd Z	 dZddddZd Zd Zd Zd	 Zd
 Z	d Z
y)r   )__forward_arg____forward_code____forward_evaluated____forward_value____forward_is_argument____forward_is_class____forward_module__NF)rr   c                   t        |t              st        d|      |d   dk(  rd| d}n|}	 t        |dd      }|| _        || _        d	| _        d | _        || _	        || _
        || _        y # t        $ r t	        d|      w xY w)
Nz*Forward reference must be a string -- got r   *(z,)[0]z<string>evalz/Forward reference must be an expression -- got F)rt   ru   r   compileSyntaxErrorrj  rk  rl  rm  rn  ro  rp  )r  rv   r   rq   rr   arg_to_compilecodes          rw   r  zForwardRef.__init__]  s    #s#HPQQ
 q6S= U^N N	Y>:v>D  # $%*"!%'2$$,!"(  	Y OPSwWXX	Ys   A0 0Bc                    | j                   |v r| S | j                  r||ur||i x}}n	||}n||}| j                  5t        t        j
                  j                  | j                  d       d|      }t        t        | j                  ||      d| j                  | j                        }t        ||||| j                   hz        | _        d| _        | j                  S )N__dict__z*Forward references must evaluate to types.)r   ro   T)rj  rl  rp  r   sysmodulesgetr   rt  rk  rn  ro  r   rm  )r  r   r   r   type_s        rw   r   zForwardRef._evaluateu  s    ?2K))WH-DGO%''7!""&&2"KKOOD$;$;TBJPX  T**Hg>< 88$($=$=	E &0x/T=Q=Q<R*R&D" *.D&%%%ry   c                 .   t        |t              st        S | j                  r@|j                  r4| j                  |j                  k(  xr | j
                  |j
                  k(  S | j                  |j                  k(  xr | j                  |j                  k(  S r   )rt   r   NotImplementedrl  rj  rm  rp  r%  s     rw   __eq__zForwardRef.__eq__  s    %,!!%%%*E*E((E,A,AA F**e.E.EEG$$(=(== D''5+C+CC	Ery   c                 D    t        | j                  | j                  f      S r   )hashrj  rp  r  s    rw   __hash__zForwardRef.__hash__  s    T))4+B+BCDDry   c                     t         | |f   S r   r$  r%  s     rw   r'  zForwardRef.__or__  r(  ry   c                     t         || f   S r   r$  r%  s     rw   r*  zForwardRef.__ror__  r+  ry   c                 b    | j                   d}nd| j                   }d| j                  | dS )N z	, module=zForwardRef())rp  rj  )r  module_reprs     rw   r  zForwardRef.__repr__  s@    ""*K%d&=&=%@AKT114[MCCry   TN)r   r   r   r  r  r   r  r  r'  r*  r  r   ry   rw   r   r   U  s9    7'I
)u )0&4EE""Dry   r   r   returnc                 B    t        | t               xr t        | dd      S )N#__typing_is_unpacked_typevartuple__F)rt   rs   r   r   s    rw   _is_unpacked_typevartupler    s(    At$$ EA<eDFry   c                 H    t        | t        t        f      xs t        |       S r   )rt   r   r   r  r  s    rw   _is_typevar_liker    s    a'9-.N2KA2NNry   c                       e Zd Z	 d Zy)_PickleUsingNameMixinc                     | j                   S r   r   r  s    rw   r  z _PickleUsingNameMixin.__reduce__  s    }}ry   N)r   r   r   r  r   ry   rw   r  r    s
    9ry   r  c                     d}t        ||d      }t        |t              r|j                  t        u st        |t
              rt        |dd      rt        | d      |S )N*Parameters to generic types must be types.T)r   r   Fr{   )r   rt   r}   r~   rm   r	   r   r   )r  rv   r   s      rw   _typevar_substr    sW    
6C
c3D
1C	C	'CNNf,D	C	&73+N3%=>??Jry   c           	         |j                   }|j                  |       }||dz   d  D ]   }t        |t              st	        d|        t        |      }t        |      }|}||z
  dz
  }	d }
d }t        |      D ]Q  \  }}t        |t              rt        |dd       }|s't        |      dk(  s6|d   du s>|
t	        d      |}
|d   }S |
t        ||
      }t        |	||
z
  dz
        }	n||	z   |kD  rt	        d	| d
| d|dz
         g |d | |g||z
  z  t        ||||	z
         |g||	z
  |z
  |z
  dz
  z  |||	z
  d  S )NrX  z(More than one TypeVarTuple parameter in r   r   r   .z6More than one unpacked arbitrary-length tuple argumentr   Too few arguments for r   z, expected at least )r   indexrt   r   r   r   	enumeraters   r   minr   )r  aliasr   r   typevartuple_indexparamr   plenr]  r^  var_tuple_indexfillargkrv   r   s                  rw   _typevartuple_prepare_substr    s   !!Fd+*Q./0 Pe\*FugNOOP t9Dv;DD%%)EOGD/ %3#t$c#CTJG3w<1,1C".#$\]]"#!!*% "4)E4/1A56		0 8##'&(<T!VHF G 	G	et)'$.
/ 	d4&' )TE\D(+==A
B	
 
dUlm	 ry   c                     t        |t        t        f      rt        d |D              }|S t        |      st	        d|       |S )Nc              3   4   K   | ]  }t        |d         yw)zExpected a type.NrU  r   r   s     rw   r   z#_paramspec_subst.<locals>.<genexpr>  s     D1K#56D   zFExpected a list of types, an ellipsis, ParamSpec, or Concatenate. Got )rt   r   r   r   r   r  rv   s     rw   _paramspec_substr    sU    #e}%DDD J C  ::=@ A 	AJry   c                    |j                   }|j                  |       }|t        |      k\  rt        d|       t        |      dk(  rt	        |d         s|f}|S t        ||   t              rg |d | t        ||         ||dz   d  }|S )Nr  rX  r   )r   r  r   r   r   rt   r   r   )r  r  r   r   is        rw   _paramspec_prepare_substr    s    !!FTACI~0899
6{atAw 7w K 
DGT	"7bq75a>7D1J7Kry   c                    	 t        |t              s|f}t        d |D              }| t        t        fv }|r|st	        d| j
                   d      t        d |D              st	        d| j                   d      t        t        |            t        |      k7  rt	        d| j                   d      | j                  D ]  }t        |dd       }| || |      } t        | |t        | j                               g }t        | j                  |      D ]8  \  }}t        |t              r|j                  |       (|j!                  |       : t        |      }t#        | |      S )	Nc              3   2   K   | ]  }t        |        y wr   rx   r   r   s     rw   r   z)_generic_class_getitem.<locals>.<genexpr>  s     4=#4r   zParameter list to z[...] cannot be emptyc              3   2   K   | ]  }t        |        y wr   )r  r  s     rw   r   z)_generic_class_getitem.<locals>.<genexpr>  s     71#A&7r   zParameters to zF[...] must all be type variables or parameter specification variables.z[...] must all be unique__typing_prepare_subst__)rt   r   r   r   r   r   allr   r   r   r   r   r   zipr   r   r   r}   )r   r   is_generic_or_protocolr  preparenew_argsnew_args          rw   _generic_class_getitemr    sz    fe$4V44F Wh$77$S%5%5$66KL  777  /8 9: : s6{s6{* .FGI I '' 	.Ee%?FG" f-	. 	sFC(:(:$;<!#"4"4f= 	)NE7%.((		)
 xf%%ry   c                   
 t        t        | 
  |i | g }d| j                  v rt        | j                  v }n7t        | j
                  v xr# | j                  dk7  xr t        |       t        k7  }|rt        d      d| j                  v rt        | j                        }d }| j                  D ]?  }t        |t              s|j                  t        u s'|t        d      |j                  }A |at        |      }t        |      
|
k  sDdj!                  
fd|D              }dj!                  d |D              }	t        d| d	|	 d
      |}t#        |      | _        y )N__orig_bases__r   z!Cannot inherit from plain Genericz0Cannot inherit from Generic[...] multiple times.r   c              3   >   K   | ]  }|vst        |        y wr   ru   )r   r   gvarsets     rw   r   z)_generic_init_subclass.<locals>.<genexpr>N  s     "MaAW<L3q6"Ms   	c              3   2   K   | ]  }t        |        y wr   r  )r   gs     rw   r   z)_generic_init_subclass.<locals>.<genexpr>O  s     "9a3q6"9r   zSome type variables (z) are not listed in Generic[r   )r<  r   r  rz  r  	__bases__r   rs   _TypedDictMetar   r   rt   r}   r~   r   r   r   r   )r   r   rE  tvarserrorgvarsbasetvarsets_varss_argsr  s             @rw   _generic_init_subclassr  0  sq   	'3)4:6:E3<<'3---CMM) 0LLJ.0I/ 	 ;<<3<<'#C$6$67 && 	,D4/OOw.$#JL L++	, %jG%jGg%"M5"MM"95"99"7x @::@!D E EEuCry   c                 J    | j                  d      xr | j                  d      S )N__)
startswithendswith)attrs    rw   
_is_dunderr  V  s    ??4 8T]]4%88ry   c                   V     e Zd Z	 ddddZd Zd Zd Z fdZd	 Zd
 Z	 fdZ
 xZS )_BaseGenericAliasTNinstrZ  c                <    || _         || _        || _        d | _        y r   )_instr  r~   r  )r  originr  rZ  s       rw   r  z_BaseGenericAlias.__init__c  s    

 ry   c                     | j                   s0t        d| j                   d| j                  j                   d       | j                  |i |}	 | |_        |S # t        $ r Y |S w xY w)NzType z cannot be instantiated; use z
() instead)r  r   r  r~   r   __orig_class__r  )r  r   rE  results       rw   r"  z_BaseGenericAlias.__call__i  s    zzeDJJ< 0##'??#;#;"<JH I I $1&1	$(F!   		s   A 	A&%A&c                 ,   g }| j                   |vr|j                  | j                          |j                  |       }||dz   d  D ].  }t        |t              st        |t              s$ t        |      S  |j                  t               t        |      S )NrX  )r~   r   r  rt   r  
issubclassr   r   )r  r  resr  bs        rw   r  z!_BaseGenericAlias.__mro_entries__t  s    ??%'JJt'KKqst 	 A!./:a3I Sz	  JJwSzry   c                     |dv r$| j                   xs | j                  j                  S d| j                  v r!t	        |      st        | j                  |      S t        |      )N>   r   r   r~   )r  r~   r   rz  r  r   r  )r  r  s     rw   r  z_BaseGenericAlias.__getattr__  sU    //::9!9!99 4==(D1A4??D11T""ry   c                 t    t        |      s|dv rt        | 	  ||       y t        | j                  ||       y )N>   r  r  _nparams)r  r<  __setattr__setattrr~   )r  r  valr=  s      rw   r  z_BaseGenericAlias.__setattr__  s2    dt'EEGc*DOOT3/ry   c                 6    | j                  t        |            S r   r2  rs   r-  s     rw   r.  z#_BaseGenericAlias.__instancecheck__      %%d3i00ry   c                     t        d      )NzBSubscripted generics cannot be used with class and instance checksr   r1  s     rw   r2  z#_BaseGenericAlias.__subclasscheck__  s     5 6 	6ry   c                     t        t        t        |          t	        | j
                        D cg c]  }t        |      r| c}z               S c c}w r   )r   r   r<  __dir__dirr~   r  r  r  r=  s     rw   r  z_BaseGenericAlias.__dir__  sJ    C)$'$8QD
4@P4QR S T 	TQs   AA)r   r   r   r  r"  r  r  r  r.  r2  r  r?  r@  s   @rw   r  r  Y  s>     (,$ 	
#016T Try   r  c                   |     e Zd Zddd fd
Zd Zd Zd Zd Zed	        Z	d
 Z
d Zd Zd Zd Z fdZd Z xZS )r}   TNr  c                    t         |   |||       t        |t              s|f}t        d |D              | _        t        |      | _        |s|j                  | _        y y )Nr  c              3   4   K   | ]  }|t         u rd n|  yw).N)_TypingEllipsisr  s     rw   r   z)_GenericAlias.__init__.<locals>.<genexpr>  s'      /$% &'/%9c  /r  )r<  r  rt   r   r   r   r   r   )r  r  r   r  rZ  r=  s        rw   r  z_GenericAlias.__init__  sc    d6$&7D /)-/ /1$7$//DO ry   c                     t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r   )rt   r}   r  r~   r   r%  s     rw   r  z_GenericAlias.__eq__  s>    %/!!5#3#33 4MMU^^3	5ry   c                 D    t        | j                  | j                  f      S r   )r  r~   r   r  s    rw   r  z_GenericAlias.__hash__  s    T__dmm455ry   c                     t         | |f   S r   r$  r  r^  s     rw   r'  z_GenericAlias.__or__  r(  ry   c                     t         || f   S r   r$  r  r]  s     rw   r*  z_GenericAlias.__ror__      T4Z  ry   c                 *   | j                   t        t        fv rt        d|        | j                  st        |  d      t        |t              s|f}t        d |D              }t        |      }| j                  |      }| j                  |      }|S )Nz%Cannot subscript already-subscripted r   c              3   2   K   | ]  }t        |        y wr   r  r  s     rw   r   z,_GenericAlias.__getitem__.<locals>.<genexpr>  s     4!]1%4r   )
r~   r   r   r   r   rt   r   r   _determine_new_argsr   )r  r   r  rs       rw   r5  z_GenericAlias.__getitem__  s    " ??w11CD6JKK""tf$;<== $&7D4t44D!++D1NN8$ry   c           
      @   | j                   }|D ]  }t        |dd       }| || |      } t        |      }t        |      }||k7  rt        d||kD  rdnd d|  d| d|       t	        t        ||            }t        | j                  | j                  |            S )Nr  r   r   r   r   r   r   )	r   r   r   r   dictr  r   _make_substitutionr   )r  r   r   r  r  r   r  new_arg_by_params           rw   r  z!_GenericAlias._determine_new_args  s     $$ 	+Ee%?FG"tT*	+ 4y6{4<dTD[6e"DOTXSY Z''+fKv? @ @FD 12T,,T]]<LMNNry   c           	         	 g }|D ]V  }t        |t              r|j                  |       &t        |dd       }|r |||         }nbt        |dd      }|s|}nPg }|D ];  }	t        |	t              r|j                  ||	          (|j                  ||	          = |t        |         }| j                  t        j                  j                  k(  r"t        |t              r|j                  |       t        |      r|j                  |       
t        |t              r,|j                  t        | j                  ||                   F|j                  |       Y |S r   )rt   rs   r   r   r   r   r   r~   r   r   r   r  r  )
r  r   r  r  old_arg	substfuncr  	subparamsr   r   s
             rw   r  z _GenericAlias._make_substitution  sH   2 8	)G'4(();TBI#$4W$=>#G-=rB	 %G G& @%a6#NN+;A+>?#NN+;A+>?	@
 &eGn5G+//":"::z'SX?Y (*73 (GU+ $11';KLM (q8	)r ry   c                 h    | j                  | j                  || j                  | j                        S N)rZ  r  )r=  r~   r  r  r  r   s     rw   r   z_GenericAlias.copy_withT  s%    ~~doot$**4::~VVry   c                     | j                   rd| j                   z   }nt        | j                        }| j                  r3dj	                  | j                  D cg c]  }t        |       c}      }nd}| d| dS c c}w )Nr  r   z()r   r   )r  r   r~   r   r   )r  rZ  r   r   s       rw   r  z_GenericAlias.__repr__W  sm    ::tzz)Ddoo.D==99T]]CjmCDD Dqa  	 Ds   A;c                     | j                   rt               | j                      }n| j                  }t        | j                        }t        |      dk(  rt        |d   t              s|\  }t        j                  ||ffS )NrX  r   )	r  globalsr~   r   r   r   rt   r   r  )r  r  r   s      rw   r  z_GenericAlias.__reduce__c  sd    ::Ytzz*F__FT]]#t9>*T!We"<ED&$//ry   c                 D   t        | j                  t              rt        d|       | j                  rt
        |   |      S | j                  t        u r>t        |v ry|j                  |       }||dz   d  D ]  }t        |t              s|| us y | j                  fS )Nr  r   rX  )rt   r~   r   r   r  r<  r  r   r   r  r  )r  r  r  r  r=  s       rw   r  z_GenericAlias.__mro_entries__m  s    doo|4.th788::7*511??g%5 D!A1Q34[ a!23 !!ry   c              #   "   K   t         |     y wr   )rm   r  s    rw   r  z_GenericAlias.__iter__|  s     Tls   )r   r   r   r  r  r  r'  r*  r   r5  r  r  r   r  r  r  r  r?  r@  s   @rw   r}   r}     s]    2 .2 056"!  >O:<|W
!0"ry   r}   c                   ^     e Zd Zddd fd
Zed        Zd Zd Z fdZd	 Z	d
 Z
d Z xZS )_SpecialGenericAliasTNr  c                    ||j                   }t        | 	  |||       || _        |j                  dk(  rd|j
                   d| _        y d|j                   d|j
                   d| _        y )Nr  r   zA generic version of r|   )r   r<  r  r  r   r   r  )r  r  nparamsr  rZ  r=  s        rw   r  z_SpecialGenericAlias.__init__  sv    <??Dd6
*263F3F2GqIDL263D3D2EQvGZGZF[[\]DLry   c                     t        |t              s|f}dt        fd|D              }t        | || j                         | j	                  |      S )Nr  c              3   6   K   | ]  }t        |        y wr   rU  rV  s     rw   r   z3_SpecialGenericAlias.__getitem__.<locals>.<genexpr>       ;q{1c*;rW  )rt   r   r   r  r   r  r   r   s     @rw   r5  z _SpecialGenericAlias.__getitem__  sH    &%(YF:;F;;tVT]]3~~f%%ry   c                 \    t        | j                  || j                  | j                        S r  )r}   r~   r  r  r  r   s     rw   r   z_SpecialGenericAlias.copy_with  s$    T__f"&**4::? 	?ry   c                      d| j                   z   S r  r  r  s    rw   r  z_SpecialGenericAlias.__repr__  r  ry   c                     t        |t              r t        |j                  | j                        S t        |t              st        || j                        S t
        |   |      S r   )rt   r  r  r~   r}   r<  r2  )r  r   r=  s     rw   r2  z&_SpecialGenericAlias.__subclasscheck__  sN    c/0cnndoo>>#}-c4??33w(--ry   c                     | j                   S r   r  r  s    rw   r  z_SpecialGenericAlias.__reduce__  r   ry   c                     t         | |f   S r   r$  r  s     rw   r'  z_SpecialGenericAlias.__or__  r(  ry   c                     t         || f   S r   r$  r  s     rw   r*  z_SpecialGenericAlias.__ror__  r  ry   )r   r   r   r  r   r5  r   r  r2  r  r'  r*  r?  r@  s   @rw   r  r    s@    044 ^ & &?&."!ry   r  c                   0     e Zd Zddd fd
Z fdZ xZS )_DeprecatedGenericAliasTNr  c                :    t         |   ||||       || _        y )Nr  )r<  r  _removal_version)r  r  r  removal_versionr  rZ  r=  s         rw   r  z _DeprecatedGenericAlias.__init__  s#     	t$? /ry   c                     dd l } |j                  | j                   d| j                   | j                         t
        |   |      S )Nr   r|   )r   )warnings_deprecatedr   r  r!  r<  r.  )r  r  r$  r=  s      rw   r.  z)_DeprecatedGenericAlias.__instancecheck__  sG    q-d6K6K	
 w(..ry   )r   r   r   r  r.  r?  r@  s   @rw   r  r    s    8<40/ /ry   r  c                   $     e Zd Z fdZd Z xZS )_CallableGenericAliasc           	          | j                   }t        |      dk(  rt        |d         rt        |          S ddj                  |d d D cg c]  }t        |       c}       dt        |d          dS c c}w )Nr   r   ztyping.Callable[[r   r   z], r   )r   r   r   r<  r  r   r   )r  r   r   r=  s      rw   r  z_CallableGenericAlias.__repr__  sy    }}t9>nT!W57#%%YYtCRyA!
1ABC3d2h'(+ 	,As   A6
c                     | j                   }t        |      dk(  rt        |d         st        |d d       |d   f}t        j
                  t        |ffS )Nr   r   r   )r   r   r   r   r   r  r   r	  s     rw   r  z _CallableGenericAlias.__reduce__  sO    }}D	Q>$q'#:Sb	?DH,D(D!111ry   )r   r   r   r  r  r?  r@  s   @rw   r'  r'    s    ,2ry   r'  c                   (    e Zd Zd Zd Zed        Zy)_CallableTypec                 \    t        | j                  || j                  | j                        S r  )r'  r~   r  r  r  s     rw   r   z_CallableType.copy_with  s&    $T__f*.**4::G 	Gry   c                     t        |t              rt        |      dk7  rt        d      |\  }}t        |t              rt        |      |f}n||f}| j                  |      S )Nr   z6Callable must be used as Callable[[arg, ...], result].)rt   r   r   r   r   __getitem_inner__)r  r   r   r  s       rw   r5  z_CallableType.__getitem__  sf    &%(CK1,< < = =f dD!Dk6*FF^F%%f--ry   c                     |\  }}d}t        ||      }|t        u r| j                  t        |f      S t	        |t
              s|f}t        d |D              }||fz   }| j                  |      S )Nz.Callable[args, result]: result must be a type.c              3   2   K   | ]  }t        |        y wr   r  r   s     rw   r   z2_CallableType.__getitem_inner__.<locals>.<genexpr>  s     8C]3'8r   )r   Ellipsisr   r  rt   r   )r  r   r   r  r   s        rw   r.  z_CallableType.__getitem_inner__  st    f>VS)8>>?F";<<$&7D8488	!~~f%%ry   N)r   r   r   r   r5  r   r.  r   ry   rw   r+  r+    s!    G. 
& 
&ry   r+  c                       e Zd Zed        Zy)
_TupleTypec                    t        |t              s|f}t        |      dk\  r:|d   du r3dt        fd|d d D              }| j                  g |t              S dt        fd|D              }| j                  |      S )Nr   r   .z Tuple[t, ...]: t must be a type.c              3   6   K   | ]  }t        |        y wr   rU  rV  s     rw   r   z)_TupleType.__getitem__.<locals>.<genexpr>  s     D1;q#.DrW  z*Tuple[t0, t1, ...]: each t must be a type.c              3   6   K   | ]  }t        |        y wr   rU  rV  s     rw   r   z)_TupleType.__getitem__.<locals>.<genexpr>  r  rW  )rt   r   r   r   r  r  s     @rw   r5  z_TupleType.__getitem__  s    &%(YFv;!r
c 14CDsDDF>>"<F"<O"<==:;F;;~~f%%ry   N)r   r   r   r   r5  r   ry   rw   r3  r3    s    	& 	&ry   r3  c                   F     e Zd Zd Zd Zd Z fdZd Zd Z fdZ	 xZ
S )r   c                     t         |   S r   r$  r  s     rw   r   z_UnionGenericAlias.copy_with   s    V}ry   c                     t        |t        t        j                  f      st        S t        | j                        t        |j                        k(  S r   )rt   r   r   r   r  r   r   r%  s     rw   r  z_UnionGenericAlias.__eq__  s9    %"4eoo!FG!!4==!S%888ry   c                 >    t        t        | j                              S r   )r  	frozensetr   r  s    rw   r  z_UnionGenericAlias.__hash__  s    Idmm,--ry   c                     | j                   }t        |      dk(  rD|d   t        d       u rdt        |d          dS |d   t        d       u rdt        |d          dS t        |          S )Nr   r   ztyping.Optional[rX  r   )r   r   rs   r   r<  r  r  r   r=  s     rw   r  z_UnionGenericAlias.__repr__  sw    }}t9>Aw$t*$)*T!W*=)>a@@aDJ&)*T!W*=)>a@@w!!ry   c                 6    | j                  t        |            S r   r  r-  s     rw   r.  z$_UnionGenericAlias.__instancecheck__  r  ry   c                 B    | j                   D ]  }t        ||      s y y NT)r   r  )r  r   rv   s      rw   r2  z$_UnionGenericAlias.__subclasscheck__  s"    == 	C#s#	ry   c                 @    t         |          \  }\  }}|t        |ffS r   )r<  r  r   )r  r   r  r   r=  s       rw   r  z_UnionGenericAlias.__reduce__  s(    $w13nvteT]""ry   )r   r   r   r   r  r  r  r.  r2  r  r?  r@  s   @rw   r   r     s+    9
."1
# #ry   r   c                     d | D        S )Nc              3   6   K   | ]  }|t        |      f  y wr   )rs   r  s     rw   r   z'_value_and_type_iter.<locals>.<genexpr>"  s     -QQQL-s   r   )r   s    rw   rd  rd  !  s    -*--ry   c                       e Zd Zd Zd Zy)r   c                     t        |t              st        S t        t	        | j
                              t        t	        |j
                              k(  S r   )rt   r   r  r   rd  r   r%  s     rw   r  z_LiteralGenericAlias.__eq__&  s?    %!56!!'673?STYTbTb?c;dddry   c                 P    t        t        t        | j                                    S r   )r  r;  rd  r   r  s    rw   r  z_LiteralGenericAlias.__hash__,  s    I24==ABCCry   N)r   r   r   r  r  r   ry   rw   r   r   %  s    eDry   r   c                        e Zd Z fdZ xZS )r   c                     t        |d   t        t        f      rg |d d |d   S t        |d   t              rg |d d |d   j                  }t
        |   |      S )Nr   )rt   r   r   r   r   r<  r   )r  r   r=  s     rw   r   z"_ConcatenateGenericAlias.copy_with1  sm    fRj4-0.VCR[.6":..fRj":;9vcr{9VBZ%8%89Fw ((ry   )r   r   r   r   r?  r@  s   @rw   r   r   0  s    ) )ry   r   c                 >    	 t        ||  d      }t        | |f      S )NrN  )r  r   )r   _UnpackGenericAliasrP  s      rw   rm   rm   9  s-    ,Z zdV+E#FGDd$99ry   c                   D     e Zd Zd Z fdZed        Zed        Z xZS )rJ  c                 :    dt        | j                  d          dS )Nztyping.Unpack[r   r   )r   r   r  s    rw   r  z_UnpackGenericAlias.__repr__m  s"      
4==+; <=Q??ry   c                 >    | j                   r|S t        | 	  |      S r   )r  r<  r5  r=  s     rw   r5  z_UnpackGenericAlias.__getitem__r  s!    33Kw"4((ry   c                 X    | j                   \  }t        |t              r|j                   S y r   )r   rt   r}   r  s     rw   r   z2_UnpackGenericAlias.__typing_unpacked_tuple_args__w  s&     }}c=)<<ry   c                 <    t        | j                  d   t              S Nr   )rt   r   r   r  s    rw   r  z7_UnpackGenericAlias.__typing_is_unpacked_typevartuple__  s     $--*L99ry   )	r   r   r   r  r5  propertyr   r  r?  r@  s   @rw   rJ  rJ  l  s6    @
)
   : :ry   rJ  c                       e Zd Zy)r  N)r   r   r   r   ry   rw   r  r    s    2ry   r  >   _is_protocolr  r  r   __type_params____protocol_attrs___is_runtime_protocol__callable_proto_members_only__>   r  rC  rz  r  r  r   r   __annotations____subclasshook____class_getitem____abstractmethods___MutableMapping__markerc                     	 t               }| j                  d d D ]`  }|j                  dv rt        |di       }g |j                  |D ].  }|j                  d      r|t        vs|j                  |       0 b |S )Nr   >   r   r   rX  _abc_)r   __mro__r   r   rz  r  EXCLUDED_ATTRIBUTESadd)r   attrsr  annotationsr  s        rw   _get_protocol_attrsrd    s    
 EECR   ==33d$5r:2dmm2k2 	 D??7+<O0O		$	 	  Lry   c                 H   t        |       }|j                  rt        d      |j                  t        ury |j
                  D ]3  }|j                  j                  dt              }|t        us,||_         n t        j                  |_         |j                  | g|i | y )Nz Protocols cannot be instantiatedr  )	rs   rS  r   r  _no_init_or_replace_initr_  rz  r}  object)r  r   rE  r   r  inits         rw   rf  rf    s    
t*C
:;; ||33  '}}  -EF//CL	' CLL'''ry   rX  c                     	 t        j                  | dz         xs |S # t        $ r Y nw xY w	 t        j                  | dz         j                  j                  d|      S # t        t        f$ r Y y w xY w)NrX  r   )r{  _getframemodulenamer  	_getframe	f_globalsr}  
ValueError)depthdefaults     rw   _callerrp    sx    &&uqy1<W< }}UQY'1155j'JJJ' s    	**1A   A21A2r   c                     	 t        |       dv S )N>   Nr   r   )rp  )rn  s    rw   _allow_reckless_class_checksrr    s    
 5>777ry   )r   r0   r%   r&   r2   r#   r.   r!   r4   r7   BufferAbstractContextManagerAbstractAsyncContextManager)zcollections.abc
contextlibc                      ddl m}  | S )Nr   getattr_static)inspectry  rx  s    rw   _lazy_load_getattr_staticr{    s     'ry   c                 (    t         | j                  ffS r   )r   r~   )psargss    rw   _pickle_psargsr~    s    6,,...ry   c                 (    t         | j                  ffS r   )r   r~   )pskwargss    rw   _pickle_pskwargsr    s    X00222ry   c                   <     e Zd Z fdZ fdZ fdZ fdZ xZS )_ProtocolMetac                6   |dk(  r|t         fk(  rnvt        |v rn|D ]i  }|t        t         hv r|j                  t        j                  |j                  g       v r?t        |t               rt        |dd      r]t        d|       t        | ,  | |||fi |S )Nr   rS  Fz5Protocols can only inherit from other protocols, got )r   r   rg  r   _PROTO_ALLOWLISTr}  r   r  r   r   r<  rC  )mclsrZ  r  	namespacerE  r  r=  s         rw   rC  z_ProtocolMeta.__new__  s    :%G:"5 VW--}}(8(<(<T__b(QQ"41#D.%@ $#h(  wtT5)FvFFry   c                      t           |i | t         dd      r4t                _        t         fd j                  D               _        y y )NrS  Fc              3   J   K   | ]  }t        t        |d               y wr   )callabler   )r   r  r   s     rw   r   z)_ProtocolMeta.__init__.<locals>.<genexpr>  s$      67;dD126s    #)r<  r  r   rd  rU  r  rW  rD  s   `  rw   r  z_ProtocolMeta.__init__  sU    $)&)3.%8%=C" 36 6?B?U?U6 3C/	 /ry   c                 b   | t         u rt        j                  | |      S t        | dd      rut	               skt        |t              st        d      | j                  s,| j                  j                  d      t        u rt        d      t        | dd      st        d      t        | 	  |      S )NrS  Fz"issubclass() arg 1 must be a classrY  z<Protocols with non-method members don't support issubclass()rV  LInstance and class checks can only be used with @runtime_checkable protocols)r   rs   r2  r   rr  rt   r   rW  rz  r}  _proto_hookr<  )r   r&  r=  s     rw   r2  z_ProtocolMeta.__subclasscheck__  s    (?))#u55C/02eT* DEE77LL$$%78KGR  3 6>3  w(//ry   c                 ~   | t         u rt        j                  | |      S t        | dd      st        | 	  |      S t        | dd      st               st        d      t        | 	  |      ryt               }| j                  D ]'  }	  |||      }|t        t        | |d             s' y y# t        $ r Y  yw xY w)NrS  FrV  r  T)r   rs   r.  r   r<  rr  r   r{  rU  r  r  )r   instancery  r  r  r=  s        rw   r.  z_ProtocolMeta.__instancecheck__6  s     (?))#x88sNE27,X66 3U;,. < = = 7$X.24** 	D$Xt4 {xT4(@A 	  "  s   	B//	B<;B<)r   r   r   rC  r  r2  r.  r?  r@  s   @rw   r  r    s    G&00 ry   r  c                    | j                   j                  dd      st        S | j                  D ]  }|j                  D ]  }||j                   v r|j                   |   
t        c c S  ;t        |di       }t        |t        j                  j                        s^||v sct        |t              stt        |dd      s  t        c S  y)NrS  FrX  T)rz  r}  r  rU  r_  r   rt   r   r   r(   r  r   )r   r&  r  r  rc  s        rw   r  r  W  s    <<NE2&& "MM 	"Dt}}$==&.)) "$(92>K;(?(?@K'ug.75.RW3X	" "!"  ry   c                   ,     e Zd Z	 dZdZdZ fdZ xZS )r   r   TFc                 :   t        |   |i | | j                  j                  dd      s!t	        d | j
                  D              | _        d| j                  vrt        | _        | j                  r)| j                  t        j                  u rt        | _	        y y y )NrS  Fc              3   ,   K   | ]  }|t         u   y wr   r   r   r  s     rw   r   z-Protocol.__init_subclass__.<locals>.<genexpr>  s     "HQ1="Hs   rY  )r<  r  rz  r}  anyr  rS  r  rY  r  r   rf  rD  s      rw   r  zProtocol.__init_subclass__  s    !4262 ||6""H#--"HHC S\\1#.C  0A0A A3CL !Bry   )r   r   r   r  rS  rV  r  r?  r@  s   @rw   r   r   o  s%    @ IL 4 4ry   r   c                   N     e Zd Z	  fdZd Zd Zd Zd Zd Z fdZ	d Z
 xZS )	_AnnotatedAliasc                     t        |t              r|j                  |z   }|j                  }t        |   ||d       || _        y )Nr   rY  )rt   r  __metadata__r~   r<  r  )r  r  metadatar=  s      rw   r  z_AnnotatedAlias.__init__  sD    fo.**X5H&&Fk:$ry   c                 8    |d   }t        || j                        S rP  )r  r  )r  r   new_types      rw   r   z_AnnotatedAlias.copy_with  s    !9x):):;;ry   c                     dj                  t        | j                        dj                  d | j                  D                    S )Nztyping.Annotated[{}, {}]r   c              3   2   K   | ]  }t        |        y wr   )r   r  s     rw   r   z+_AnnotatedAlias.__repr__.<locals>.<genexpr>  s     9!d1g9r   )formatr   r~   r   r  r  s    rw   r  z_AnnotatedAlias.__repr__  s9    )00t'II9t'8'899
 	
ry   c                 b    t         j                  t        | j                  f| j                  z   ffS r   )r   r  r   r~   r  r  s    rw   r  z_AnnotatedAlias.__reduce__  s1    )D,=,=="
 
 	
ry   c                     t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r   )rt   r  r  r~   r  r%  s     rw   r  z_AnnotatedAlias.__eq__  sB    %1!!5#3#33 <%%););;	=ry   c                 D    t        | j                  | j                  f      S r   )r  r~   r  r  s    rw   r  z_AnnotatedAlias.__hash__  s    T__d&7&7899ry   c                 ,    |dv ryt         |   |      S )N>   r   r   r   )r<  r  r  s     rw   r  z_AnnotatedAlias.__getattr__  s    //w"4((ry   c                     | j                   fS r   )r~   r  s     rw   r  z_AnnotatedAlias.__mro_entries__  s    !!ry   )r   r   r   r  r   r  r  r  r  r  r  r?  r@  s   @rw   r  r    s0    %<



=:)
"ry   r  c                   .    e Zd Z	 dZd Zed        Zd Zy)r   r   c                     t        d      )Nz&Type Annotated cannot be instantiated.r   r   r   rE  s      rw   rC  zAnnotated.__new__
  s    @AAry   c                     t        |t              rt        |      dk  rt        d      t	        |d         rt        d      d}t        |d   |d      }t        |dd        }t        ||      S )	Nr   zUAnnotated[...] should be used with at least two arguments (a type and an annotation).r   z?Annotated[...] should not be used with an unpacked TypeVarTuplez$Annotated[t, ...]: t must be a type.Trn   rX  )rt   r   r   r   r  r   r  )r   r   r   r  r  s        rw   rZ  zAnnotated.__class_getitem__  s|    &%(CK!O + , , %VAY/ 4 5 54VAYF$vx00ry   c                 J    t        dj                  | j                              )NzCannot subclass {}.Annotated)r   r  r   r  s      rw   r  zAnnotated.__init_subclass__  s!    *11#..A
 	
ry   N)r   r   r   r  rC  r   rZ  r  r   ry   rw   r   r     s.    -^ IB 1 1
ry   r   c                 l    	 t        | t              rt        | dd      st        d| z        d| _        | S )NrS  FzB@runtime_checkable can be only applied to protocol classes, got %rT)r  r   r   r   rV  )r   s    rw   rg   rg   !  sE    $ c7#73+N "$'( ) 	)#CJry   c                     	 |S r   r   )r   r  s     rw   rS   rS   ;  s     Jry   c                    	 | S r   r   )r  r   s     rw   rQ   rQ   F  s     Jry   c                 V   	 t        | dd       ri S t        | t              r4i }t        | j                        D ]  }|6t        t
        j                  j                  |j                  d       di       }n|}|j                  j                  di       }t        |t        j                        ri }|t        t        |            n|}||||}}|j                         D ]B  \  }	}
|
t        d       }
t        |
t              rt!        |
dd      }
t#        |
||      }
|
||	<   D  |r|S |j                         D ci c]  \  }}|t%        |       c}}S |`t        | t        j&                        r| j                  }n4| }t)        |d      r|j*                  }t)        |d      rt        |di       }||}n||}t        | dd       }|,t        | t,              ri S t/        d	j1                  |             t        |      }|j                         D ]Y  \  }	}
|
t        d       }
t        |
t              r't!        |
t        | t        j&                         d      }
t#        |
||      ||	<   [ |r|S |j                         D ci c]  \  }}|t%        |       c}}S c c}}w c c}}w )
N__no_type_check__rz  rX  FT)r   rr   __wrapped____globals__z1{!r} is not a module, class, method, or function.)r   rt   rs   reversedr_  r{  r|  r}  r   rz  r   GetSetDescriptorTyper   varsitemsru   r   r   _strip_annotations
ModuleTyper   r  _allowed_typesr   r  )r   r   r   include_extrashintsr  base_globalsannbase_localsrZ  valuer  r   nsobjs                 rw   rZ   rZ   [  s   < s'.	#tS[[) 	$D&s{{t'Mz[]^'--##$5r:C#u99:.5o$tDz*7K8#3 -8k"yy{ $e= JEeS)&u%$OE"5,D#d$#	$0 'u`RWR]R]R_,`$!QQ0B10E-E,``c5++,||HE%/)) %/umR8H?G	C*D1E}c>*I ++16#;8 8KE{{} ;e=JEeS!  *30@0@ AAE
 !':d; #5\ekkm(\da,>q,A)A(\\I -aH )]s   <JJ%c                    	 t        | t              rt        | j                        S t	        | d      r0| j                  t
        t        fv rt        | j                  d         S t        | t              r>t        d | j                  D              }|| j                  k(  r| S | j                  |      S t        | t              rCt        d | j                  D              }|| j                  k(  r| S t        | j                  |      S t        | t        j                        rQt        d | j                  D              }|| j                  k(  r| S t        j                  t         j"                  |      S | S )Nr~   r   c              3   2   K   | ]  }t        |        y wr   r  r  s     rw   r   z%_strip_annotations.<locals>.<genexpr>       H03Hr   c              3   2   K   | ]  }t        |        y wr   r  r  s     rw   r   z%_strip_annotations.<locals>.<genexpr>  r  r   c              3   2   K   | ]  }t        |        y wr   r  r  s     rw   r   z%_strip_annotations.<locals>.<genexpr>  r  r   )rt   r  r  r~   r   re   rb   r   r}   r   r   r	   r   r   r   r   r   r   )r   stripped_argss     rw   r  r    s   2!_%!!,,//q,ALLX{4K$K!!**Q-00!]#HQZZHHAJJ&H{{=))!\"HQZZHHAJJ&HALL-88!U__%HQZZHHAJJ&Hm<<Hry   c                     	 t        | t              rt        S t        | t        t        t
        t        f      r| j                  S | t        u rt        S t        | t        j                        rt        j                  S y r   )rt   r  r   r  r	   r   r   r~   r   r   r   tps    rw   rX   rX     sc      "o&"(,$o7 8}}	W}"eoo&ry   c                 ,   	 t        | t              r| j                  f| j                  z   S t        | t        t
        f      r-| j                  }t        | |      rt        |d d       |d   f}|S t        | t        j                        r| j                  S y)Nr   r   )rt   r  r~   r  r}   r	   r   r   r   r   r   )r  r  s     rw   rW   rW     s     "o&"//11"}l34kk*2s3CR>3r7+C
"eoo&{{ry   c                 $    	 t        | t              S r   )rt   r  r  s    rw   r[   r[   	  s    
 b.))ry   d   rv   c                r    	 t        |       }t        |      t        kD  r|d t         dz   }t        d|       )Nr   z*Expected code to be unreachable, but got: )r   r   _ASSERT_NEVER_REPR_MAX_LENGTHAssertionError)rv   r  s     rw   rR   rR   	  sE    $ IE
5z11445=
EeWM
NNry   c                    	 t        | t              rt        |       D ]  }t        | |      }t	        |d      rB|j
                  | j
                   d|j                   k7  st        |dd       | j                  k7  r^t        |t        j                        rd|_
        t        |t        j                        rd|j                  _
        t        |t              st        |        	 d| _
        | S # t        $ r Y | S w xY w)Nr   r|   r   T)rt   rs   r  r   r   r   r   r   r   r   r  
MethodType__func__r_   r   )rv   keyr   s      rw   r_   r_   8	  s     #ts8 	#C#s#CC0###*:*:);1S\\N'KK3d3s~~E
 #u112(,%#u//015.#t$c"%	#& $ J  Js   &C/ /	C<;C<c                 D     	 t        j                          fd       }|S )Nc                  .     | i |}t        |      }|S r   )r_   )r   r   r   r   s      rw   wrapped_decoratorz2no_type_check_decorator.<locals>.wrapped_decoratorb	  s!    $'$'T"ry   )r   r   )r   r  s   ` rw   r`   r`   \	  s-    
 __Y  
 ry   c                      	 t        d      )NzYou should not call an overloaded function. A series of @overload-decorated functions outside a stub module should always be followed by an implementation that is not @overload-ed.)NotImplementedError)r   r   s     rw   _overload_dummyr  k	  s    4
	9: :ry   c                     	 t        | d|       }	 | t        |j                     |j                     |j                  j
                  <   t        S # t        $ r Y t        S w xY wNr  )r   _overload_registryr   r   __code__co_firstlinenor  r  )r   fs     rw   rc   rc   x	  se    > 	j$'AVZ1<<(89R9RS   s   7A 	AAc                     	 t        | d|       }|j                  t        vrg S t        |j                     }|j                  |vrg S t	        ||j                     j                               S r  )r   r   r  r   r   values)r   r  mod_dicts      rw   rY   rY   	  sa    @j$'A||--	!!,,/H~~X%	(//122ry   c                  .    	 t         j                          y r   )r  clearr   ry   rw   rT   rT   	  s    .ry   c                 D    	 	 d| _         | S # t        t        f$ r Y | S w xY wr@  )	__final__r  r   )r  s    rw   rV   rV   	  s:    2 H I&  	H    TKTVTT_co)	covariantV_coVT_coT_contra)contravariantCT_co)r  boundrP      a  Deprecated alias to collections.abc.Callable.

    Callable[[int], str] signifies a function that takes a single
    parameter of type int and returns a str.

    The subscription syntax must always be used with exactly two
    values: the argument list and the return type.
    The argument list must be a list of types, a ParamSpec,
    Concatenate or ellipsis. The return type must be a single type.

    There is no syntax to indicate optional or keyword arguments;
    such function types are rarely used as callback types.
    r   rY  )r     )r"  r   r   r  a]  Deprecated alias to builtins.tuple.

    Tuple[X, Y] is the cross-product type of X and Y.

    Example: Tuple[T1, T2] is a tuple of two elements corresponding
    to type variables T1 and T2.  Tuple[int, float, str] is a tuple
    of an int, a float and a string.

    To specify a variable-length tuple of homogeneous type, use Tuple[T, ...].
    rD   rA   rF   rG   r"   r6   rB   rC   r   a  Deprecated alias to builtins.type.

    builtins.type or typing.Type can be used to annotate class objects.
    For example, suppose we have the following classes::

        class User: ...  # Abstract base for User classes
        class BasicUser(User): ...
        class ProUser(User): ...
        class TeamUser(User): ...

    And a function that takes a class argument that's a subclass of
    User and returns an instance of the corresponding class::

        def new_user[U](user_class: Type[U]) -> U:
            user = user_class()
            # (Here we could write the user object to a database)
            return user

        joe = new_user(BasicUser)

    At this point the type checker knows that joe has type BasicUser.
    c                   (    e Zd Z	 dZedefd       Zy)r=   r   r  c                      y r   r   r  s    rw   __int__zSupportsInt.__int__N
      ry   N)r   r   r   r  r   intr  r   ry   rw   r=   r=   H
  s#    2I  ry   r=   c                   (    e Zd Z	 dZedefd       Zy)r;   r   r  c                      y r   r   r  s    rw   	__float__zSupportsFloat.__float__Y
  r  ry   N)r   r   r   r  r   floatr  r   ry   rw   r;   r;   S
  #    4I5  ry   r;   c                   (    e Zd Z	 dZedefd       Zy)r:   r   r  c                      y r   r   r  s    rw   __complex__zSupportsComplex.__complex__d
  r  ry   N)r   r   r   r  r   complexr  r   ry   rw   r:   r:   ^
  s#    6IW  ry   r:   c                   (    e Zd Z	 dZedefd       Zy)r9   r   r  c                      y r   r   r  s    rw   	__bytes__zSupportsBytes.__bytes__o
  r  ry   N)r   r   r   r  r   bytesr  r   ry   rw   r9   r9   i
  r  ry   r9   c                   (    e Zd Z	 dZedefd       Zy)r<   r   r  c                      y r   r   r  s    rw   	__index__zSupportsIndex.__index__z
  r  ry   N)r   r   r   r  r   r  r	  r   ry   rw   r<   r<   t
  s#    4I3  ry   r<   c                  >    d xf G fdd
} t         |       S )r  c                   2    e Zd ZW  Z	 dZedW fd       Zy)r8   r   r  c                      y r   r   r  s    rw   __abs__zSupportsAbs.__abs__
  r  ry   N)r   r   r   rT  r  r   r  .type_paramsr  s   rw   r8   r8   
  s$    WI  ry   r8   r  .generic_baser  r  s    @@rw   #<generic parameters of SupportsAbs>r  
  s      X ry   c                  >    d xf G fdd
} t         |       S )r  c                   8    e Zd ZW  Z	 dZeddedW fd       Zy)r>   r   ndigitsr  c                      y r   r   )r  r  s     rw   	__round__zSupportsRound.__round__
  r  ry   Nr   )r   r   r   rT  r  r   r  r  r  s   rw   r>   r>   
  s+    YI Q  ry   r>   r  r  s    @@rw   %<generic parameters of SupportsRound>r  
  s      x ry   r   c                     |D cg c]  \  }}|	 }}}|D ci c]  \  }}|t        |d| d       }}}t        j                  | |||      }|x|_        |j                  _        |S c c}}w c c}}w )Nzfield z annotation must be a typedefaultsrq   )r   r   
namedtuplerX  rC  )rZ  r   rq   r  nr   fieldsnm_tpls           rw   _make_nmtupler!  
  s    !"DAqa"F" A As*DEFF  E  ##D&-5fFF>CCFV^^;M # s
   A+A1>
   _makerC  _asdict_fields_sourcer  _replacer  __getnewargs___field_defaults>   r   r   rX  c                       e Zd Zd Zy)NamedTupleMetac                    |D ]  }|t         us|t        ust        d       t        d |D              }|j	                  di       }g }|D ]M  }||v r|j                  |       |st        d| dt        |      dkD  rdnd d	d
j                  |              t        | |j                         |D cg c]  }||   	 c}|d         }	||	_
        t        |v rt        }
t        |
      |	_        |D ]@  }|t        v rt        d|z         |t         vs"||	j"                  vs1t%        |	|||          B t        |v r|	j'                          |	S c c}w )Nz3can only inherit from a NamedTuple type and Genericc              3   <   K   | ]  }|t         u rt        n|  y wr   )_NamedTupler   )r   r  s     rw   r   z)NamedTupleMeta.__new__.<locals>.<genexpr>
  s     Ot{2e<O   rX  zNon-default namedtuple field z cannot follow default fieldrX  sr   r   r   r  z&Cannot overwrite NamedTuple attribute )r-  r   r   r   r}  r   r   r   r!  r  r  r  classmethodrZ  _prohibitedr  _specialr$  r  r  )r   typenamer  nsr  r   default_names
field_namer  r   class_getitemr  s               rw   rC  zNamedTupleMeta.__new__
  s    	KD;&4w+>IK K	K OOO("- 	?JR$$Z0"?
| L>*-m*<q*@3b"I#'99]#;"<!> ? ?		? x8E(F1A(F&(&68 !e2M'2='AF$ 	.Ck!$%MPS%STTH$FNN)BRW-		.
 e$$& )Gs   6EN)r   r   r   rC  r   ry   rw   r*  r*  
  s     ry   r*  c                    	 ||j                         }n|rt        d      t        | |t                     }t        f|_        |S )NzIEither list of fields or keywords can be provided to NamedTuple, not bothrq   )r  r   r!  rp  rH   r  )r4  r  rE  nts       rw   rH   rH   
  sP    & ~	 C D 	D	x		:B#BIry   rH   c                     t         fS r   )r-  r  s    rw   _namedtuple_mro_entriesr>  
  s
    >ry   c                   "    e Zd ZddZeZd ZeZy)r  c           
         	 |D ]'  }t        |      t        us|t        ust        d       t	        d |D              rt        f}nd}t         j                  t        |g |t        |      }t        |d      s||_        i }|j                  di       }	d}
|	j                         D ci c]  \  }}|t        ||
|j                          }	}}t               }t               }|D ]  }|j                  |j                  j                  di              |j                  |j                  j                  dd             |j                  |j                  j                  d	d              |j                  |	       |	j                         D ]  \  }}t!        |      }|t"        u rt%        |      }|r|d
   }t!        |      }|t&        u r|j)                  |       P|t*        u r|j)                  |       j|r|j)                  |       ~|j)                  |        ||_        t/        |      |_        t/        |      |_        t        |d      s||_        |S c c}}w )NzHcannot inherit from both a TypedDict type and a non-TypedDict base classc              3   <   K   | ]  }t        |t                y wr   )r  r   r  s     rw   r   z)_TypedDictMeta.__new__.<locals>.<genexpr>
  s     5!z!W%5r.  r   r  rX  z?TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a typer:  __required_keys____optional_keys__r   	__total__)rs   r  r   r   r  rC  r   r   r  r}  r  r   r   r   updaterz  rX   r   rW   re   ra  rb   rX  r;  rB  rC  rD  )r   rZ  r  r5  totalr  generic_basetp_dictrc  own_annotationsr   r  r  required_keysoptional_keysannotation_keyannotation_typeannotation_originannotation_argss                      rw   rC  z_TypedDictMeta.__new__
  sZ   	  	BDDz/D4G !A B B	B
 5u55#:LL,,~t5J|5JT5JBOw 01%*G"&&!2B7O )..0
2 {2s7+=+=>>
 
  	MDt}}001BBGH  !2!23F!KL  !2!23F!KL	M
 	?+/>/D/D/F 	2+NO *? ; I-"*?";"&5a&8O(2?(C% H,!!.1"k1!!.1!!.1!!.1	2" #.$-m$<!$-m$<!w, %GG
s   +#Ic                     t        d      )Nz4TypedDict does not support instance and class checksr   )r   r&  s     rw   r2  z _TypedDictMeta.__subclasscheck__3  s    NOOry   N)T)r   r   r   rC  r   r"  r2  r.  r   ry   rw   r  r  
  s    =~ HP *ry   r  rF  c                   	 ||}n|rt        d      |rt        j                  dt        d       dt	        |      i}t               }|||d<   t        | d||      }t        f|_        |S )	Nz@TypedDict takes either a dict or keyword arguments, but not bothzThe kwargs-based syntax for TypedDict definitions is deprecated in Python 3.11, will be removed in Python 3.13, and may not be understood by third-party type checkers.r   
stacklevelrX  r   r   rQ  )	r   r$  warnDeprecationWarningr   rp  r  rI   r  )r4  r  rF  rE  r5  rq   tds          rw   rI   rI   :  s    -\ ~	 ( ) 	)7 	
 T&\	*BYF!<	"b	6B"BIry   rI   c                     t         fS r   )
_TypedDictr=  s    rw   <lambda>rZ    s    :- ry   c                 P    	 t        || j                   d      }t        | |f      S Nz accepts only a single type.r   r  r}   rP  s      rw   re   re     s0    $ zdjj\1M#NODw''ry   c                 P    	 t        || j                   d      }t        | |f      S r\  r]  rP  s      rw   rb   rb     s0     zdjj\1M#NODw''ry   c                   6    e Zd Z	 eZd Zd Zd Zd Zd Z	d Z
y)r^   c                     || _         d|v r|j                  d      d   }|| _        || _        t	               }|dk7  r|| _        y y )Nr|   r   typing)r   
rpartitionr   __supertype__rp  r   )r  rZ  r  def_mods       rw   r  zNewType.__init__  sN     $;??3'+D)h%DO ry   c                 :    | j                    G fdd      }|fS )Nc                       e Zd Z fdZy)&NewType.__mro_entries__.<locals>.Dummyc           	      F    | j                   }t        d| d|d d      )NzGCannot subclass an instance of NewType. Perhaps you were looking for: `z = NewType(r   z)`)r   r   )r   subclass_namesuperclass_names     rw   r  z8NewType.__mro_entries__.<locals>.Dummy.__init_subclass__  s:     #%k-1B"_DUUWY ry   N)r   r   r   r  )rj  s   rw   Dummyrg    s    ry   rk  r  )r  r  rk  rj  s      @rw   r  zNewType.__mro_entries__  s!     --	 	 xry   c                 8    | j                    d| j                   S )Nr|   )r   r   r  s    rw   r  zNewType.__repr__  s    //"!D$5$5#677ry   c                     | j                   S r   )r   r  s    rw   r  zNewType.__reduce__  s       ry   c                     t         | |f   S r   r$  r%  s     rw   r'  zNewType.__or__  r(  ry   c                     t         || f   S r   r$  r%  s     rw   r*  zNewType.__ror__  r+  ry   N)r   r   r   r
   r"  r  r  r  r  r'  r*  r   ry   rw   r^   r^     s,    * H&8!""ry   r^   c                      e Zd Z	 dZeedefd              Zeedefd              Zed d       Z	eede
fd              Zedefd       Zed d	       Zede
fd
       Zed!dedefd       Zede
fd       Zed!dedefd       Zed!dedee   fd       Zed"dededefd       Zede
fd       Zedefd       Zed#dedefd       Zede
fd       Zededefd       Zedee   ddfd       Zed$d       Zed d       Zy)%rL   r   r  c                      y r   r   r  s    rw   modezIO.mode       	ry   c                      y r   r   r  s    rw   rZ  zIO.name
  rs  ry   Nc                      y r   r   r  s    rw   closezIO.close  r  ry   c                      y r   r   r  s    rw   closedz	IO.closed  rs  ry   c                      y r   r   r  s    rw   filenoz	IO.fileno  r  ry   c                      y r   r   r  s    rw   flushzIO.flush  r  ry   c                      y r   r   r  s    rw   isattyz	IO.isatty   r  ry   r  c                      y r   r   )r  r  s     rw   readzIO.read$  r  ry   c                      y r   r   r  s    rw   readablezIO.readable(  r  ry   limitc                      y r   r   )r  r  s     rw   readlinezIO.readline,  r  ry   hintc                      y r   r   )r  r  s     rw   	readlineszIO.readlines0  r  ry   offsetwhencec                      y r   r   )r  r  r  s      rw   seekzIO.seek4  r  ry   c                      y r   r   r  s    rw   seekablezIO.seekable8  r  ry   c                      y r   r   r  s    rw   tellzIO.tell<  r  ry   sizec                      y r   r   )r  r  s     rw   truncatezIO.truncate@  r  ry   c                      y r   r   r  s    rw   writablezIO.writableD  r  ry   r/  c                      y r   r   r  r/  s     rw   writezIO.writeH  r  ry   linesc                      y r   r   )r  r  s     rw   
writelineszIO.writelinesL  r  ry   c                      y r   r   r  s    rw   	__enter__zIO.__enter__P  r  ry   c                      y r   r   )r  rs   r  	tracebacks       rw   __exit__zIO.__exit__T  r  ry   )r  N)r   r  r   )r  z
IO[AnyStr])r   r   r   r  rQ  r   ru   rr  rZ  rv  boolrx  r  rz  r|  r~  rP   r  r  r  rD   r  r  r  r  r  r  r  r  r  r  r   ry   rw   rL   rL     sd   
 Ic    c                  c 6   $   c 6   c 4<   3  C   $   c   S C   $   v #   V       ry   rL   c                   H    e Zd Z	 dZedeeef   defd       Z	edd       Z
y)rK   r   r/  r  c                      y r   r   r  s     rw   r  zBinaryIO.write^  r  ry   c                      y r   r   r  s    rw   r  zBinaryIO.__enter__b  r  ry   N)r  rK   )r   r   r   r  r   r   r  	bytearrayr  r  r  r   ry   rw   rK   rK   Y  sH    ?IuUI-. 3    ry   rK   c                       e Zd Z	 dZeedefd              Zeedefd              Z	eede
e   fd              Zeedefd              Zeedefd              Zed
d       Zy	)rO   r   r  c                      y r   r   r  s    rw   bufferzTextIO.bufferl  rs  ry   c                      y r   r   r  s    rw   encodingzTextIO.encodingq  rs  ry   c                      y r   r   r  s    rw   errorszTextIO.errorsv  rs  ry   c                      y r   r   r  s    rw   line_bufferingzTextIO.line_buffering{  rs  ry   c                      y r   r   r  s    rw   newlineszTextIO.newlines  rs  ry   c                      y r   r   r  s    rw   r  zTextIO.__enter__  r  ry   N)r  rO   )r   r   r   r  rQ  r   rK   r  ru   r  r   r  r  r  r   r  r  r   ry   rw   rO   rO   g  s    =I    #            #     ry   rO   c                        e Zd Z fdZ xZS )_DeprecatedTypec                     |dvrD|| j                   v r6t        j                  | j                   d| j                   dt        d       t
        |   |      S )N)rz  r   z5 is deprecated, import directly from typing instead. z  will be removed in Python 3.12.r   rS  )rz  r$  rU  r   rV  r<  __getattribute__)r   rZ  r=  s     rw   r  z _DeprecatedType.__getattribute__  s^    11dcll6JMM<<. !((+~ 6"" # w'--ry   )r   r   r   r  r?  r@  s   @rw   r  r    s    	. 	.ry   r  c                   "    e Zd Z	 g dZeZeZeZy)io)rL   rO   rK   N)r   r   r   __all__rL   rO   rK   r   ry   rw   r  r    s    3*G	BFHry   r  z.ioc                       e Zd Z	 ddgZeZeZy)rerN   rM   N)r   r   r   r  rN   rM   r   ry   rw   r  r    s    0'"GGEry   r  z.rec                       d x}fd|d|fdcS )r  r   r  c                j    	 t        dt        |       j                  t        j                         | S )NzRuntime type is )file)printrs   r   r{  stderrr   s    rw   rf   rf     s/     
T#Y//2
3#**EJry   r   )	.defaultsr  s     rw   #<generic parameters of reveal_type>r    s       ry   c                   *     e Zd ZW    fd       Z Zy)_IdentityCallablec                  "    d x}fd|d|fdcS )r  rv   r  c                     y r   r   r  s     rw   r"  z_IdentityCallable.__call__  s    ry   r   )r  r  __classdict__s     rw   z <generic parameters of __call__>z2_IdentityCallable.<generic parameters of __call__>  s     q  ry   N)r   r   r   r"  __classdictcell__)r  s   @rw   r  r    s     ry   r  )
eq_defaultorder_defaultkw_only_defaultfrozen_defaultfield_specifiersr  r  r  r  r  .rE  c                 (     	  fd}|S )Nc                 $    d| _         | S )N)r  r  r  r  r  rE  )__dataclass_transform__)	cls_or_fnr  r  r  r  rE  r  s    rw   r   z&dataclass_transform.<locals>.decorator  s'    $*., 0-
	) ry   r   )r  r  r  r  r  rE  r   s   `````` rw   rU   rU     s    =|	 	 ry   _Funcc                       t         dt        f   S r   )r   r   r   ry   rw   r  r    s    Xc3h ry   c                  $    d d x}fd|d|fdcS )Fc                      t         S r   )r  r   ry   rw   r  r  !  s    Xry   methodr  c                D    	 	 d| _         | S # t        t        f$ r Y | S w xY wr@  )__override__r  r   )r  s    rw   rd   rd   !  s;    0" M I&  	Mr  r   )r  r  s     rw    <generic parameters of override>r  !  s    X  q    ry   r   r  )rX  __main__)r   )NNF)r   )r   r   r   r   r   collections.abccopyregrv  r   r   r  	stdlib_rer{  r   r$  r   r   r   r	   _typingr
   r   r   r   r   r   r   r   r  rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r;  r   r   r  r   r7  rs   r:  r   ra   r]   rh   r\   r   r   r   r_  r   r   rk   r   rl   r   r  r  r  r  r  r  r  r  r  r  r  r  r}   r  r  r'  r+  r3  r   rd  r   r   rm   rJ  r  _TYPING_INTERNALS_SPECIAL_NAMESr`  rd  rf  rp  rr  r  r   r{  r   r   r~  pickler  r  r1  r  r   r  r   rg   rS   rQ   r   BuiltinFunctionTyper  r  r  rZ   r  rX   rW   r[   r  rR   r_   r`   r  partialr   r  rc   rY   rT   rV   r  r  r  r  r  r  r  r  r  ru   rP   _aliasr#   r0   r3   r2   r1   r%   r&   r7   r.   r!   r4   r   r  rF   r   r,   r(   r*   r-   r+   r    r   r   r   rD   dequerA   r   rG   r)   r'   r$   r/   rt  r"   ru  r6   rB   rC   rE   r@   r?   rJ   r5   r   r=   r;   r:   r9   r<   r8   r>   r!  r2  r3  r*  rH   rC  r-  r>  r  r  rI   rY  re   rb   r^   ri   rj   rL   rK   rO   r  r  r   r|  rN   rM   rf   r  rU   r  rd   r   ry   rw   <module>r     s  * (  #       
   ^ ^	 	 	ol5 PU B@
(2<
<'  	
U < 6?[ DF F ((/6<t (/V0,d 0	"t 	"5H 5$ 4 4( 4 40 4 4& 4 44 ( (* ( (* )0 )0V " "
 
2  2B 4 4  6 62 .( .(bQDt QDhF F F
O O O "J -& -&`#&L9@Td @T\V%T Vz)!<):$ )!X/2$ /2L-t 2"&( &B&%T &#}D #D.D= D)}D ) /: /:d:-t :83 3        (.8<U;VV "(:	8 ,-JK    
  *66 7/ }n -3  0 1$VG Vr  .24w- 24j1"lM 1"hF
 F
R4  $$e&?&?""E$4$4'):<PR
`]F2:2* !$ Oe O5 O2!H: !!2!2!2;!EF &R	3
!N CLT]T]v&v&4(:T24t4
 
5#	& 
+//**A.;??,,a0	;??,,a0	{44a8{44a8+//**A.+//**A.KOO..2
{$$a(;??,,a0	KOO..2
1115 	  [__((!-@KOO..2

((!
,66:+//**A.88!<$OO7
 	5"5w7	  dAE/{  !'2S!%e,9ae+>	[__00!4+//**A.;??,,a0	KOO..2

991CSTZCCQMbc dAE/[,,amD[,,a0
$$a
(+&&*;??,,a0	66:dAE/ 2 (   H   h   H   H        D E BC!T !H: ll><R@ 5
 F*T F*RE EN \\.+r2>
7	  ( (. ( ($;" ;"~  ` `Fr%y  RW  F
.d 
.?  BKK 
""A
&y"?  BKK &  ! CEQQ Q 	Q
 Q DIc(::C?@Q Q Qh     ry   