grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B J×Q ã @sždddddddddd d g Zyd d lmZWnek r>YnXd d lmZd dlmZd dlm Z d dl m Z dZ dZ e e fdd„Ze e fdd„Zefdd„Zefdd„Zefdd„Zefdd„Zefdd„Zefdd „Zefd!d"„Zefd#d$„Zefd%d&„Zefd'd(„Zefd)d*„Zefd+d,„Zd-efd.efd/efgd/efd0efd-efgd0efd/efd.efgd.efd-efd0efgd1œZd2d„Zd3d„Zyd d4lmZWnek �r°YnXGd5d„dƒZ yd d6lm Z Wnek �ræYnXGd7d „d e!ƒZ"ed8d9d:d;d„d>e$ƒZ%e!ƒfe&e'he(e)e*fd?d@„Z+dQdCd„Z,dDdE„Z-yd dFlm-Z-Wnek �rnYnXdGdH„Z.dRdJdK„Z/dLdM„Z0dNdO„Z1dPd „Z2dIS)SÚupdate_wrapperÚwrapsÚWRAPPER_ASSIGNMENTSÚWRAPPER_UPDATESÚtotal_orderingÚ cmp_to_keyÚ lru_cacheÚreduceÚpartialÚ partialmethodÚsingledispatché)r)Úget_cache_token)Ú namedtuple)Úrecursive_repr)ÚRLock)Ú __module__Ú__name__Ú __qualname__Ú__doc__Ú__annotations__)Ú__dict__c Csnx<|D]4}yt||ƒ}Wntk r,YqXt|||ƒqWx$|D]}t||ƒ t||iƒ¡qDW||_|S)N)ÚgetattrÚAttributeErrorÚsetattrÚupdateÚ __wrapped__)ÚwrapperÚwrappedÚassignedÚupdatedÚattrÚvalue©r"ú./opt/alt/python37/lib64/python3.7/functools.pyr%s  cCstt|||d�S)N)rrr)r r)rrrr"r"r#rCs cCs$| |¡}||kr|S| o"||kS)N)Ú__lt__)ÚselfÚotherÚNotImplementedÚ op_resultr"r"r#Ú _gt_from_lt[s r)cCs| |¡}|p||kS)N)r$)r%r&r'r(r"r"r#Ú _le_from_ltbs r*cCs| |¡}||kr|S| S)N)r$)r%r&r'r(r"r"r#Ú _ge_from_ltgs r+cCs$| |¡}||kr|S| p"||kS)N)Ú__le__)r%r&r'r(r"r"r#Ú _ge_from_lens r-cCs"| |¡}||kr|S|o ||kS)N)r,)r%r&r'r(r"r"r#Ú _lt_from_leus r.cCs| |¡}||kr|S| S)N)r,)r%r&r'r(r"r"r#Ú _gt_from_le|s r/cCs$| |¡}||kr|S| o"||kS)N)Ú__gt__)r%r&r'r(r"r"r#Ú _lt_from_gtƒs r1cCs| |¡}|p||kS)N)r0)r%r&r'r(r"r"r#Ú _ge_from_gtŠs r2cCs| |¡}||kr|S| S)N)r0)r%r&r'r(r"r"r#Ú _le_from_gt�s r3cCs$| |¡}||kr|S| p"||kS)N)Ú__ge__)r%r&r'r(r"r"r#Ú _le_from_ge–s r5cCs"| |¡}||kr|S|o ||kS)N)r4)r%r&r'r(r"r"r#Ú _gt_from_ge�s r6cCs| |¡}||kr|S| S)N)r4)r%r&r'r(r"r"r#Ú _lt_from_ge¤s r7r0r,r4r$)r$r,r0r4csZ‡fdd„tDƒ}|stdƒ‚t|ƒ}x.t|D]"\}}||kr0||_tˆ||ƒq0WˆS)Ncs(h|] }tˆ|dƒtt|dƒk r|’qS)N)rÚobject)Ú.0Úop)Úclsr"r#ú ½sz!total_ordering..z6must define at least one ordering operation: < > <= >=)Ú_convertÚ ValueErrorÚmaxrr)r;ÚrootsÚrootÚopnameÚopfuncr")r;r#rºscsG‡fdd„dtƒ}|S)NcsZeZdZdgZdd„Z‡fdd„Z‡fdd„Z‡fdd „Z‡fd d „Z‡fd d „Z dZ dS)zcmp_to_key..KÚobjcSs ||_dS)N)rD)r%rDr"r"r#Ú__init__Ðszcmp_to_key..K.__init__csˆ|j|jƒdkS)Nr )rD)r%r&)Úmycmpr"r#r$Òszcmp_to_key..K.__lt__csˆ|j|jƒdkS)Nr )rD)r%r&)rFr"r#r0Ôszcmp_to_key..K.__gt__csˆ|j|jƒdkS)Nr )rD)r%r&)rFr"r#Ú__eq__Öszcmp_to_key..K.__eq__csˆ|j|jƒdkS)Nr )rD)r%r&)rFr"r#r,Øszcmp_to_key..K.__le__csˆ|j|jƒdkS)Nr )rD)r%r&)rFr"r#r4Úszcmp_to_key..K.__ge__N) rrrÚ __slots__rEr$r0rGr,r4Ú__hash__r")rFr"r#ÚKÎs     rJ)r8)rFrJr")rFr#rÌs)rcsFeZdZdZ‡fdd„Zdd„Zeƒdd„ƒZdd „Zd d „Z ‡Z S) r )ÚfuncÚargsÚkeywordsrÚ __weakref__csœ|s tdƒ‚t|ƒdkr tdƒ‚|^}}}t|ƒs:tdƒ‚t|ƒ}t|dƒrv|j|}|j ¡}| |¡|}~|j }t t |ƒ  |¡}||_ ||_||_|S)Nz1descriptor '__new__' of partial needs an argumentéz*type 'partial' takes at least one argumentz#the first argument must be callablerK) Ú TypeErrorÚlenÚcallableÚtupleÚhasattrrLrMÚcopyrrKÚsuperr Ú__new__)rLrMr;rKZtmpkwr%)Ú __class__r"r#rWñs(      zpartial.__new__cOs:|s tdƒ‚|^}}|j ¡}| |¡|j|j|ž|ŽS)Nz2descriptor '__call__' of partial needs an argument)rPrMrUrrKrL)rLrMr%Z newkeywordsr"r"r#Ú__call__ s   zpartial.__call__cCs‚t|ƒj}t|jƒg}| dd„|jDƒ¡| dd„|j ¡Dƒ¡t|ƒjdkrld|›dd  |¡›d�S|›dd  |¡›d�S) Ncss|]}t|ƒVqdS)N)Úrepr)r9Úxr"r"r#ú sz#partial.__repr__..css |]\}}|›d|›�VqdS)ú=Nr")r9ÚkÚvr"r"r#r\sÚ functoolsz functools.ú(z, ú)) ÚtyperrZrKÚextendrLrMÚitemsrÚjoin)r%ÚqualnamerLr"r"r#Ú__repr__s  zpartial.__repr__cCs*t|ƒ|jf|j|j|jpd|jp$dffS)N)rcrKrLrMr)r%r"r"r#Ú __reduce__szpartial.__reduce__cCsÌt|tƒstdƒ‚t|ƒdkr0tdt|ƒ›�ƒ‚|\}}}}t|ƒrrt|tƒrr|dk r`t|tƒrr|dk rzt|tƒsztdƒ‚t|ƒ}|dkr�i}nt|ƒtk r¤t|ƒ}|dkr°i}||_||_||_ ||_ dS)Nz(argument to __setstate__ must be a tupleézexpected 4 items in state, got zinvalid partial state) Ú isinstancerSrPrQrRÚdictrcrrKrLrM)r%ÚstaterKrLÚkwdsÚ namespacer"r"r#Ú __setstate__ s(    zpartial.__setstate__) rrrrHrWrYrrhrirpÚ __classcell__r"r")rXr#r ês   )r c@s8eZdZdd„Zdd„Zdd„Zdd„Zed d „ƒZd S) r cOsÌt|ƒdkr|^}}}n>|s&tdƒ‚n0d|krB| d¡}|^}}ntdt|ƒdƒ‚t|ƒ}t|ƒs~t|dƒs~td |¡ƒ‚t|tƒr¶|j |_ |j ||_ |j   ¡|_ |j   |¡n||_ ||_ ||_ dS)NrOz8descriptor '__init__' of partialmethod needs an argumentrKz8type 'partialmethod' takes at least one argument, got %déÚ__get__z${!r} is not callable or a descriptor)rQrPÚpoprSrRrTÚformatrkr rKrLrMrUr)rLrMr%rKr"r"r#rEFs*        zpartialmethod.__init__cCsNd tt|jƒ¡}d dd„|j ¡Dƒ¡}d}|j|jj|jj |j ||d�S)Nz, css|]\}}d ||¡VqdS)z{}={!r}N)ru)r9r^r_r"r"r#r\isz)partialmethod.__repr__..z*{module}.{cls}({func}, {args}, {keywords}))Úmoduler;rKrLrM) rfÚmaprZrLrMrerurXrrrK)r%rLrMÚ format_stringr"r"r#rhgs  zpartialmethod.__repr__cs‡fdd„}ˆj|_ˆ|_|S)Ncs<ˆj ¡}| |¡|^}}|fˆjt|ƒ}ˆj||ŽS)N)rMrUrrLrSrK)rLrMÚ call_keywordsÚ cls_or_selfÚrestÚ call_args)r%r"r#Ú_methodss   z3partialmethod._make_unbound_method.._method)Ú__isabstractmethod__Ú_partialmethod)r%r}r")r%r#Ú_make_unbound_methodrs z"partialmethod._make_unbound_methodcCs€t|jddƒ}d}|dk rd|||ƒ}||jk rdt|f|jž|jŽ}y |j|_Wntk rbYnX|dkr|| ¡ ||¡}|S)Nrs) rrKr rLrMÚ__self__rr€rs)r%rDr;ÚgetÚresultÚnew_funcr"r"r#rs}s   zpartialmethod.__get__cCst|jddƒS)Nr~F)rrK)r%r"r"r#r~�sz"partialmethod.__isabstractmethod__N) rrrrErhr€rsÚpropertyr~r"r"r"r#r >s !  Ú CacheInfoÚhitsÚmissesÚmaxsizeÚcurrsizec@s$eZdZdZefdd„Zdd„ZdS)Ú _HashedSeqÚ hashvaluecCs||dd…<||ƒ|_dS)N)rŒ)r%ÚtupÚhashr"r"r#rE¤s z_HashedSeq.__init__cCs|jS)N)rŒ)r%r"r"r#rI¨sz_HashedSeq.__hash__N)rrrrHrŽrErIr"r"r"r#r‹›s r‹c s˜|}|r*||7}x| ¡D] } || 7}qW|rl||‡fdd„|Dƒƒ7}|r�||‡fdd„| ¡Dƒƒ7}n$||ƒdkr�ˆ|dƒ|kr�|dSt|ƒS)Nc3s|]}ˆ|ƒVqdS)Nr")r9r_)rcr"r#r\Ãsz_make_key..c3s|]}ˆ|ƒVqdS)Nr")r9r_)rcr"r#r\Åsrrr )reÚvaluesr‹) rLrnÚtypedÚkwd_markÚ fasttypesrSrcrQÚkeyÚitemr")rcr#Ú _make_key«s  r•é€Fcs:tˆtƒrˆdkr(d‰nˆdk r(tdƒ‚‡‡fdd„}|S)Nr z)Expected maxsize to be an integer or Nonecst|ˆˆtƒ}t||ƒS)N)Ú_lru_cache_wrapperÚ _CacheInfor)Ú user_functionr)r‰r�r"r#Údecorating_functionìsz&lru_cache..decorating_function)rkÚintrP)r‰r�ršr")r‰r�r#rÊs csòtƒ‰t‰ d\‰‰‰‰i‰d‰ ‰ d‰ˆj‰ˆj‰tƒ‰ g‰ˆˆddgˆdd…<ˆ dkrh‡ ‡fdd„}nNˆ dkrŒ‡‡‡ ‡ ‡ ‡‡‡fdd„}n*‡‡‡‡‡‡‡‡‡ ‡ ‡ ‡ ‡ ‡‡‡fdd„}‡‡‡ ‡ ‡ ‡ fdd „}‡‡‡ ‡ ‡ ‡fd d „}||_||_|S) N)r rrrOér Fcsˆd7‰ˆ||Ž}|S)Nrrr")rLrnrƒ)rˆr™r"r#rs z#_lru_cache_wrapper..wrappercsHˆ||ˆƒ}ˆ|ˆƒ}|ˆk r*ˆd7‰|Sˆd7‰ˆ||Ž}|ˆ|<|S)Nrrr")rLrnr“rƒ)ÚcacheÚ cache_getr‡Úmake_keyrˆÚsentinelr�r™r"r#r s   c s2ˆ ||ˆƒ}ˆ �nˆ|ƒ}|dk rr|\}}}}||ˆ<||ˆ<ˆ ˆ}||ˆ<ˆ ˆ<||ˆ<ˆ |ˆ<ˆd7‰|Sˆ d7‰ WdQRXˆ||Ž}ˆ �–|ˆkržn†ˆrîˆ } || ˆ<|| ˆ<| ˆ‰ ˆ ˆ} ˆ ˆ} dˆ ˆ<ˆ ˆ<ˆ| =| ˆ|<n6ˆ ˆ}|ˆ ||g}||ˆ<ˆ ˆ<ˆ|<ˆƒˆ k‰WdQRX|S)Nrrr") rLrnr“ÚlinkZ link_prevZ link_nextZ_keyrƒZlastZoldrootZoldkeyZ oldresult)ÚKEYÚNEXTÚPREVÚRESULTr�ržÚ cache_lenÚfullr‡ÚlockrŸr‰rˆrAr�r™r"r#rsB     c s ˆ�ˆˆˆˆˆƒƒSQRXdS)Nr"r")r˜r¦r‡r¨r‰rˆr"r#Ú cache_infoTsz&_lru_cache_wrapper..cache_infoc s<ˆ�.ˆ ¡ˆˆddgˆdd…<d‰‰d‰WdQRXdS)Nr F)Úclearr")r�r§r‡r¨rˆrAr"r#Ú cache_clearYs z'_lru_cache_wrapper..cache_clear)r8r•r‚Ú__len__rr©r«)r™r‰r�r˜rr©r«r")r¢r£r¤r¥r˜r�ržr¦r§r‡r¨rŸr‰rˆrAr r�r™r#r—òs* *9 r—)r—cCsšg}x�dd„|Dƒ}|s|Sx:|D]2}|d}x$|D]}||dd…kr4d}Pq4WPq"W|dkrhtdƒ‚| |¡x|D]}|d|krx|d=qxWqWdS)NcSsg|] }|r|‘qSr"r")r9Úsr"r"r#ú xsz_c3_merge..r rrzInconsistent hierarchy)Ú RuntimeErrorÚappend)Ú sequencesrƒÚs1Ú candidateÚs2Úseqr"r"r#Ú _c3_mergeps$     r¶Nc s$x8tt|jƒƒD]"\}‰tˆdƒrt|jƒ|}PqWd}ˆrFtˆƒng‰t|jd|…ƒ}g}t|j|d…ƒ}x8ˆD]0‰t|ˆƒrxt‡fdd„|jDƒƒsx| ˆ¡qxWx|D]‰ˆ  ˆ¡q²W‡fdd„|Dƒ}‡fdd„|Dƒ}‡fdd„|Dƒ} t |gg||| |g|g|gƒS) NÚ__abstractmethods__r c3s|]}t|ˆƒVqdS)N)Ú issubclass)r9Úb)Úbaser"r#r\¨sz_c3_mro..csg|]}t|ˆd�‘qS))Úabcs)Ú_c3_mro)r9rº)r»r"r#r®¯sz_c3_mro..csg|]}t|ˆd�‘qS))r»)r¼)r9rº)r»r"r#r®°scsg|]}t|ˆd�‘qS))r»)r¼)r9rº)r»r"r#r®±s) Ú enumerateÚreversedÚ __bases__rTrQÚlistr¸Úanyr°Úremover¶) r;r»ÚiÚboundaryÚexplicit_basesÚabstract_basesÚ other_basesÚexplicit_c3_mrosÚabstract_c3_mrosÚ other_c3_mrosr")r»rºr#r¼‹s(    r¼csütˆjƒ‰‡‡fdd„‰‡fdd„ˆDƒ‰‡fdd„‰‡fdd„ˆDƒ‰tˆƒ‰g}xšˆD]’}g}x<| ¡D]0}|ˆkrltˆ|ƒrl| ‡fdd„|jDƒ¡qlW|s°| |¡qZ|jtd d �x,|D]$}x|D]}||krÎ| |¡qÎWqÄWqZWtˆ|d �S) Ncs|ˆkot|dƒotˆ|ƒS)NÚ__mro__)rTr¸)Útyp)Úbasesr;r"r#Ú is_relatedÁsz _compose_mro..is_relatedcsg|]}ˆ|ƒr|‘qSr"r")r9Ún)rÎr"r#r®Äsz _compose_mro..cs(x"ˆD]}||kr||jkrdSqWdS)NTF)rË)rÌr&)Útypesr"r#Úis_strict_baseÇs z$_compose_mro..is_strict_basecsg|]}ˆ|ƒs|‘qSr"r")r9rÏ)rÑr"r#r®Ìscsg|]}|ˆkr|‘qSr"r")r9r­)Útype_setr"r#r®ÕsT)r“Úreverse)r»)ÚsetrËÚ__subclasses__r¸r°ÚsortrQr¼)r;rÐÚmrorÌÚfoundÚsubÚsubclsr")rÍr;rÎrÑrÒrÐr#Ú _compose_mro¸s*      rÛcCsvt|| ¡ƒ}d}xX|D]P}|dk r\||krZ||jkrZ||jkrZt||ƒsZtd ||¡ƒ‚P||kr|}qW| |¡S)NzAmbiguous dispatch: {} or {})rÛÚkeysrËr¸r¯rur‚)r;Úregistryr×ÚmatchÚtr"r"r#Ú _find_implás     ràcs”ddl}ddl}i‰| ¡‰d‰‡‡‡fdd„‰d ‡‡‡‡fdd„ ‰‡‡fdd„}t|dd ƒ‰|ˆt<ˆ|_ˆ|_| ˆ¡|_ˆj |_ t ||ƒ|S) Nr c s|ˆdk r"tƒ}ˆ|kr"ˆ ¡|‰y ˆ|}WnHtk rvy ˆ|}Wntk rht|ˆƒ}YnX|ˆ|<YnX|S)N)r rªÚKeyErrorrà)r;Ú current_tokenÚimpl)Ú cache_tokenÚdispatch_cacherÝr"r#Údispatch s  z singledispatch..dispatchcs”|dkrhtˆtƒr ‡‡fdd„Stˆdiƒ}|s@tdˆ›d�ƒ‚ˆ}ddlm}tt||ƒ ¡ƒƒ\}‰|ˆˆ<ˆdkrˆt ˆdƒrˆt ƒ‰ˆ  ¡|S) Ncs ˆˆ|ƒS)Nr")Úf)r;Úregisterr"r#Ú-óz2singledispatch..register..rz(Invalid first argument to `register()`: zS. Use either `@register(some_class)` or plain `@register` on an annotated function.r )Úget_type_hintsr·) rkrcrrPÚtypingrëÚnextÚiterrerTr rª)r;rKÚannrëÚargname)rärårèrÝ)r;r#rè$s   z singledispatch..registercs&|stˆ›d�ƒ‚ˆ|djƒ||ŽS)Nz( requires at least 1 positional argumentr )rPrX)rLÚkw)ræÚfuncnamer"r#rCszsingledispatch..wrapperrzsingledispatch function)N) rÐÚweakrefÚWeakKeyDictionaryrr8rèræÚMappingProxyTyperÝrªÚ _clear_cacher)rKrÐrórr")räræråròrèrÝr#r ûs    )r–F)N)3Ú__all__Ú _functoolsrÚ ImportErrorÚabcr Ú collectionsrÚreprlibrÚ_threadrrrrrr'r)r*r+r-r.r/r1r2r3r5r6r7r=rrr r8r r˜rÀr‹r›ÚstrrSrcrQr•rr—r¶r¼rÛràr r"r"r"r#Ú sˆ                   N[ (t -)