a DOg@sgdZddlmZddlmZddlmZddlmZddl m Z dZ dZ e e fd d Z e e fd d Zefd dZefddZefddZefddZefddZefddZefddZefddZefddZefdd Zefd!d"Zefd#d$Zd%efd&efd'efgd'efd(efd%efgd(efd'efd&efgd&efd%efd(efgd)Zd*d+Zd,d-Zzdd.lmZWne yYn0e!Z"e"fd/d0Z#zdd1lm#Z#Wne yYn0Gd2d3d3Z$zdd4lm$Z$Wne yYn0Gd5d6d6e!Z%d7d8Z&ed9gd:Z'Gd;d<dZ/dWdAdBZ0dCdDZ1zddElm1Z1Wne yxYn0dFdGZ2dHdIZ3dXdKdLZ4dMdNZ5dOdPZ6dQdRZ7GdSdTdTZ8e!Z9GdUdVdVZ:dJS)Y)update_wrapperwrapsWRAPPER_ASSIGNMENTSWRAPPER_UPDATEStotal_orderingcache cmp_to_key lru_cachereducepartial partialmethodsingledispatchsingledispatchmethodcached_property)get_cache_token) namedtuple)recursive_repr)RLock) GenericAlias) __module____name__ __qualname____doc____annotations__)__dict__c Csd|D]2}zt||}Wnty(Yq0t|||q|D]}t||t||iq<||_|SN)getattrAttributeErrorsetattrupdate __wrapped__)wrapperwrappedassignedupdatedattrvaluer'./opt/alt/python39/lib64/python3.9/functools.pyr#s rcCstt|||dS)Nr"r#r$)r rr)r'r'r(rAs rcCs*t|||}||ur|S| o(||kSrtype__lt__selfotherNotImplemented op_resultr'r'r( _gt_from_ltYsr2cCs(t|||}||ur|S|p&||kSrr*r-r'r'r( _le_from_lt`sr3cCs"t|||}||ur|S| Srr*r-r'r'r( _ge_from_ltgsr4cCs*t|||}||ur|S| p(||kSrr+__le__r-r'r'r( _ge_from_lensr7cCs(t|||}||ur|S|o&||kSrr5r-r'r'r( _lt_from_leusr8cCs"t|||}||ur|S| Srr5r-r'r'r( _gt_from_le|sr9cCs*t|||}||ur|S| o(||kSrr+__gt__r-r'r'r( _lt_from_gtsr<cCs(t|||}||ur|S|p&||kSrr:r-r'r'r( _ge_from_gtsr=cCs"t|||}||ur|S| Srr:r-r'r'r( _le_from_gtsr>cCs*t|||}||ur|S| p(||kSrr+__ge__r-r'r'r( _le_from_gesrAcCs(t|||}||ur|S|o&||kSrr?r-r'r'r( _gt_from_gesrBcCs"t|||}||ur|S| Srr?r-r'r'r( _lt_from_gesrCr;r6r@r,)r,r6r;r@csVfddtD}|stdt|}t|D]"\}}||vr.||_t||q.S)Ncs(h|] }t|dtt|dur|qSr)robject).0opclsr'r( z!total_ordering..z6must define at least one ordering operation: < > <= >=)_convert ValueErrormaxrr)rHrootsrootopnameopfuncr'rGr(rsrcsGfdddt}|S)NcsZeZdZdgZddZfddZfddZfdd Zfd d Zfd d Z dZ dS)zcmp_to_key..KobjcSs ||_dSrrR)r.rRr'r'r(__init__szcmp_to_key..K.__init__cs|j|jdkSNrrSr.r/mycmpr'r(r,szcmp_to_key..K.__lt__cs|j|jdkSrUrSrVrWr'r(r;szcmp_to_key..K.__gt__cs|j|jdkSrUrSrVrWr'r(__eq__szcmp_to_key..K.__eq__cs|j|jdkSrUrSrVrWr'r(r6szcmp_to_key..K.__le__cs|j|jdkSrUrSrVrWr'r(r@szcmp_to_key..K.__ge__N) rrr __slots__rTr,r;rYr6r@__hash__r'rWr'r(Ks     r\)rD)rXr\r'rWr(rsr)rcCsXt|}|tur2rJz#partial.__repr__..css |]\}}|d|VqdS)=Nr'rEkvr'r'r(rr3rJ functoolsz functools.(, )) r+rrprdextendrerfitemsrjoin)r.qualnamerer'r'r(__repr__.s  zpartial.__repr__cCs*t||jf|j|j|jpd|jp$dffSr)r+rdrerfrr.r'r'r( __reduce__8szpartial.__reduce__cCst|tstdt|dkr0tdt||\}}}}t|rrt|trr|dur`t|trr|durzt|tsztdt|}|duri}nt|turt|}|duri}||_||_||_ ||_ dS)Nz(argument to __setstate__ must be a tuplezexpected 4 items in state, got zinvalid partial state) isinstancetupleralenrhdictr+rrdrerf)r.staterdrekwds namespacer'r'r( __setstate__<s4    zpartial.__setstate__) rrrrZrkrorrrr __classcell__r'r'rlr(r s  r )r c@sBeZdZddZddZddZd dd Zed d Ze e Z dS) r cOsft|s t|ds td|t|trP|j|_|j||_i|j||_n||_||_||_dS)N__get__z${!r} is not callable or a descriptor) rhriraformatrr rdrerf)r.rdrerfr'r'r(rTbs  zpartialmethod.__init__cCsNdtt|j}ddd|jD}d}|j|jj|jj |j ||dS)Nrycss|]\}}d||VqdS)z{}={!r}N)rrtr'r'r(rrwsz)partialmethod.__repr__..z*{module}.{cls}({func}, {args}, {keywords}))modulerHrdrerf) r}maprprerfr|rrmrrrd)r.rerf format_stringr'r'r(rus  zpartialmethod.__repr__csfdd}j|_|_|S)Ncs,ij|}j|gj|Ri|Srrn) cls_or_selfrerfrr'r(_methodsz3partialmethod._make_unbound_method.._method)__isabstractmethod___partialmethod)r.rr'rr(_make_unbound_methods z"partialmethod._make_unbound_methodNcCst|jdd}d}|durh|||}||jurht|g|jRi|j}z |j|_WntyfYn0|dur|||}|S)Nr) rrdr rerf__self__rrr)r.rRrHgetresultnew_funcr'r'r(rs    zpartialmethod.__get__cCst|jddSNrFrrdrr'r'r(rsz"partialmethod.__isabstractmethod__)N) rrrrTrrrpropertyr classmethodr__class_getitem__r'r'r'r(r Zs   r cCst|tr|j}q|Sr)rr rdrdr'r'r(_unwrap_partials r CacheInfo)hitsmissesmaxsizecurrsizec@s$eZdZdZefddZddZdS) _HashedSeq hashvaluecCs||dd<|||_dSrr)r.tuphashr'r'r(rTs z_HashedSeq.__init__cCs|jSrrrr'r'r(r[sz_HashedSeq.__hash__N)rrrrZrrTr[r'r'r'r(rs rc s|}|r&||7}|D] } || 7}q|rh||fdd|D7}|r||fdd|D7}n$||dkr|d|vr|dSt|S)Nc3s|]}|VqdSrr'rErvr+r'r(rrrJz_make_key..c3s|]}|VqdSrr'rrr'r(rrrJr)r|valuesr) rertypedkwd_mark fasttypesrr+rkeyitemr'rr( _make_keys   rFcs~ttrdkrldnTtr\ttr\d}t|t}fdd|_t||Sdurltdfdd}|S)Nrrcs dSNrrr'r'rr'r(rJzlru_cache..z=Expected first argument to be an integer, a callable, or Nonecs(t|t}fdd|_t||S)Ncs dSrr'r'rr'r(rrJz8lru_cache..decorating_function..)_lru_cache_wrapper _CacheInfocache_parametersr) user_functionr!rr'r(decorating_functionsz&lru_cache..decorating_function) rintrhboolrrrrra)rrrr!rr'rr(rs   rcstt d\id djjt gddgdd< dkrh fdd}nN dur fdd}n* fdd} fdd } fd d }||_||_|S) N)rrrFcsd7|i|}|SNrr')rerr)rrr'r(r!sz#_lru_cache_wrapper..wrappercsL||}|}|ur*d7|Sd7|i|}||<|Srr')rerrr)r cache_getrmake_keyrsentinelrrr'r(r!&s  c sp ||} |}|dur|\}}}}||<||< }||< <||< |<d7|WdS d7 Wdn1s0Y|i|} |vrnr } || <|| <|  } } d < <| =| |<n6 }| ||g}||< <|< kWdn1sb0Y|Srr') rerrlinkZ link_prevZ link_nextZ_keyrZlastZoldrootZoldkeyZ oldresult)KEYNEXTPREVRESULTrr cache_lenfullrlockrrrrOrrr'r(r!5sB  &  *cs8 WdS1s*0YdSrr'r')rrrrrrr'r( cache_infonsz&_lru_cache_wrapper..cache_infocsP8ddgdd<ddWdn1sB0YdS)NrF)clearr')rrrrrrOr'r( cache_clearss z'_lru_cache_wrapper..cache_clear)rDrr__len__rrr)rrrrr!rrr')rrrrrrrrrrrrrrrOrrrr(r s* *9 r)rcCstdd|S)N)r)r)rr'r'r(rsrcCsg}dd|D}|s|S|D]2}|d}|D]}||ddvr.d}qq.qRq|durbtd|||D]}|d|krp|d=qpqdS)NcSsg|] }|r|qSr'r'rEsr'r'r( rJz_c3_merge..rrzInconsistent hierarchy) RuntimeErrorappend) sequencesrs1 candidates2seqr'r'r( _c3_merges"  rNc stt|jD]$\}tdrt|j|}q8qd}rDtngt|jd|}g}t|j|d}D]0t|rttfdd|jDst|qt|D] qfdd|D}fdd|D}fdd|D} t |gg||| |g|g|gS) N__abstractmethods__rc3s|]}t|VqdSr) issubclass)rEb)baser'r(rrsz_c3_mro..csg|]}t|dqSabcs_c3_mrorErrr'r(rrJz_c3_mro..csg|]}t|dqSrrrrr'r(rrJcsg|]}t|dqSrrrrr'r(rrJ) enumeratereversed __bases__rirlistranyrremover) rHriboundaryexplicit_basesabstract_bases other_basesexplicit_c3_mrosabstract_c3_mros other_c3_mrosr')rrr(rsD   rcstjfddfddDfddfddDtg}D]}g}|D]0}|vrht|rh|fdd|jDqh|s||qX|jtd d |D] }|D]}||vr||qqqXt|d S) Ncs(|vo&t|do&t|t o&t|S)N__mro__)rirrr)typ)basesrHr'r( is_relateds  z _compose_mro..is_relatedcsg|]}|r|qSr'r'rEn)rr'r(rrJz _compose_mro..cs&D]}||kr||jvrdSqdS)NTF)r)rr/)typesr'r(is_strict_basesz$_compose_mro..is_strict_basecsg|]}|s|qSr'r'r)rr'r(rrJcsg|]}|vr|qSr'r'r)type_setr'r(rrJT)rreverser)setr__subclasses__rrsortrr)rHrmrorfoundsubsubclsr')rrHrrrrr( _compose_mros*    rcCstt||}d}|D]R}|dur\||vrX||jvrX||jvrXt||sXtd||qj||vr|}q||S)NzAmbiguous dispatch: {} or {})rkeysrrrrr)rHregistryrmatchtr'r'r( _find_impls r csddl}ddl}i|dfddddd fdd fdd }t|d d |t<|_|_||_j |_ t |||S) Nrc sxdur"t}|kr"|z |}WnDtyrz |}Wntydt|}Yn0||<Yn0|Sr)rrKeyErrorr )rH current_tokenimpl) cache_tokendispatch_cacherr'r(dispatch1s    z singledispatch..dispatchcSst|tot|t Sr)rr+rrGr'r'r(_is_valid_dispatch_typeHsz/singledispatch.._is_valid_dispatch_typecsr |durfddSn~|dur8tddtdi}|sXtdd}dd lm}tt||\}std |d d|<durtd rt |S) Ncs |Srr')f)rHregisterr'r(rTrJz2singledispatch..register..z(Invalid first argument to `register()`. z is not a class.rz(Invalid first argument to `register()`: zS. Use either `@register(some_class)` or plain `@register` on an annotated function.r)get_type_hintszInvalid annotation for z. r) rartypingrr_r]r|rirr)rHrdannrargname)rrrrrrGr(rKs8   z singledispatch..registercs*|std|dj|i|S)Nz( requires at least 1 positional argumentr)rarm)rekw)rfuncnamer'r(r!sszsingledispatch..wrapperrzsingledispatch function)N) rweakrefWeakKeyDictionaryrrDrrMappingProxyTyperr _clear_cacher)rdrrr!r')rrrrrrrr(r s (   r c@s4eZdZddZd ddZd ddZedd ZdS) r cCsRt|s t|ds t|dt||_||_t|ttfrH|j |_ n||_ dS)Nrz is not callable or a descriptor) rhrirar dispatcherrdr staticmethodr__func__ _wrapped_funcr.rdr'r'r(rTs  zsingledispatchmethod.__init__NcCs.t|ttfrt|jdi|_|jj||dS)Nrr)rr rrr!rrr)r.rHmethodr'r'r(rs zsingledispatchmethod.registercs0fdd}j|_j|_t|j|S)Ncs(j|dj}||i|SrU)rrrmr)rekwargsr$rHrRr.r'r(rsz-singledispatchmethod.__get__.._method)rrrr")r.rRrHrr'r&r(rs  zsingledispatchmethod.__get__cCst|jddSrrrr'r'r(rsz)singledispatchmethod.__isabstractmethod__)N)N)rrrrTrrrrr'r'r'r(r s  r c@s.eZdZddZddZdddZeeZdS) rcCs ||_d|_|j|_t|_dSr)rdattrnamerrrr#r'r'r(rTszcached_property.__init__cCs8|jdur||_n"||jkr4td|jd|ddS)Nz?Cannot assign the same cached_property to two different names (z and z).)r'ra)r.ownernamer'r'r( __set_name__s  zcached_property.__set_name__Nc Cs|dur |S|jdurtdz |j}Wn6ty^dt|jd|jd}t|dYn0||jt}|tur|jv||jt}|tur| |}z|||j<Wn6tydt|jd|jd}t|dYn0Wdn1s0Y|S)NzGCannot use cached_property instance without calling __set_name__ on it.zNo '__dict__' attribute on z instance to cache z property.zThe '__dict__' attribute on z7 instance does not support item assignment for caching ) r'rarrr+rr _NOT_FOUNDrrd)r.instancer(rmsgvalr'r'r(rs:      .zcached_property.__get__)N) rrrrTr*rrrrr'r'r'r(rs r)rF)N);__all__abcr collectionsrreprlibr_threadrrrrrrrr0r2r3r4r7r8r9r<r=r>rArBrCrKrr _functools ImportErrorrDr^r r r rrrrrstrrr+rrrrrrrrr r r r+rr'r'r'r( s                    AJ   .t  -*f5