3 \9D@s ddlZddlmZmZddlZddlZddlZddlZddlZddl Z yddl jZ Wne k rrddlZ YnXej dddkrddlZyddl mZmZmZWn4e k reejZeejZeejZYnXddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:g4Zd;d<Zd=d>ZGd?d@d@eZGdAdBdBedCdDZGdEdFdFedCdGZGdHdIdIedCdGZGdJdKdKedCdGZdLdMZ dNdOZ!dPdQZ"dRdSZ#dTdUZ$GdVdWdWedCdGZ%e%dCdGZ&GdXdYdYedCdGZ'e'dCdGZ(GdZddedCdGZ)e)d[Z*e)d\Z+e)d]Z,e)d^dCd_Z-e)d`dCd_Z.e)dadCd_Z/e)dbdCdcZ0e)d2e1eZ2dddeZ3ddfdgZ4dhdiZ5djdkZ6gZ7dldmZ8GdndodoedCdGZ9e9dCdGZ:GdpdqdqedCdGZ;e;dCdGZdvdwZ?Gdxddeej@ZAdZBdydzZCGd{d d eAd|ZBGd}d~d~ZDGdddZEGdddeAZFGdd d eGeGeFdZHGdddeAZIGddde jJeIdZJGdddedCdGZKeKdCdGZLdd3ZMddZNe jOe jPe jQe jReeefZSddd4ZTdd6ZUdd7ZVddZWdd8ZXGdddeAZYGdddeYd|ZZe j[Z[e\e drjGdddeBe-e j]dZ]ej^de\e drGddde]e.eBe-e0e.fe j_dZ_ej^de\e drGdddeBe-e j`dZ`Gddde`e-e jadZaej^dej^dGdddeBe-e jbdZbGdddebe-e jcdZcGdd'd'eZZdGdd&d&eZZeGdd%d%eZZfGdd$d$eZZgGdd#d#eZe-ZhGdd(d(eZe-Zie\e d"rGdd"d"ebe-e jjdZjnGdd"d"eZe-Zje jkZkGdddeBe-e jldZle\e dr*Gdddekebe-ele-e jmdZmej^de\e drRGdddeme-e jndZon"Gdddekebe-ele-e jndZoGdddeoe*e jpdZpe\e drGdddeme+eBe+e/fe jqdZqn,Gdddekebe+ele+eBe+e/fe jqdZqGdddeqe+e,fe jrdZre\e d"rhe\e drDGdddeje-eme-e jsdZsn"Gdddekeje-ele-e jsdZsn"Gdddekebe-ele-e jsdZsGdddese*e jtdZtGdddeseue jvdZvGdd-d-ewete*ewdZxGdd*d*ejyete*ejydZzGdd.d.e{epe*e{dZnGdd/d/e|eoe-e|dZ}Gdddekebe-e j~dZ~Gddde~e+eoe+e jdZGddde~eHe+e/feoeHe+e/feBe+e/fe jdZGdd!d!e~e/e jdZe\edrGdddeBe-ejdZnGdddeBe-Ze\edà r(GddńdeBe-ejdZej^dŃnej dddk rDedǃGdd+d+eere+e,fedZGdd,d,ejere+e,fejdZGdd)d)ejee*eufejdZe\ed˃ rej^d˃Gdd˄dejere+e,fejdZe\e d1 re jZne jZGdd1d1ece-eBe-e0e.fedZe\e d΃ rVGdd΄deae-eBe-e0fe jdZej^d΃e)ddCedэZGdd d eBeedZddԄZej dddkZdZdZGdddeZGdd0d0ed|Zdd5ZeZdZGdddeBe2ZGdddee1ZGdddeeZGdddZede_eejej<ede2eejdddZede2eejddddZGdddZede_eejej<dS(N)abstractmethodabstractproperty)WrapperDescriptorTypeMethodWrapperTypeMethodDescriptorTypeAnyCallableClassVarGenericOptionalTupleTypeTypeVarUnion AbstractSet GenericMeta ByteString ContainerContextManagerHashable ItemsViewIterableIteratorKeysViewMapping MappingViewMutableMappingMutableSequence MutableSetSequenceSized ValuesView Reversible SupportsAbs SupportsBytesSupportsComplex SupportsFloat SupportsInt SupportsRoundCounterDequeDict DefaultDictListSet FrozenSet NamedTuple GeneratorAnyStrcastget_type_hintsNewType no_type_checkno_type_check_decoratoroverloadText TYPE_CHECKINGcCs"tjdddkr|jS|jSdS)Nrr)rr)sys version_info __qualname____name__)xrC/usr/lib64/python3.6/typing.py _qualnamegsrEcCs&d}|jdr"||kr"|dd}|S)N _TypeAlias _ForwardRef _TypingBase_FinalTypingBase_)rFrGrHrI) startswith)ZnmZ whitelistrCrCrD _trim_nameos rMcsFeZdZdZddfdd ZddZddZd d Zd d ZZ S) TypingMetaF)_rootcs2|s tddjtt|pdtj||||S)NzCannot subclass %sz, z()) TypeErrorjoinmap _type_reprsuper__new__)clsnamebases namespacerO) __class__rCrDrUszTypingMeta.__new__cOsdS)NrC)selfargskwdsrCrCrD__init__szTypingMeta.__init__cCs|S)NrC)r[globalnslocalnsrCrCrD _eval_typeszTypingMeta._eval_typecCsdS)NrC)r[tvarsrCrCrD_get_type_varsszTypingMeta._get_type_varscCstt|}d|j|fS)Nz%s.%s)rMrE __module__)r[qnamerCrCrD__repr__s zTypingMeta.__repr__) rArdr@ _is_protocolrUr^rarcrf __classcell__rCrC)rZrDrNvs   rNcsHeZdZdZddZfddZddZdd Zd d Zd d Z Z S)rH __weakref__cOsdS)NrC)r[r\r]rCrCrDr^sz_TypingBase.__init__cs@t|dkr4t|dtr4t|dtr4td|tj|S)NrrrKzCannot subclass %r)len isinstancestrtuplerPrTrU)rVr\r])rZrCrDrUs   z_TypingBase.__new__cCs|S)NrC)r[r_r`rCrCrDrasz_TypingBase._eval_typecCsdS)NrC)r[rbrCrCrDrcsz_TypingBase._get_type_varscCs"t|}tt|}d|j|fS)Nz%s.%s)typerMrErd)r[rVrerCrCrDrfs z_TypingBase.__repr__cOstdt|dS)NzCannot instantiate %r)rPrn)r[r\r]rCrCrD__call__sz_TypingBase.__call__)ri) rArdr@ __slots__r^rUrarcrfrorhrCrC)rZrDrHs rHT) metaclassrOcs.eZdZfZddfdd ZddZZS)rIF)rOcs0tj|f||}|dkr |Std|dS)NTzCannot instantiate %r)rTrUrP)rVrOr\r]r[)rZrCrDrUsz_FinalTypingBase.__new__cCstt|jS)N)rMrnrA)r[rCrCrD __reduce__sz_FinalTypingBase.__reduce__)rArdr@rprUrrrhrCrC)rZrDrIsrI)rOcsPeZdZdZfddZddZd d Zd d Zd dZddZ ddZ Z S)rG__forward_arg____forward_code____forward_evaluated____forward_value__c sttj|t|ts$td|fyt|dd}Wn"tk rVtd|fYnX||_||_d|_ d|_ dS)Nz,Forward reference must be a string -- got %rzevalz1Forward reference must be an expression -- got %rF) rTr^rkrlrPcompile SyntaxErrorrsrtrurv)r[argcode)rZrCrDr^s  z_ForwardRef.__init__cCsf|j s||k r`|dkr*|dkr*i}}n|dkr8|}n |dkrD|}tt|j||d|_d|_|jS)Nz*Forward references must evaluate to types.T)ru _type_checkrwrtrv)r[r_r`rCrCrDras  z_ForwardRef._eval_typecCs&t|tstS|j|jko$|j|jkS)N)rkrGNotImplementedrsrv)r[otherrCrCrD__eq__s  z_ForwardRef.__eq__cCst|j|jfS)N)hashrsrv)r[rCrCrD__hash__sz_ForwardRef.__hash__cCs tddS)Nz4Forward references cannot be used with isinstance().)rP)r[objrCrCrD__instancecheck__sz_ForwardRef.__instancecheck__cCs tddS)Nz4Forward references cannot be used with issubclass().)rP)r[rVrCrCrD__subclasscheck__sz_ForwardRef.__subclasscheck__cCs d|jfS)Nz_ForwardRef(%r))rs)r[rCrCrDrf sz_ForwardRef.__repr__)rsrtrurv) rArdr@rpr^rarrrrrfrhrCrC)rZrDrGs rGc@sHeZdZdZddZddZd d Zd d Zd dZddZ ddZ dS)rFrWtype_var impl_type type_checkercCs||_||_||_||_dS)N)rWrrr)r[rWrrrrCrCrDr^sz_TypeAlias.__init__cCsd|jt|jfS)Nz%s[%s])rWrSr)r[rCrCrDrf,sz_TypeAlias.__repr__cCst|jtstd||jjrJt|trJt||jjsJtd||jft|trj||jk rjtd||j|j||j |j S)Nz#%s cannot be further parameterized.z&%s is not a valid substitution for %s.z%s cannot be re-parameterized.) rkrrrP__constraints__rn issubclassrZrWrr)r[Z parameterrCrCrD __getitem__/s    z_TypeAlias.__getitem__cCs&t|tstS|j|jko$|j|jkS)N)rkrFr}rWr)r[r~rCrCrDr;s z_TypeAlias.__eq__cCst|j|jfS)N)rrWr)r[rCrCrDr@sz_TypeAlias.__hash__cCs t|jtstdt||jS)Nzsz#TypeVar.__init__..zBound must be a type.) rTr^rA ValueErrorboolrrrPrjrmrr|r)r[rWrrrZ constraints)rZ)rrDr^s     zTypeVar.__init__cCs||kr|j|dS)N)append)r[rbrCrCrDrcszTypeVar._get_type_varscCs&|jr d}n|jrd}nd}||jS)N+-~)rrrA)r[prefixrCrCrDrf s zTypeVar.__repr__cCs tddS)Nz0Type variables cannot be used with isinstance().)rP)r[instancerCrCrDrszTypeVar.__instancecheck__cCs tddS)Nz0Type variables cannot be used with issubclass().)rP)r[rVrCrCrDrszTypeVar.__subclasscheck__)rArrrr) rArdr@rpr^rcrfrrrhrCrC)rZrDrs* TKTVTT_co)rV_coVT_coT_contra)rcCsd|dkr g}t|dr0t|ttfr0|j||St|tr`x$t|D]\}}||krD||SqDW|S)N _subs_tree)hasattrrkrrHrr enumerate)rzrbr\iZtvarrCrCrD _replace_arg)s   rc Cs|jdkr|S|j}g}x|jdk r6|j||j}qWg}x |jD]}|jt|||qDWx8|D]0}g}x"|jD]}|jt||j|qtW|}qdW|S)N)rr__args__r__parameters__) rVrbr\ZcurrentZ orig_chain tree_argsrzZoclsZ new_tree_argsrCrCrDrDs       rcsg}xn|D]f}t|tr0|jtkr0|j|jq t|trft|dkrf|dtkrf|j|ddq |j|q Wt |tt|krg}x(|D] }|kr|j|j |qW|}t |x>|D]6tt sqt fddhDr̈j qWtfdd|DS)NrrKc3s6|].}t|to|jdk st|to,t|VqdS)N)rkrrrnr)rZt2)t1rCrDrs z'_remove_dups_flatten..c3s|]}|kr|VqdS)NrC)rr) all_paramsrCrDrs) rkrrrextendrrmrjrsetremovernany) parametersparamspZ new_paramsrrC)rrrD_remove_dups_flattenes. "     rcCsX|jstdt|t|}t|j}||krTtd||kr@dndt|||fdS)Nz%s is not a generic classz0Too %s parameters for %s; actual %s, expected %sZmanyZfew)rrPrrj)rVrZalenZelenrCrCrD_check_generics rcs4tjtjjtjfdd}|S)Nc s*y ||Stk rYnX||S)N)rP)r\r])cachedfuncrCrDinners  z_tp_cache..inner) functools lru_cache _cleanupsr cache_clearwraps)rrrC)rrrD _tp_caches  rcseZdZdZdddfdd Zd d Zd d ZfddZfddZe ddZ d ddZ ddZ ddZ ddZddZZS)!rrrr __tree_hash__NF)rOcstj|||f|d|i}|dkrHd|_d|_d|_ttd|_|St|t sZt d|t kr~t |}t |dkr~|dSt||_||_||_|j}t|t rtt||_n t||_|S)NrOrzExpected parameters=rKr)r)rTrUrrrr frozensetrrkrmrPrrrjrr)rVroriginrOr\r[Z subs_tree)rZrCrDrUs*     z_Union.__new__cs^|jdkr|Stfdd|jD}t|j}||jkrN||jkrN|S|j||ddS)Nc3s|]}t|VqdS)N)ra)rr)r_r`rCrDrsz$_Union._eval_type..T)rO)rrmrarrZ)r[r_r`ev_args ev_originrC)r_r`rDras z_Union._eval_typecCs|jr|jrt|j|dS)N)rrrc)r[rbrCrCrDrcs z_Union._get_type_varscs<|jdkrtjS|j}t|ts.t|S|dj|S)Nr)rrTrfrrkrmr _tree_repr)r[tree)rZrCrDrfs    z_Union.__repr__cs`g}xB|ddD]2}t|ts0|jt|q|j|dj|qWtjddj|S)NrKrz[%s]z, )rkrmrrSrrTrfrQ)r[rarg_listrz)rZrCrDr s  z_Union._tree_reprcsl|fkrtdt|ts |f}|jdkr0dndtfdd|D}|tk r\t|||j||ddS)Nz Cannot take a Union of no types.z)Union[arg, ...]: each arg must be a type.z*Parameters to generic types must be types.c3s|]}t|VqdS)N)r|)rr)rrCrDr sz%_Union.__getitem__..T)rrO)rPrkrmrrrrZ)r[rrC)rrDrs   z_Union.__getitem__cCs>|tkr tSt|||}t|}t|dkr4|dStf|S)NrKr)rrrrj)r[rbr\rrCrCrDr%s  z_Union._subs_treecCs6t|tr|j|jkS|tk r*|j|kS||kSdS)N)rkrrrr)r[r~rCrCrDr.s    z _Union.__eq__cCs|jS)N)r)r[rCrCrDr6sz_Union.__hash__cCs tddS)Nz(Unions cannot be used with isinstance().)rP)r[rrCrCrDr9sz_Union.__instancecheck__cCs tddS)Nz(Unions cannot be used with issubclass().)rP)r[rVrCrCrDr<sz_Union.__subclasscheck__)rrrr)NN)NN)rArdr@rprUrarcrfrrrrrrrrrhrCrC)rZrDrs,    rc@seZdZfZeddZdS)rcCst|d}t|tdfS)Nz#Optional[t] requires a single type.)r|rrn)r[rzrCrCrDrKs z_Optional.__getitem__N)rArdr@rprrrCrCrCrDrCsrcCsJt}x@t|jddD]*\}}t|tr|jtkr|j|d}qW|S)NrK)objectr__mro__rkrrr )rVZ next_in_mrorcrCrCrD _next_in_mroTs rcs,tjtjrfdd}n fdd}|S)NcsZjj|}|tk r|Sj|jkr(dSx,jjD]}t|trDq4t||r4dSq4WtS)NT) __extra____subclasshook__r}r__subclasses__rkrr)subclassresscls)rVrCrD __extrahook__ks    z)_make_subclasshook..__extrahook__csjrt|jrdStS)NT)rrr})r)rVrCrDrys)rkrabcABCMeta)rVrrC)rVrD_make_subclasshookbs rcCs2t|}d|kr.x|dD]}|j|dqW|S)Nrp)dictpop)ZdctZ dict_copyZslotrCrCrD_no_slots_copys rcseZdZd fdd ZeddZejddZeddZejd dZd d Zd d Z fddZ fddZ d!ddZ ddZ ddZeddZfddZddZfddZZS)"rNc sX|dk r nt|}d} xF|D]>} | tkr0tdt| tr| jtkr| dk rTtd| j} qW| dkrl|} nPt|} t| | kstddjfdd|Ddjdd| Df| }|} |dk rt |t j kr||kr|f|}t dd|D}t d d|Dr t d d|D}|j|||s2dn|jd tj||||d d } tt| jd|sj| n|j|| _|rt dd|Dnd| _t| | _|dkr| | _d|kr|st| jdddkrt| | _t|t j r|j| _|j| _n|dk r|j| _|j| _|r2t|dr2|j| _|rDt| jn tt| j | _!| S)Nz!Cannot inherit from plain Genericz0Cannot inherit from Generic[...] multiple types.z6Some type variables (%s) are not listed in Generic[%s]z, c3s|]}|krt|VqdS)N)rl)rr)gvarsetrCrDrsz&GenericMeta.__new__..css|]}t|VqdS)N)rl)rgrCrCrDrscss"|]}t|tr|jn|VqdS)N)rkrr)rbrCrCrDrscss |]}t|to|tk VqdS)N)rkrr )rrrCrCrDrscss|]}|tk r|VqdS)N)r )rrrCrCrDrs)rrrT)rOrcss*|]"}|tkrdn|tkrfn|VqdS).N)_TypingEllipsis _TypingEmpty)rarCrCrDrsrrArr@)"rr rPrkrrrrrQrnrrrmrupdaterrTrU __setattr__rr__next_in_mro____orig_bases__rrr _abc_registry _abc_cacherr@rrrr)rVrWrXrYrbr\rextra orig_basesZgvarsbaseZtvarsetZ initial_basesr[)rZ)rrDrUsj           zGenericMeta.__new__cCst|jtjr|jjS|jjS)N)rkrrr_abc_negative_cacher_abc_generic_negative_cache)r[rCrCrDrszGenericMeta._abc_negative_cachecCs,|jdkr(t|jtjr"||j_n||_dS)N)rrkrrrrr)r[valuerCrCrDrs  cCst|jtjr|jjS|jjS)N)rkrrr_abc_negative_cache_versionr#_abc_generic_negative_cache_version)r[rCrCrDr sz'GenericMeta._abc_negative_cache_versioncCs,|jdkr(t|jtjr"||j_n||_dS)N)rrkrrrrr)r[rrCrCrDrs  cCs|jr|jrt|j|dS)N)rrrc)r[rbrCrCrDrcs zGenericMeta._get_type_varsc s|jr|jjnd}|jr8tfdd|jDnd}||jkrT||jkrT|S|j|j|jt|j|rtt |nd|||j |j dS)Nc3s|]}t|VqdS)N)ra)rr)r_r`rCrDrsz)GenericMeta._eval_type..)rbr\rrr) rrarrmrZrA __bases__r__dict__rrr)r[r_r`rrrC)r_r`rDras$zGenericMeta._eval_typecs"|jdkrtjS|j|jS)N)rrTrfrr)r[)rZrCrDrf+s  zGenericMeta.__repr__cstg}xV|ddD]F}|fkr*|jdqt|tsD|jt|q|j|dj|qWtjddj|S)NrKz()rz[%s]z, )rrkrmrSrrTrfrQ)r[rrrz)rZrCrDr0s  zGenericMeta._tree_reprcCs*|jdkr|St|||}|jft|S)N)rrrrm)r[rbr\rrCrCrDr;s  zGenericMeta._subs_treecCs6t|tstS|jdks"|jdkr*||kS|j|jkS)N)rkrr}rr)r[r~rCrCrDrAs  zGenericMeta.__eq__cCs|jS)N)r)r[rCrCrDrHszGenericMeta.__hash__c s6t|ts|f}| r0|jtk r0tdt|dtfdd|D}|tkrtdd|Dsltdtt |t|krtd|}|}nb|tt fkrt |}|}nH|t kr|}|}n6|j tt fkrtdt|nt||t |}|}|j dkr|fnf}|j|j||jt|j||||j|jd S) Nz)Parameter list to %s[...] cannot be emptyz*Parameters to generic types must be types.c3s|]}t|VqdS)N)r|)rr)rrCrDrSsz*GenericMeta.__getitem__..css|]}t|tVqdS)N)rkr)rrrCrCrDrVsz5Parameters to Generic[...] must all be type variablesz-Parameters to Generic[...] must all be uniquez'Cannot subscript already-subscripted %s)rbr\rrr)rkrmrrrPrEr allrjrr rrrrrrZrArrrrr)r[rrbr\ZprependrC)rrDrKsJ   zGenericMeta.__getitem__csJ|jdk r*tjdjddkr&tddS|tkr>td|tj|S) NrKrArrzCParameterized generics cannot be used with class or instance checksFz5Class %r cannot be used with class or instance checks)rr)rr> _getframe f_globalsrPr rTr)r[rV)rZrCrDrys zGenericMeta.__subclasscheck__cCs t|j|S)N)rrZ)r[rrCrCrDrszGenericMeta.__instancecheck__csT|jdr|jds(|jds(|jdkr.) rrrrTrrrkrmrjr|r)r[rr)rZ)rrDrs  zTupleMeta.__getitem__cCs |jdkrt|tStddS)Nz5Parameterized Tuple cannot be used with isinstance().)rrkrmrP)r[rrCrCrDrs  zTupleMeta.__instancecheck__cCs |jdkrt|tStddS)Nz5Parameterized Tuple cannot be used with issubclass().)rrrmrP)r[rVrCrCrDrs  zTupleMeta.__subclasscheck__)rArdr@rrrrrhrCrC)rZrDr sr c@seZdZfZddZdS)rcOs$|jtkrtdtt|f||S)Nz6Type Tuple cannot be instantiated; use tuple() instead)rrrPr rm)rVr\r]rCrCrDrU s z Tuple.__new__N)rArdr@rprUrCrCrCrDrs )rrqcsDeZdZfddZfddZfddZefddZZS) CallableMetacs"|jdkrtjS|j|jS)N)rrTrfrr)r[)rZrCrDrfs  zCallableMeta.__repr__cs|jtk rtj|Sg}xB|ddD]2}t|tsF|jt|q(|j|dj|q(W|ddkrt|dd|dSt|dddj |dd|dfS) NrKrz...z [..., %s]z [[%s], %s]z, rr) rr rTrrkrmrrSrrQ)r[rrrz)rZrCrDrs     zCallableMeta._tree_reprcs|jdk s|jtk r tj|St|t s8t|dkr@td|\}}|t krZt |f}n$t|t srtd|ft||f}|j |S)Nrz6Callable must be used as Callable[[arg, ...], result].z8Callable[args, result]: args must be a list. Got %.100r.) rrr rTrrkrmrjrPEllipsislist__getitem_inner__)r[rr\result)rZrCrDr*s     zCallableMeta.__getitem__cs^|\}}dt|}|tkr.tjt|fSdtfdd|D}||f}tj|S)Nz.Callable[args, result]: result must be a type.z6Callable[[arg, ...], result]: each arg must be a type.c3s|]}t|VqdS)N)r|)rrz)rrCrDrFsz1CallableMeta.__getitem_inner__..)r|r rTrrrm)r[rr\r)rZ)rrDr>s  zCallableMeta.__getitem_inner__) rArdr@rfrrrrrhrCrC)rZrDr s   r c@seZdZfZddZdS)r cOs&|jtkrtdt|j|f||S)NzIType Callable cannot be instantiated; use a non-abstract subclass instead)rr rPr r)rVr\r]rCrCrDrUXs zCallable.__new__N)rArdr@rprUrCrCrCrDr Ks csJeZdZdZdddZddZddZfd d Zd d Zd dZ Z S)r__type__NcKs ||_dS)N)r)r[tpr]rCrCrDr^rsz_ClassVar.__init__cCsPt|}|jdkr4|t|dj|jddddStdj|jdddS)Nz{} accepts only single type.rKT)rOz {} cannot be further subscripted)rnrr|formatrArP)r[itemrVrCrCrDrus z_ClassVar.__getitem__cCs,t|j||}||jkr|St||ddS)NT)rO)rarrn)r[r_r`Znew_tprCrCrDra~s z_ClassVar._eval_typecs,tj}|jdk r(|djt|j7}|S)Nz[{}])rTrfrrrS)r[r)rZrCrDrfs  z_ClassVar.__repr__cCstt|j|jfS)N)rrnrAr)r[rCrCrDrsz_ClassVar.__hash__cCs,t|tstS|jdk r$|j|jkS||kS)N)rkrr}r)r[r~rCrCrDrs    z_ClassVar.__eq__)r)N) rArdr@rpr^rrarfrrrhrCrC)rZrDr_s   rcCs|S)NrC)typvalrCrCrDr6sc Csy |j}Wntk riSX|j}|j}|d|}|jp@f}|j}|rTt|ni}|t|}x&t||d|D]\}} | ||<qxW|S)N) __code__r  co_argcount co_varnames __defaults____kwdefaults__rrjzip) rr{Z pos_countZ arg_namesdefaultsZ kwdefaultsrZ pos_offsetrWrrCrCrD _get_defaultss     rc Cst|ddriSt|tri}xt|jD]z}|dkrFtj|jj}n|}|jj di}xJ|j D]>\}}|dkrztd}t|t rt |}t |||}|||<qbWq*W|S|dkrt|tjr|j}n t|di}|dkr|}n |dkr|}t|dd}|dkr"t|triStdj|t|} t|}xp|j D]d\}}|dkrVtd}t|t rjt |}t |||}|| kr| |dkrt|}|||<qmodulesrdrgetitemsrlrGrar ModuleType_allowed_typesrPrrrr) rr_r`ZhintsrZ base_globalsZannrWrrrCrCrDr7sV            c Cst|tr||jj}x0|jjD]"\}}||j|fkr |j|q Wx4|jD](}t|tj rfd|_ t|trPt |qPWy d|_ Wnt k rYnX|S)NT) rkrnrcopyr&rrvaluesrrr r9rP)rzZ arg_attrsrrrrCrCrDr9s      cstjfdd}|S)Ncs||}t|}|S)N)r9)r\r]r) decoratorrCrDwrapped_decorator/s z2no_type_check_decorator..wrapped_decorator)rr)r+r,rC)r+rDr:(scOs tddS)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]rCrCrD_overload_dummy8sr.cCstS)N)r.)rrCrCrDr;Ascs,eZdZfddZddZddZZS) _ProtocolMetacs"t|jkrtj|StddS)Nz+Protocols cannot be used with isinstance().)rrrTrrP)r[r)rZrCrDres  z_ProtocolMeta.__instancecheck__csL|js tS|tkrdS|j}x(|D] tfdd|jDs$dSq$WdS)NTc3s|]}|jkVqdS)N)r)rd)rrCrDrwsz2_ProtocolMeta.__subclasscheck__..F)rgr}r_get_protocol_attrsrr)r[rVattrsrC)rrDrjs z_ProtocolMeta.__subclasscheck__cCs,g}x.|jD]$}t|ddr |jdkr |j|q Wt}x|D]}x|jjD]}x|jD]&}||k r`||jkr`t|dd r`Pq`W|jd rT|dkrT|dkrT|dkrT|dkrT|dkrT|d krT|d krT|d krT|d krT|d krT|dkrT|dkrT|dkrT|dkrT|dkrT|dkrT|j|qTWqBW|S)NrgFrr__abstractmethods__r!rirrrrpr1rrrrrrrd) rrrArrrkeysrLadd)r[Zprotocol_basesrr2rrrCrCrDr1{s<   z!_ProtocolMeta._get_protocol_attrs)rArdr@rrr1rhrCrC)rZrDr/^s r/c@seZdZfZdZdS)rTN)rArdr@rprgrCrCrCrDrsr Awaitablec@seZdZfZdS)r6N)rArdr@rprCrCrCrDr6s)r Coroutinec@seZdZfZdS)r7N)rArdr@rprCrCrCrDr7s AsyncIterablec@seZdZfZdS)r8N)rArdr@rprCrCrCrDr8sc@seZdZfZdS) AsyncIteratorN)rArdr@rprCrCrCrDr9sr9c@seZdZfZdS)rN)rArdr@rprCrCrCrDrsc@seZdZfZdS)rN)rArdr@rprCrCrCrDrsc@s"eZdZfZeedddZdS)r*)returncCsdS)NrC)r[rCrCrD__int__szSupportsInt.__int__N)rArdr@rprintr;rCrCrCrDr*sc@s"eZdZfZeedddZdS)r))r:cCsdS)NrC)r[rCrCrD __float__szSupportsFloat.__float__N)rArdr@rprfloatr=rCrCrCrDr)sc@s"eZdZfZeedddZdS)r()r:cCsdS)NrC)r[rCrCrD __complex__szSupportsComplex.__complex__N)rArdr@rprcomplexr?rCrCrCrDr(sc@s"eZdZfZeedddZdS)r')r:cCsdS)NrC)r[rCrCrD __bytes__szSupportsBytes.__bytes__N)rArdr@rprbytesrArCrCrCrDr'sc@s"eZdZfZeedddZdS)r&)r:cCsdS)NrC)r[rCrCrD__abs__szSupportsAbs.__abs__N)rArdr@rprrrCrCrCrCrDr&sc@s&eZdZfZedeedddZdS)r+r)ndigitsr:cCsdS)NrC)r[rDrCrCrD __round__szSupportsRound.__round__N)r)rArdr@rprr<rrErCrCrCrDr+sc@seZdZfZdS)r%N)rArdr@rprCrCrCrDr% sc@s"eZdZfZeddddZdS)r%zIterator[T_co])r:cCsdS)NrC)r[rCrCrD __reversed__szReversible.__reversed__N)rArdr@rprrFrCrCrCrDr% sc@seZdZfZdS)rN)rArdr@rprCrCrCrDrs Collectionc@seZdZfZdS)rGN)rArdr@rprCrCrCrDrGsc@seZdZfZdS)rN)rArdr@rprCrCrCrDr'sc@seZdZfZdS)rN)rArdr@rprCrCrCrDr+sc@seZdZfZdS)r!N)rArdr@rprCrCrCrDr!0sc@seZdZfZdS)rN)rArdr@rprCrCrCrDr6sc@seZdZfZdS)rN)rArdr@rprCrCrCrDr:sc@seZdZfZdS)rN)rArdr@rprCrCrCrDr?sc@seZdZfZdS)r"N)rArdr@rprCrCrCrDr"Esc@seZdZfZdS)r"N)rArdr@rprCrCrCrDr"Isc@seZdZfZdS)r"N)rArdr@rprCrCrCrDr"Msc@seZdZfZdS)r N)rArdr@rprCrCrCrDr Rsc@seZdZfZdS)rN)rArdr@rprCrCrCrDrVsc@seZdZfZddZdS)r0cOs$|jtkrtdtt|f||S)Nz4Type List cannot be instantiated; use list() instead)rr0rPr r)rVr\r]rCrCrDrU^s z List.__new__N)rArdr@rprUrCrCrCrDr0Zsc@seZdZfZddZdS)r-cOs*|jtkrtj||Sttj|f||S)N)rr- collectionsdequer )rVr\r]rCrCrDrUis  z Deque.__new__N)rArdr@rprUrCrCrCrDr-esc@seZdZfZddZdS)r1cOs$|jtkrtdtt|f||S)Nz2Type Set cannot be instantiated; use set() instead)rr1rPr r)rVr\r]rCrCrDrUss z Set.__new__N)rArdr@rprUrCrCrCrDr1osc@seZdZfZddZdS)r2cOs$|jtkrtdtt|f||S)Nz>Type FrozenSet cannot be instantiated; use frozenset() instead)rr2rPr r)rVr\r]rCrCrDrU}s zFrozenSet.__new__N)rArdr@rprUrCrCrCrDr2zsc@seZdZfZdS)rN)rArdr@rprCrCrCrDrsc@seZdZfZdS)rN)rArdr@rprCrCrCrDrsc@seZdZfZdS)rN)rArdr@rprCrCrCrDrsc@seZdZfZdS)r$N)rArdr@rprCrCrCrDr$sAbstractContextManagerc@seZdZfZdS)rN)rArdr@rprCrCrCrDrsc@s2eZdZfZddZejddZeddZ dS)rcCs|S)NrC)r[rCrCrD __enter__szContextManager.__enter__cCsdS)NrC)r[exc_type exc_value tracebackrCrCrD__exit__szContextManager.__exit__cCs8|tkr4tdd|jDr4tdd|jDr4dStS)Ncss|]}d|jkVqdS)rKN)r)rBrCrCrDrsz2ContextManager.__subclasshook__..css|]}d|jkVqdS)rON)r)rrPrCrCrDrsT)rrrr})rVCrCrCrDrs zContextManager.__subclasshook__N) rArdr@rprKrrrO classmethodrrCrCrCrDrsAbstractAsyncContextManagerc@seZdZfZdS)AsyncContextManagerN)rArdr@rprCrCrCrDrTsrTa class AsyncContextManager(Generic[T_co]): __slots__ = () async def __aenter__(self): return self @abc.abstractmethod async def __aexit__(self, exc_type, exc_value, traceback): return None @classmethod def __subclasshook__(cls, C): if cls is AsyncContextManager: if sys.version_info[:2] >= (3, 6): return _collections_abc._check_methods(C, "__aenter__", "__aexit__") if (any("__aenter__" in B.__dict__ for B in C.__mro__) and any("__aexit__" in B.__dict__ for B in C.__mro__)): return True return NotImplemented __all__.append('AsyncContextManager') c@seZdZfZddZdS)r.cOs$|jtkrtdtt|f||S)Nz4Type Dict cannot be instantiated; use dict() instead)rr.rPr r)rVr\r]rCrCrDrUs z Dict.__new__N)rArdr@rprUrCrCrCrDr.sc@seZdZfZddZdS)r/cOs*|jtkrtj||Sttj|f||S)N)rr/rH defaultdictr )rVr\r]rCrCrDrUs  zDefaultDict.__new__N)rArdr@rprUrCrCrCrDr/sc@seZdZfZddZdS)r,cOs*|jtkrtj||Sttj|f||S)N)rr,rHr )rVr\r]rCrCrDrUs  zCounter.__new__N)rArdr@rprUrCrCrCrDr,sChainMapc@seZdZfZddZdS)rWcOs*|jtkrtj||Sttj|f||S)N)rrWrHr )rVr\r]rCrCrDrUs  zChainMap.__new__N)rArdr@rprUrCrCrCrDrWsc@seZdZfZddZdS)r4cOs$|jtkrtdtt|f||S)Nz@Type Generator cannot be instantiated; create a subclass instead)rr4rPr _G_base)rVr\r]rCrCrDrUs zGenerator.__new__N)rArdr@rprUrCrCrCrDr4 sAsyncGeneratorc@seZdZfZdS)rYN)rArdr@rprCrCrCrDrYsCT_co)rrc@seZdZfZdS)rN)rArdr@rprCrCrCrDr$sc svdfdd|D}tj|dd|D}tj||_|_ytjdjjdd|_ Wnt t fk rpYnX|S)NzDNamedTuple('Name', [(f0, t0), (f1, t1), ...]); each t must be a typecsg|]\}}|t|fqSrC)r|)rnr)rrCrD Asz!_make_nmtuple..cSsg|] \}}|qSrCrC)rr[rrCrCrDr\BsrrA__main__) rH namedtuple OrderedDictr! _field_typesr>rrr%rdr r)rWrnm_tplrC)rrD _make_nmtuple?srbrUr^rp__getnewargs___fields_field_defaultsr`_make_replace_asdict_sourcerdrAr@r!cseZdZfddZZS)NamedTupleMetac s|jddrtj||||Sts*td|jdi}t||j}g}i}xP|D]H}||krz||} |j| | ||<qR|rRtdj|dj |j dqRWt j ||j_ t||j_||_xD|D]<} | tkrtd| q| tko| |jkrt|| || qW|S) NrOFzKeyword syntax for NamedTuple is only supported in Python 3.6+zIEither list of fields or keywords can be provided to NamedTuple, not both)rlrPr&rb)r[rpZfieldskwargsrCrCrDrUs  zNamedTuple.__new__)N)rArdr@rOrUrCrCrCrDr3yscCsdd}||_||_|S)NcSs|S)NrC)rBrCrCrDnew_typeszNewType..new_type)rAZ __supertype__)rWrrtrCrCrDr8sFc@seZdZfZeedddZeedddZeddddZ ee dd d Z ee dd d Z eddd dZee dddZed6e edddZee dddZed8e edddZed:e eedddZed;e e e ddd Zee dd!d"Zee dd#d$ZedeZdZfZeeeefedddZ eddddZ dS)BinaryIO)rr:cCsdS)NrC)r[rrCrCrDr) szBinaryIO.write)r:cCsdS)NrC)r[rCrCrDrK- szBinaryIO.__enter__N) rArdr@rprrrB bytearrayr<rrKrCrCrCrDr$ s rc@seZdZfZeedddZeedddZee edddZ ee ddd Z ee dd d Zeddd d ZdS)TextIO)r:cCsdS)NrC)r[rCrCrDbuffer7 sz TextIO.buffercCsdS)NrC)r[rCrCrDencoding; szTextIO.encodingcCsdS)NrC)r[rCrCrDerrors? sz TextIO.errorscCsdS)NrC)r[rCrCrDline_bufferingC szTextIO.line_bufferingcCsdS)NrC)r[rCrCrDnewlinesG szTextIO.newlinescCsdS)NrC)r[rCrCrDrKK szTextIO.__enter__N)rArdr@rprrrrlrrrrrr rrrKrCrCrCrDr2 src@s"eZdZdddgZeZeZeZdS)iorurrN)rArdr@__all__rurrrCrCrCrDrP s rz.ioPatternrcCs|jS)N)pattern)rrCrCrD^ srMatchcCs|jjS)N)rer)mrCrCrDr` sc@seZdZddgZeZeZdS)rrrN)rArdr@rrrrCrCrCrDrc srz.re)rr)NN)NN)rrU)rr) rUr^rprcrdrer`rfrgrhri)rdrAr@r!)rrrrH contextlibrrZ stdlib_rer>rcollections.abcZcollections_abc ImportErrorr?_collections_abcrrr rnrr^__str__rlrQrrErMrNrHrIrGrFrcrrar|rSrr rZNoReturnrrrrrrrrrBr5rrrrrrrrrrrrrrrr r rrr rmrr r rr r6rrBuiltinFunctionType MethodTyper'r(r7r9r:r.r;r/rrrr6rr7r8r9rrr*r)r(r'r&r+r%r#rrGr1rr!rrr"r r<rrr0rIr-rrr2rrrr$rJrrSrTexecrr.rVr/r,rWr4rX GeneratorTyperYrZrrbrlrmrnrjr3r8r<r=rurrrrAr$rxrmatchrrCrCrCrDs   *%5C  W      !)    "96    R D                  "                   "      "(`