grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B §#7(u½û3ã@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZdddddddd d d d d g Z Gdd„de ƒZ Gdd„dƒZ e ƒZ Gdd„dƒZeƒZe i¡ZGdd„dƒZedƒZedƒZedƒZdZdZdZe d¡ZGdd„deƒZGdd„ded�ZGd d„dƒZGd!d"„d"ƒZeed#d#dd#dd$œd%d„Z d&d'„Z!d(d)„Z"dded*œd+d,„Z#d-d.„Z$d/d0„Z%d1d2„Z&d3d4„Z'd5d6„Z(d7d8„Z)d9d:„Z*d;d<„Z+d=d>„Z,d?d@„Z-dAdB„Z.dCdD„Z/dEdF„Z0dGdH„Z1dIdJ„Z2dKdL„Z3dddde1de2de2e3e2e3e2e3e2e3dMœZ4dNdO„Z5dcd#d#d#dPdPdPdQœdRd„Z6dSd„Z7dTdU„Z8dVd „Z9e:dWœdXd „Z;dYdZ„Zd]d^„Z?d_dd#d#d#dPdPdPd`œdad „Z@dbd „ZAdS)déNÚ dataclassÚfieldÚFieldÚFrozenInstanceErrorÚInitVarÚMISSINGÚfieldsÚasdictÚastupleÚmake_dataclassÚreplaceÚ is_dataclassc@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©rrú0/opt/alt/python37/lib64/python3.7/dataclasses.pyr›sc@seZdZdd„ZdS)Ú_HAS_DEFAULT_FACTORY_CLASScCsdS)Nz r)ÚselfrrrÚ__repr__¡sz#_HAS_DEFAULT_FACTORY_CLASS.__repr__N)rrrrrrrrr src@s eZdZdS)Ú _MISSING_TYPEN)rrrrrrrr§src@seZdZdd„Zdd„ZdS)Ú _FIELD_BASEcCs ||_dS)N)Úname)rrrrrÚ__init__±sz_FIELD_BASE.__init__cCs|jS)N)r)rrrrr³sz_FIELD_BASE.__repr__N)rrrrrrrrrr°srÚ_FIELDÚ_FIELD_CLASSVARÚ_FIELD_INITVARZ__dataclass_fields__Z__dataclass_params__Z __post_init__z^(?:\s*(\w+)\s*\.)?\s*(\w+)c@seZdZdd„ZdS)Ú _InitVarMetacCs|S)Nr)rZparamsrrrÚ __getitem__Ësz_InitVarMeta.__getitem__N)rrrrrrrrrÊsrc@s eZdZdS)rN)rrrrrrrrÎs)Ú metaclassc@s(eZdZdZdd„Zdd„Zdd„ZdS) r) rÚtypeÚdefaultÚdefault_factoryÚreprÚhashÚinitÚcompareÚmetadataÚ _field_typecCsRd|_d|_||_||_||_||_||_||_|dkrTsz_tuple_str..z,))Újoin)r=rr)r=rÚ _tuple_strKsr@cs"tƒ‰t ˆ¡‡‡fdd„ƒ}|S)Nc sDt|ƒt ¡f}|ˆkrdSˆ |¡z ˆ|ƒ}Wdˆ |¡X|S)Nz...)ÚidÚ_threadÚ get_identÚaddÚdiscard)rÚkeyÚresult)Ú repr_runningÚ user_functionrrÚwrapper^s   z _recursive_repr..wrapper)ÚsetÚ functoolsÚwraps)rIrJr)rHrIrÚ_recursive_reprYs rN)ÚglobalsÚlocalsÚ return_typec Cs°|dkr i}d|krt|d<d}|tk r4||d<d}d |¡}d dd„|Dƒ¡}d |›d |›d |›d |›�}d  | ¡¡}d|›d|›d|›�}i} t||| ƒ| df|ŽS)NZBUILTINSÚZ _return_typez->_return_typer9Ú css|]}d|›�VqdS)z Nr)r;Úbrrrú zsz_create_fn..z def r8r,z: z, zdef __create_fn__(z): z return Z __create_fn__)Úbuiltinsrr?ÚkeysÚexec) rÚargsZbodyrOrPrQZreturn_annotationZtxtZ local_varsÚnsrrrÚ _create_fnls   r[cCs0|rd|›d|›d|›d�S|›d|›d|›�S)NzBUILTINS.object.__setattr__(r9r,r:ú=r)r6rÚvalueÚ self_namerrrÚ _field_assign‡sr_cCs¬d|j›�}|jtk rV|jr@|j||<|›d|j›d|j›�}qŽ|j||<|›d�}n8|jrŠ|jtkrn|j}qŽ|jtk rŽ|j||<|j}ndS|jtkrœdSt||j||ƒS)NZ_dflt_z() if z is _HAS_DEFAULT_FACTORY else z())rr"rr%r!r(rr_)r<r6rOr^Z default_namer]rrrÚ _field_init“s"         r`cCsV|jtkr|jtkrd}n&|jtk r2d|j›�}n|jtk r@d}|j›d|j›|›�S)NrRz=_dflt_z=_HAS_DEFAULT_FACTORYz:_type_)r!rr"r)r<r!rrrÚ _init_paramÉs  rac Csöd}xB|D]:}|jr |jtkr(|jtks.d}q |r td|j›d�ƒ‚q Wdd„|Dƒ}| ttdœ¡g}x(|D] }t||||ƒ} | rp|  | ¡qpW|rÈd  d d „|Dƒ¡} |  |›d t ›d | ›d �¡|sÒdg}t d|gdd„|Dƒ|||dd�S)NFTznon-default argument z follows default argumentcSsi|]}|jd|j›�“qS)Z_type_)r r)r;r<rrrú îsz_init_fn..)rÚ_HAS_DEFAULT_FACTORYr9css|]}|jtkr|jVqdS)N)r(rr)r;r<rrrrUþsz_init_fn..r:r8r,ÚpassrcSsg|]}|jrt|ƒ‘qSr)r%ra)r;r<rrrr>sz_init_fn..)rPrOrQ) r%r!rr"Ú TypeErrorrÚupdatercr`Úappendr?Ú_POST_INIT_NAMEr[) rr6Ú has_post_initr^rOZ seen_defaultr<rPZ body_linesÚlineZ params_strrrrÚ_init_fnÜs6   rkcCs2tdddd dd„|Dƒ¡dg|d�}t|ƒS) Nr)rz(return self.__class__.__qualname__ + f"(z, cSs g|]}|j›d|j›d�‘qS)z={self.z!r})r)r;r<rrrr>sz_repr_fn..z)")rO)r[r?rN)rrOÚfnrrrÚ_repr_fns rmcCsp|tdœ}|r,dd dd„|Dƒ¡d}nd}tdd d |›d �d d f||d�tddd |›d �ddf||d�fS)N)Úclsrr8r9css|]}t|jƒVqdS)N)r#r)r;r<rrrrUsz'_frozen_get_del_attr..z,)z()Ú __setattr__)rrr]z 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))rPrOÚ __delattr__)rrz; raise FrozenInstanceError(f"cannot delete field {name!r}")z"super(cls, self).__delattr__(name))rr?r[)rnrrOrPZ fields_strrrrÚ_frozen_get_del_attrs&  rrcCs$t|ddd|›|›|›�dg|d�S)N)rÚotherz%if other.__class__ is self.__class__:z return zreturn NotImplemented)rO)r[)rÚopÚ self_tupleÚ other_tuplerOrrrÚ_cmp_fn2s rwcCs$td|ƒ}tddd|›d�g|d�S)NrÚ__hash__)rz return hash(r,)rO)r@r[)rrOrurrrÚ_hash_fn@s   rycCs$||jkp"t|ƒ|jko"|j|jkS)N)ÚClassVarr Z _GenericAliasZ __origin__)Úa_typeÚtypingrrrÚ _is_classvarHs r}cCs ||jkS)N)r)r{Ú dataclassesrrrÚ _is_initvarPsrc Cs†t |¡}|r‚d}| d¡}|s2tj |j¡j}n2tj |j¡}|rd|j |¡|krdtj |j¡j}|r‚|| | d¡¡|ƒr‚dSdS)NééTF)Ú_MODULE_IDENTIFIER_REÚmatchÚgroupÚsysÚmodulesÚgetrÚ__dict__) Z annotationrnZa_moduler{Zis_type_predicaterƒrZZ module_nameÚmodulerrrÚ_is_typeVs)  rŠcCs8t||tƒ}t|tƒr|}nt|tjƒr,t}t|d�}||_||_t |_ t j   d¡}|rˆt||ƒs‚t|jtƒrˆt|j|||jtƒrˆt|_ |j t krÌt j t}t||ƒsÆt|jtƒrÌt|j|||jtƒrÌt|_ |j ttfkrö|jtk rötd|j›d�ƒ‚|j t k�r4t|jtttfƒ�r4tdt|jƒ›d|j›d�ƒ‚|S)N)r!r|zfield z cannot have a default factoryzmutable default z for field z$ is not allowed: use default_factory)r.rÚ isinstancerr*ÚMemberDescriptorTyperrr rr(r…r†r‡r}ÚstrrŠrzrrrrrr"rer!ÚlistÚdictrKr7)rnZa_namer{r!r<r|r~rrrÚ _get_field‘s:             r�cCs||jkrdSt|||ƒdS)NTF)rˆÚsetattr)rnrr]rrrÚ_set_new_attributeãs  r’cCsdS)Nr)rnrrOrrrÚ_hash_set_noneñsr“cCsdd„|Dƒ}t||ƒS)NcSs(g|] }|jdkr|jrn|jr|‘qS)N)r$r&)r;r<rrrr>õsz_hash_add..)ry)rnrrOÚfldsrrrÚ _hash_addôsr•cCstd|j›�ƒ‚dS)Nz-Cannot overwrite attribute __hash__ in class )rer)rnrrOrrrÚ_hash_exceptionøsr–))FFFF)FFFT)FFTF)FFTT)FTFF)FTFT)FTTF)FTTT)TFFF)TFFT)TFTF)TFTT)TTFF)TTFT)TTTF)TTTTc sªi}ˆjtjkr tjˆjj}ni}tˆtt||||||ƒƒd} d} xXˆjddd…D]D} t| t dƒ} | rXd} x|   ¡D]} | || j <qzWt| tƒj rXd} qXWˆj  di¡}‡fdd„| ¡Dƒ}xT|D]L} | || j <ttˆ| j dƒtƒrÊ| jtk�rtˆ| j ƒqÊtˆ| j | jƒqÊWx<ˆj ¡D].\}}t|tƒ�r&||k�r&t|›d�ƒ‚�q&W| �r†| �rr|�srtd ƒ‚| �s†|�r†td ƒ‚tˆt |ƒˆj  d t¡}|tk�p¼|dk�o¼d ˆjk }|�rÔ|�sÔtd ƒ‚|�rtˆtƒ}dd„|  ¡Dƒ}tˆdt|||d|k�rdnd|ƒƒdd„|  ¡Dƒ}|�rTdd„|Dƒ}tˆdt||ƒƒ|�r–dd„|Dƒ}td|ƒ}td|ƒ}tˆd td d|||d�ƒ|�rdd„|Dƒ}td|ƒ}td|ƒ}xFdD]>\}}tˆ|t|||||d�ƒ�rÄtd|›dˆj›d�ƒ‚�qÄW|�rLx>tˆ||ƒD].}tˆ|j|ƒ�rtd|j›dˆj›�ƒ‚�qWtt |ƒt |ƒt |ƒ|f}|�r||ˆ||ƒˆ_!tˆdƒ�s¦ˆjt"t# $ˆ¡ƒ %dd ¡ˆ_&ˆS)!NFéÿÿÿÿrTÚ__annotations__csg|]\}}tˆ||ƒ‘qSr)r�)r;rr )rnrrr>Qsz"_process_class..z& is a field but has no type annotationz5cannot inherit non-frozen dataclass from a frozen onez5cannot inherit frozen dataclass from a non-frozen onerxÚ__eq__z eq must be true if order is truecSsg|]}|jttfkr|‘qSr)r(rr)r;r<rrrr>ŽsrrZ__dataclass_self__cSsg|]}|jtkr|‘qSr)r(r)r;r<rrrr>žscSsg|]}|jr|‘qSr)r#)r;r<rrrr>¡srcSsg|]}|jr|‘qSr)r&)r;r<rrrr>§srsz==)rOcSsg|]}|jr|‘qSr)r&)r;r<rrrr>±s))Ú__lt__ú<)Ú__le__z<=)Ú__gt__ú>)Ú__ge__z>=zCannot overwrite attribute z in class z). Consider using functools.total_orderingÚ__doc__z -> NonerR)'rr…r†rˆr‘Ú_PARAMSr2Ú__mro__r.Ú_FIELDSÚvaluesrr6r‡Úitemsr‹rr!rÚdelattrrer7Úhasattrrhr’rkrmr@rwrrrÚ _hash_actionÚboolrxr�ÚinspectZ signaturer r )rnr%r#r3r4r5r6rrOZany_frozen_baseZhas_dataclass_basesrTZ base_fieldsr<Zcls_annotationsZ cls_fieldsrr]Z class_hashZhas_explicit_hashrir”Z field_listrurvrtrlZ hash_actionr)rnrÚ_process_classs¨                       r«F)r%r#r3r4r5r6cs*‡‡‡‡‡‡fdd„}|dkr"|S||ƒS)aöReturns the same class as was passed in, with dunder methods added based on the fields defined in the class. Examines PEP 526 __annotations__ to determine fields. If init is true, an __init__() method is added to the class. If repr is true, a __repr__() method is added. If order is true, rich comparison dunder methods are added. If unsafe_hash is true, a __hash__() method function is added. If frozen is true, fields may not be assigned to after instance creation. cst|ˆˆˆˆˆˆƒS)N)r«)rn)r3r6r%r4r#r5rrÚwrapészdataclass..wrapNr)Ú_clsr%r#r3r4r5r6r¬r)r3r6r%r4r#r5rrÛscCsByt|tƒ}Wntk r*tdƒ‚YnXtdd„| ¡DƒƒS)z’Return a tuple describing the fields of this dataclass. Accepts a dataclass or an instance of one. Tuple elements are of type Field. z0must be called with a dataclass type or instancecss|]}|jtkr|VqdS)N)r(r)r;r<rrrrUszfields..)r.r£ÚAttributeErrorreÚtupler¤)Zclass_or_instancerrrrrõs cCstt|ƒtƒS)z2Returns True if obj is an instance of a dataclass.)r§r r£)ÚobjrrrÚ_is_dataclass_instancesr±cCs t|tƒr|nt|ƒ}t|tƒS)zEReturns True if obj is a dataclass or an instance of a dataclass.)r‹r r§r£)r°rnrrrr s)Ú dict_factorycCst|ƒstdƒ‚t||ƒS)aèReturn the fields of a dataclass instance as a new dictionary mapping field names to field values. Example usage: @dataclass class C: x: int y: int c = C(1, 2) assert asdict(c) == {'x': 1, 'y': 2} If given, 'dict_factory' will be used instead of built-in dict. The function applies recursively to field values that are dataclass instances. This will also look into built-in containers: tuples, lists, and dicts. z0asdict() should be called on dataclass instances)r±reÚ _asdict_inner)r°r²rrrr scsÔt|ƒrHg}x2t|ƒD]&}tt||jƒˆƒ}| |j|f¡qWˆ|ƒSt|tƒrvt|dƒrvt |ƒ‡fdd„|DƒŽSt|t tfƒržt |ƒ‡fdd„|DƒƒSt|t ƒrÆt |ƒ‡fdd„|  ¡DƒƒSt  |¡SdS)NÚ_fieldscsg|]}t|ˆƒ‘qSr)r³)r;Úv)r²rrr>Fsz!_asdict_inner..c3s|]}t|ˆƒVqdS)N)r³)r;rµ)r²rrrUKsz _asdict_inner..c3s&|]\}}t|ˆƒt|ˆƒfVqdS)N)r³)r;Úkrµ)r²rrrUMs)r±rr³r.rrgr‹r¯r§r rŽr�r¥ÚcopyÚdeepcopy)r°r²rGr<r]r)r²rr³+s r³)Ú tuple_factorycCst|ƒstdƒ‚t||ƒS)aÁReturn the fields of a dataclass instance as a new tuple of field values. Example usage:: @dataclass class C: x: int y: int c = C(1, 2) assert astuple(c) == (1, 2) If given, 'tuple_factory' will be used instead of built-in tuple. The function applies recursively to field values that are dataclass instances. This will also look into built-in containers: tuples, lists, and dicts. z1astuple() should be called on dataclass instances)r±reÚ_astuple_inner)r°r¹rrrr TscsÎt|ƒrBg}x,t|ƒD] }tt||jƒˆƒ}| |¡qWˆ|ƒSt|tƒrpt|dƒrpt |ƒ‡fdd„|DƒŽSt|t tfƒr˜t |ƒ‡fdd„|DƒƒSt|t ƒrÀt |ƒ‡fdd„|  ¡DƒƒSt  |¡SdS)Nr´csg|]}t|ˆƒ‘qSr)rº)r;rµ)r¹rrr>zsz"_astuple_inner..c3s|]}t|ˆƒVqdS)N)rº)r;rµ)r¹rrrUsz!_astuple_inner..c3s&|]\}}t|ˆƒt|ˆƒfVqdS)N)rº)r;r¶rµ)r¹rrrU�s)r±rrºr.rrgr‹r¯r§r rŽr�r¥r·r¸)r°r¹rGr<r]r)r¹rrºls rºr)ÚbasesÚ namespacer%r#r3r4r5r6c sˆdkri‰nˆ ¡‰tƒ} i} xÄ|D]¼} t| tƒr>| } d}nDt| ƒdkrT| \} }n.t| ƒdkrt| \} }}|ˆ| <ntd| ›�ƒ‚t| tƒr”|  ¡s¢td| ›�ƒ‚t | ¡rºtd| ›�ƒ‚| | krÐtd| ›�ƒ‚|   | ¡|| | <q&W| ˆd <t   ||i‡fd d „¡}t ||||||| d �S) aëReturn a new dynamically created dataclass. The dataclass name will be 'cls_name'. 'fields' is an iterable of either (name), (name, type) or (name, type, Field) objects. If type is omitted, use the string 'typing.Any'. Field objects are created by the equivalent of calling 'field(name, type [, Field-info])'. C = make_dataclass('C', ['x', ('y', int), ('z', int, field(init=False))], bases=(Base,)) is equivalent to: @dataclass class C(Base): x: 'typing.Any' y: int z: int = field(init=False) For the bases and namespace parameters, see the builtin type() function. The parameters init, repr, eq, order, unsafe_hash, and frozen are passed to dataclass(). Nz typing.Anyr�ézInvalid field: z'Field names must be valid identifiers: z"Field names must not be keywords: zField name duplicated: r˜cs | ˆ¡S)N)rf)rZ)r¼rrÚÄóz make_dataclass..)r%r#r3r4r5r6) r·rKr‹r�ÚlenreÚ isidentifierÚkeywordÚ iskeywordrDr*Ú new_classr)Zcls_namerr»r¼r%r#r3r4r5r6ÚseenZannsÚitemrÚtpÚspecrnr)r¼rr ‡s6           cOsät|ƒdkr tdt|ƒ›d�ƒ‚|r,|\}nd|kr@| d¡}ntdƒ‚t|ƒsXtdƒ‚x~t|tƒ ¡D]l}|jtkrxqh|j sœ|j |krht d|j ›d�ƒ‚qh|j |krh|jt krÂt d |j ›d �ƒ‚t||j ƒ||j <qhW|j f|ŽS) a,Return a new object replacing specified fields with new values. This is especially useful for frozen classes. Example usage: @dataclass(frozen=True) class C: x: int y: int c = C(1, 2) c1 = replace(c, x=3) assert c1.x == 3 and c1.y == 2 r€z*replace() takes 1 positional argument but z were givenr°z7replace() missing 1 required positional argument: 'obj'z1replace() should be called on dataclass instanceszfield zC is declared with init=False, it cannot be specified with replace()zInitVar z! must be specified with replace())rÀreÚpopr±r.r£r¤r(rr%rr7rÚ __class__)rYZchangesr°r<rrrr És*      )N)BÚrer…r·r*rªrÂrVrLrBÚ__all__r®rrrcrrr+r)rrrrr£r¡rhÚcompiler‚r rrrr2rr@rNr[r_r`rarkrmrrrwryr}rrŠr�r’r“r•r–r¨r«rrr±r r�r r³r¯r rºr r rrrrÚs¸  : 62 ;RA )@