o 0¦iFÜã @sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddlm Z m Z gd¢Z Gdd„de ƒZGdd„dƒZeƒZGdd „d ƒZeƒZGd d „d ƒZeƒZe i¡ZGd d „d ƒZedƒZedƒZedƒZdZdZdZe d¡Zdd„Z Gdd„dƒZ!Gdd„dƒZ"Gdd„dƒZ#eedddddedœdd „Z$d!d"„Z%d#d$„Z&dded%œd&d'„Z'd(d)„Z(d*d+„Z)d,d-„Z*d.d/„Z+d0d1„Z,d2d3„Z-d4d5„Z.d6d7„Z/d8d9„Z0d:d;„Z1dd?„Z3d@dA„Z4dBdC„Z5dDdE„Z6dFdG„Z7dHdI„Z8dJdK„Z9idLd“dMd“dNd“dOd“dPe7“dQd“dRe8“dSd“dTe8“dUe9“dVe8“dWe9“dXe8“dYe9“dZe8“d[e9“Z:d\d]„Z;d^d_„Zd~dddddddddddddddeœ dfdg„Z?dhdi„Z@djdk„ZAdldm„ZBeCdnœdodp„ZDdqdr„ZEeFdsœdtdu„ZGdvdw„ZHdxddddddddddddddddyœ dzd{„ZId|d}„ZJdS)éN)Ú FunctionTypeÚ GenericAlias) Ú dataclassÚfieldÚFieldÚFrozenInstanceErrorÚInitVarÚKW_ONLYÚMISSINGÚfieldsÚasdictÚastupleÚmake_dataclassÚreplaceÚ is_dataclassc@ó eZdZdS)rN©Ú__name__Ú __module__Ú __qualname__©rrú2/opt/alt/python310/lib64/python3.10/dataclasses.pyr¬s rc@seZdZdd„ZdS)Ú_HAS_DEFAULT_FACTORY_CLASScCsdS)Nz r©ÚselfrrrÚ__repr__²óz#_HAS_DEFAULT_FACTORY_CLASS.__repr__N)rrrrrrrrr±s rc@r)Ú _MISSING_TYPENrrrrrr¸órc@r)Ú _KW_ONLY_TYPENrrrrrr¾rrc@seZdZdd„Zdd„ZdS)Ú _FIELD_BASEcCó ||_dS©N©Úname©rr$rrrÚ__init__Èó z_FIELD_BASE.__init__cCs|jSr"r#rrrrrÊsz_FIELD_BASE.__repr__N)rrrr&rrrrrr Çs r Ú_FIELDÚ_FIELD_CLASSVARÚ_FIELD_INITVARZ__dataclass_fields__Z__dataclass_params__Z __post_init__z^(?:\s*(\w+)\s*\.)?\s*(\w+)cs"tƒ‰t ˆ¡‡‡fdd„ƒ}|S)Nc sLt|ƒt ¡f}|ˆvrdSˆ |¡z ˆ|ƒ}Wˆ |¡|Sˆ |¡w)Nz...)ÚidÚ_threadÚ get_identÚaddÚdiscard)rÚkeyÚresult©Ú repr_runningÚ user_functionrrÚwrapperès    ÿz _recursive_repr..wrapper)ÚsetÚ functoolsÚwraps)r4r5rr2rÚ_recursive_reprãs r9c@s(eZdZdZdd„Zdd„Zdd„ZdS) r©ÚtypecCr!r"r:)rr;rrrr&ør'zInitVar.__init__cCs8t|jtƒrt|jtƒs|jj}nt|jƒ}d|›d�S)Nzdataclasses.InitVar[ú])Ú isinstancer;rrÚrepr)rZ type_namerrrrûs   zInitVar.__repr__cCst|ƒSr")r)Úclsr;rrrÚ__class_getitem__szInitVar.__class_getitem__N)rrrÚ __slots__r&rr@rrrrrõs  rc@s4eZdZdZdd„Zedd„ƒZdd„Zee ƒZ dS) r) r$r;ÚdefaultÚdefault_factoryr>ÚhashÚinitÚcompareÚmetadataÚkw_onlyÚ _field_typec CsXd|_d|_||_||_||_||_||_||_|durtnt   |¡|_ ||_ d|_ dSr")r$r;rBrCrEr>rDrFÚ_EMPTY_METADATAÚtypesÚMappingProxyTyperGrHrI) rrBrCrEr>rDrFrGrHrrrr&sÿþ zField.__init__cCs^d|j›d|j›d|j›d|j›d|j›d|j›d|j›d|j›d |j›d |j ›d |j ›d �S) Nz Field(name=z,type=z ,default=z,default_factory=z,init=ú,repr=z,hash=z ,compare=z ,metadata=z ,kw_only=z ,_field_type=ú)) r$r;rBrCrEr>rDrFrGrHrIrrrrr.s.ÿþýüûúùø ÷ ö õzField.__repr__cCs,tt|jƒddƒ}|r||j||ƒdSdS)NÚ __set_name__)Úgetattrr;rB)rÚownerr$ÚfuncrrrrOFsýzField.__set_name__N) rrrrAr&r9rrOÚ classmethodrr@rrrrrs   rc@s eZdZdZdd„Zdd„ZdS)Ú_DataclassParams©rEr>ÚeqÚorderÚ unsafe_hashÚfrozencCs(||_||_||_||_||_||_dSr"rU)rrEr>rVrWrXrYrrrr&Ys  z_DataclassParams.__init__c Cs6d|j›d|j›d|j›d|j›d|j›d|j›d� S)Nz_DataclassParams(init=rMz,eq=z,order=z ,unsafe_hash=z,frozen=rNrUrrrrrasÿþýüûúz_DataclassParams.__repr__N)rrrrAr&rrrrrrTPs rTT©rBrCrEr>rDrFrGrHc Cs0 |tur |tur tdƒ‚t||||||||ƒS)Nz/cannot specify both default and default_factory)r Ú ValueErrorrrZrrrros ÿrcCs$tdd„|Dƒƒtdd„|DƒƒfS)Ncss �|] }|jr|js|VqdSr"©rErH©Ú.0ÚfrrrÚ ‹ó€z(_fields_in_init_order..css �|] }|jr|jr|VqdSr"r\r]rrrr`Œra)Útuple©r rrrÚ_fields_in_init_order‡sÿrdcs(|sdSdd ‡fdd„|Dƒ¡›d�S)Nú()ú(ú,csg|] }ˆ›d|j›�‘qS)Ú.r#r]©Úobj_namerrÚ ™óz_tuple_str..ú,))Újoin)rjr rrirÚ _tuple_str�s ro)ÚglobalsÚlocalsÚ return_typec Cs¤|duri}d}|tur||d<d}d |¡}d dd„|Dƒ¡}d|›d |›d |›d |›�}d  | ¡¡}d |›d|›d|›�}i} t||| ƒ| ddi|¤ŽS)NÚZ _return_typez->_return_typergÚ css�|]}d|›�VqdS)z Nr)r^Úbrrrr`¨ó€z_create_fn..z def rfrNz: ú, zdef __create_fn__(z): z return Z __create_fn__r)r rnÚkeysÚexec) r$ÚargsÚbodyrprqrrZreturn_annotationZtxtZ local_varsÚnsrrrÚ _create_fnœs  r}cCs0|rd|›d|›d|›d�S|›d|›d|›�S)Nz*__dataclass_builtins_object__.__setattr__(rgrNrhú=r)rYr$ÚvalueÚ self_namerrrÚ _field_assign´sr�cCsÊd|j›�}|jtur+|jr |j||<|›d|j›d|j›�}n6|j||<|›d�}n+|jrE|jtur7|j}n|jturD|j||<|j}n|rT|jturT|j||<|}ndS|jtur]dSt||j||ƒS)NZ_dflt_z() if z is _HAS_DEFAULT_FACTORY else re)r$rCr rErBrIr*r�)r_rYrpr€ÚslotsZ default_namerrrrÚ _field_initÀs2   ÿþ     €  rƒcCsV|jtur |jtur d}n|jturd|j›�}n|jtur d}|j›d|j›|›�S)Nrsz=_dflt_z=_HAS_DEFAULT_FACTORYz:_type_)rBr rCr$)r_rBrrrÚ _init_paramüs  r„cCsd}|D]} | jr!| jtur| jtusd}q|r!td| j›d�ƒ‚qdd„|Dƒ} |  tttdœ¡g} |D]} t | || ||ƒ} | rG|   | ¡q6|rbd  d d „|Dƒ¡} |   |›d t ›d | ›d �¡| sgdg} dd„|Dƒ}|r~|dg7}|dd„|Dƒ7}t d|g|| | |dd�S)NFTznon-default argument z follows default argumentcSsi|] }d|j›�|j“qS)Z_type_)r$r;r]rrrÚ #rlz_init_fn..)r Ú_HAS_DEFAULT_FACTORYZ__dataclass_builtins_object__rgcss �|] }|jtur|jVqdSr")rIr*r$r]rrrr`4s € ÿÿz_init_fn..rhrfrNÚpasscSóg|]}t|ƒ‘qSr©r„r]rrrrk<óz_init_fn..Ú*cSrˆrr‰r]rrrrkBrŠr&)rqrprr)rErBr rCÚ TypeErrorr$Úupdater†ÚobjectrƒÚappendrnÚ_POST_INIT_NAMEr})r Z std_fieldsZkw_only_fieldsrYÚ has_post_initr€rpr‚Z seen_defaultr_rqZ body_linesÚlineZ params_strZ _init_paramsrrrÚ_init_fnsH €ý € ûr“cCs2tdddd dd„|Dƒ¡dg|d�}t|ƒS) Nrrz(return self.__class__.__qualname__ + f"(rwcSs g|] }|j›d|j›d�‘qS)z={self.z!r}r#r]rrrrkOsÿz_repr_fn..z)"©rp)r}rnr9)r rpÚfnrrrÚ_repr_fnKs ÿÿýúr–cCsp|tdœ}|rdd dd„|Dƒ¡d}nd}tdd d |›d �d d f||d�tddd |›d �ddf||d�fS)N)r?rrfrgcss�|]}t|jƒVqdSr")r>r$r]rrrr`Zrvz'_frozen_get_del_attr..rmreÚ __setattr__)rr$rz if type(self) is cls or name in ú:z> raise FrozenInstanceError(f"cannot assign to field {name!r}")z)super(cls, self).__setattr__(name, value))rqrpÚ __delattr__r%z; raise FrozenInstanceError(f"cannot delete field {name!r}")z"super(cls, self).__delattr__(name))rrnr})r?r rprqZ fields_strrrrÚ_frozen_get_del_attrVs2ÿ þú þúùršcCs$t|ddd|›|›|›�dg|d�S)N)rÚotherz%if other.__class__ is self.__class__:z return zreturn NotImplementedr”)r})r$ÚopÚ self_tupleÚ other_tuplerprrrÚ_cmp_fnosþûrŸcCs$td|ƒ}tddd|›d�g|d�S)NrÚ__hash__rz return hash(rNr”)ror})r rpr�rrrÚ_hash_fn}s  ýr¡cCs$||jupt|ƒ|juo|j|juSr")ÚClassVarr;Z _GenericAliasÚ __origin__)Úa_typeÚtypingrrrÚ _is_classvar…s  þr¦cCs||jup t|ƒ|juSr")rr;©r¤Ú dataclassesrrrÚ _is_initvar�s  ÿr©cCs ||juSr")r r§rrrÚ _is_kw_only“r'rªc Cs†t |¡}|rAd}| d¡}|stj |j¡j}ntj |j¡}|r2|j |¡|ur2tj |j¡j}|rA|| | d¡¡|ƒrAdSdS)NééTF)Ú_MODULE_IDENTIFIER_REÚmatchÚgroupÚsysÚmodulesÚgetrÚ__dict__) Ú annotationr?Za_moduler¤Zis_type_predicater®r|Z module_nameÚmodulerrrÚ_is_type—s ) r¶cCspt||tƒ}t|tƒr|}n t|tjƒrt}t|d�}||_||_t |_ t j   d¡}|rDt||ƒsAt|jtƒrDt|j|||jtƒrDt|_ |j t urft j t}t||ƒsct|jtƒrft|j|||jtƒrft|_ |j ttfvr{|jtur{td|j›d�ƒ‚|j t tfvr‹|jturŠ||_n|jtur™td|j›d�ƒ‚|j t ur¶t|jtttfƒr¶tdt|jƒ›d|j›d�ƒ‚|S) N)rBr¥úfield z cannot have a default factoryz$ is a ClassVar but specifies kw_onlyzmutable default z for field z$ is not allowed: use default_factory)rPr r=rrKÚMemberDescriptorTyperr$r;r(rIr°r±r²r¦Ústrr¶r¢r)rr©rr*rCrŒrHrBÚlistÚdictr6r[)r?Za_namer¤Zdefault_kw_onlyrBr_r¥r¨rrrÚ _get_fieldÒsV       ÿÿþ    ÿÿþ  €  ÿr¼cCs"t|tƒr|j›d|j›�|_|S)Nrh)r=rrr)r?rrrrÚ _set_qualname1s r½cCs(||jvrdSt||ƒt|||ƒdS)NTF)r³r½Úsetattr)r?r$rrrrÚ_set_new_attribute8s   r¿cCsdSr"r©r?r rprrrÚ_hash_set_noneGrrÁcCsdd„|Dƒ}t|t||ƒƒS)NcSs(g|]}|jdur |jrn|jr|‘qSr")rDrFr]rrrrkKs(z_hash_add..)r½r¡)r?r rpÚfldsrrrÚ _hash_addJsrÃcCstd|j›�ƒ‚)Nz-Cannot overwrite attribute __hash__ in class )rŒrrÀrrrÚ_hash_exceptionNsÿrÄ)FFFF)FFFT)FFTF)FFTT)FTFF)FTFT)FTTF)FTTT)TFFF)TFFT)TFTF)TFTT)TTFF)TTFT)TTTF)TTTTc % Cs0i} |jtjvrtj|jj} ni} t|tt||||||ƒƒd} d} |jddd…D]"}t|t dƒ}|durMd} |  ¡D]}|| |j <q=t|tƒj rMd} q+|j  di¡}g}d}tjt}| ¡D]/\}}t||ƒsyt|tƒr‡t||||jtƒr‡|r‚t|›d�ƒ‚d}d}qb| t||||ƒ¡qb|D]%}|| |j <tt||j dƒtƒr¹|jtur±t||j ƒq”t||j |jƒq”|j ¡D]\}}t|tƒrÓ||vrÓt|›d�ƒ‚q¿| ræ| rÞ|sÞtdƒ‚| sæ|rætd ƒ‚t|t | ƒ|j  d t¡}|tupÿ|duoÿd |jv }|�r |�s td ƒ‚d d„|   ¡Dƒ}t|ƒ\}}|�r8t|tƒ}t |dt!|||||d| v�r2dnd| | ƒƒdd„|   ¡Dƒ}|�rTdd„|Dƒ}t |dt"|| ƒƒ|�rudd„|Dƒ}t#d|ƒ} t#d|ƒ}!t |d t$d d| |!| d�ƒ|�r«dd„|Dƒ}t#d|ƒ} t#d|ƒ}!dD]\}}"t ||t$||"| |!| d�ƒ�r©td|›d|j›d�ƒ‚�q‹|�rÌt%||| ƒD]}#t ||#j|#ƒ�rÊtd|#j›d|j›�ƒ‚�q´t&t'|ƒt'|ƒt'|ƒ|f}$|$�rä|$||| ƒ|_(t|dƒ�sù|jtt) *|¡ƒ +dd ¡|_,|�r t |d!t-d"d#„|Dƒƒƒ| �rt.||ƒ}t/ 0|¡|S)$NFéÿÿÿÿrTÚ__annotations__z3 is KW_ONLY, but KW_ONLY has already been specifiedz& is a field but has no type annotationz5cannot inherit non-frozen dataclass from a frozen onez5cannot inherit frozen dataclass from a non-frozen oner Ú__eq__z eq must be true if order is truecSsg|] }|jttfvr|‘qSr)rIr(r*r]rrrrkösÿz"_process_class..r&rZ__dataclass_self__cSsg|] }|jtur|‘qSr©rIr(r]rrrrkscSóg|]}|jr|‘qSr)r>r]rrrrkórcSrÉr©rFr]rrrrkrÊr›z==r”cSrÉrrËr]rrrrk#rÊ))Ú__lt__ú<)Ú__le__z<=)Ú__gt__ú>)Ú__ge__z>=zCannot overwrite attribute z in class z). Consider using functools.total_orderingÚ__doc__z -> NonersÚ__match_args__csó�|]}|jVqdSr"r#r]rrrr`Jó€z!_process_class..)1rr°r±r³r¾Ú_PARAMSrTÚ__mro__rPÚ_FIELDSÚvaluesr$rYr²rÚitemsrªr=r¹r¶r rŒr�r¼rrBr Údelattrr[rdÚhasattrr�r¿r“r–rorŸršÚ _hash_actionÚboolr ÚinspectZ signaturerrÒrbÚ _add_slotsÚabcÚupdate_abstractmethods)%r?rEr>rVrWrXrYÚ match_argsrHr‚r rpZany_frozen_baseZhas_dataclass_basesruZ base_fieldsr_Zcls_annotationsZ cls_fieldsZ KW_ONLY_seenr¨r$r;rZ class_hashZhas_explicit_hashZall_init_fieldsZstd_init_fieldsZkw_only_init_fieldsr‘Z field_listrÂr�ržrœr•Z hash_actionrrrÚ_process_classqs ÿ    €  ÿ ÿþ  €€ ÿ ÿ õÿ  þÿ    ÿÿ  ÿý ÿÿý ÿÿ  räcs‡fdd„tˆƒDƒS)Ncsg|]}tˆ|jƒ‘qSr)rPr$r]rrrrkYsz'_dataclass_getstate..rcrrrrÚ_dataclass_getstateXsråcCs,tt|ƒ|ƒD] \}}t ||j|¡qdSr")Úzipr rŽr—r$)rÚstaterrrrrÚ_dataclass_setstate\sþrècCs¦d|jvr t|j›d�ƒ‚t|jƒ}tdd„t|ƒDƒƒ}||d<|D]}| |d¡q#| dd¡t|ddƒ}t|ƒ|j|j |ƒ}|durI||_ |rQt |_ t |_|S)NrAz already specifies __slots__csrÔr"r#r]rrrr`lrÕz_add_slots..r³r)r³rŒrr»rbr ÚpoprPr;Ú __bases__rråÚ __getstate__rèÚ __setstate__)r?Ú is_frozenZcls_dictÚ field_namesZ field_nameÚqualnamerrrràbs    ràF© rEr>rVrWrXrYrãrHr‚c s2 ‡‡‡‡‡‡‡‡‡f dd„} |dur| S| |ƒS)Nc st|ˆˆˆˆˆˆˆˆˆƒ Sr")rä)r?© rVrYrErHrãrWr>r‚rXrrÚwrap–sÿzdataclass..wrapr) r?rEr>rVrWrXrYrãrHr‚ròrrñrr„s rcCs@ zt|tƒ}Wn tytdƒd‚wtdd„| ¡DƒƒS)Nz0must be called with a dataclass type or instancecss�|] }|jtur|VqdSr"rÈr]rrrr`²s€zfields..)rPrØÚAttributeErrorrŒrbrÙ)Zclass_or_instancer rrrr £s  ÿr cCs tt|ƒtƒSr")rÜr;rØ)ÚobjrrrÚ_is_dataclass_instanceµsrõcCs, t|tƒr t|tƒs |nt|ƒ}t|tƒSr")r=r;rrÜrØ)rôr?rrrrºs  r©Ú dict_factorycCó t|ƒs tdƒ‚t||ƒS)Nz0asdict() should be called on dataclass instances)rõrŒÚ _asdict_inner)rôr÷rrrr Áó r csÌt|ƒr"g}t|ƒD]}tt||jƒˆƒ}| |j|f¡q ˆ|ƒSt|tƒr9t|dƒr9t |ƒ‡fdd„|DƒŽSt|t tfƒrMt |ƒ‡fdd„|DƒƒSt|t ƒrat |ƒ‡fdd„|  ¡DƒƒSt  |¡S)NÚ_fieldscóg|]}t|ˆƒ‘qSr©rù©r^ÚvrörrrkôrÊz!_asdict_inner..c3ó�|]}t|ˆƒVqdSr"rýrþrörrr`ùrvz _asdict_inner..c3ó(�|]\}}t|ˆƒt|ˆƒfVqdSr"rý©r^Úkrÿrörrr`ûs €þ ÿ)rõr rùrPr$r�r=rbrÜr;rºr»rÚÚcopyÚdeepcopy)rôr÷r1r_rrrörrùÙs  þ rù©Ú tuple_factorycCrø)Nz1astuple() should be called on dataclass instances)rõrŒÚ_astuple_inner)rôrrrrr rúr csÆt|ƒrg}t|ƒD]}tt||jƒˆƒ}| |¡q ˆ|ƒSt|tƒr6t|dƒr6t |ƒ‡fdd„|DƒŽSt|t tfƒrJt |ƒ‡fdd„|DƒƒSt|t ƒr^t |ƒ‡fdd„|  ¡DƒƒSt  |¡S)Nrûcrür©rrþrrrrk(rÊz"_astuple_inner..c3rr"r rþrrrr`-rvz!_astuple_inner..c3rr"r rrrrr`/s€ÿ)rõr rrPr$r�r=rbrÜr;rºr»rÚrr)rôrr1r_rrrrrs   ÿ rr) ÚbasesÚ namespacerEr>rVrWrXrYrãrHr‚c  s ˆduri‰tƒ} i‰i‰|D]^}t|tƒr|}d}n"t|ƒdkr'|\}}nt|ƒdkr7|\}}}|ˆ|<ntd|›�ƒ‚t|tƒrG| ¡sNtd|›�ƒ‚t |¡rZtd|›�ƒ‚|| vretd|›�ƒ‚|  |¡|ˆ|<q‡‡‡fdd „}t   ||i|¡}t ||||||| | | | d � S) Nz typing.Anyr¬ézInvalid field: z'Field names must be valid identifiers: z"Field names must not be keywords: zField name duplicated: cs | ˆ¡| ˆ¡ˆ|d<dS)NrÆ)r�)r|©Z annotationsÚdefaultsr rrÚexec_body_callbackns   z*make_dataclass..exec_body_callbackrð) r6r=r¹ÚlenrŒÚ isidentifierÚkeywordÚ iskeywordr.rKÚ new_classr)Úcls_namer r r rEr>rVrWrXrYrãrHr‚ÚseenÚitemr$ÚtpÚspecrr?rr rr5s<          þrcKs¨ t|ƒs tdƒ‚t|tƒ ¡D];}|jturq|js*|j|vr)t d|j›d�ƒ‚q|j|vrK|jt urB|j t urBt d|j›d�ƒ‚t||jƒ||j<q|j di|¤ŽS)Nz1replace() should be called on dataclass instancesr·zC is declared with init=False, it cannot be specified with replace()zInitVar z! must be specified with replace()r)rõrŒrPrØrÙrIr)rEr$r[r*rBr Ú __class__)rôZchangesr_rrrr}s    €rr")KÚrer°rrKrßrÚbuiltinsr7rár,rrÚ__all__rórrr†rr rr rLrJr r(r)r*rØrÖr�Úcompiler­r9rrrTrrdror}r�rƒr„r“r–ršrŸr¡r¦r©rªr¶r¼r½r¿rÁrÃrÄrÝrärårèràrr rõrr»r rùrbr rrrrrrrÚsÞ  @ ÿ   ÿ << ;_ÿþýüûúùø ÷ ö õ ô óòñh " þ) þ H