grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]ÒVã@sñddlZddlmZddlmZmZdddgZdd„Zd d „Zd d „Z d d„Z Gdd„de ƒZ dZ Gdd„deƒZGdd„ddeƒZ Gdd„dee ƒZdd„Zdd„ZdS)éN)Ú OrderedDict)ÚMappingProxyTypeÚDynamicClassAttributeÚEnumÚIntEnumÚuniquecCs+t|dƒp*t|dƒp*t|dƒS)NÚ__get__Ú__set__Ú __delete__)Úhasattr)Úobj©r ú)/opt/alt/python35/lib64/python3.5/enum.pyÚ_is_descriptorsrcCsl|dd…|dd…ko+dknok|dd…dkok|dd…dkokt|ƒdkS) NéÚ__éÚ_ééþÿÿÿéýÿÿÿr)Úlen)Únamer r rÚ _is_dunders0rcCs`|d|dkodkno_|dd…dko_|dd…dko_t|ƒdkS)Nrérréÿÿÿÿrr)r)rr r rÚ _is_sunders$rcCs"dd„}||_d|_dS)NcSstd|ƒ‚dS)Nz%r cannot be pickled)Ú TypeError)ÚselfÚprotor r rÚ_break_on_call_reduce"sz6_make_class_unpicklable.._break_on_call_reducez )Ú __reduce_ex__Ú __module__)Úclsr r r rÚ_make_class_unpicklable s  r$cs4eZdZ‡fdd†Z‡fdd†Z‡S)Ú _EnumDictcstƒjƒg|_dS)N)ÚsuperÚ__init__Ú _member_names)r)Ú __class__r rr'/s z_EnumDict.__init__csŸt|ƒrtdƒ‚nmt|ƒr*n^||jkrLtd|ƒ‚n<t|ƒsˆ||krxtd||ƒ‚|jj|ƒtƒj||ƒdS)Nz(_names_ are reserved for future Enum usezAttempted to reuse key: %rzKey already defined as: %r) rÚ ValueErrorrr(rrÚappendr&Ú __setitem__)rÚkeyÚvalue)r)r rr,3s    z_EnumDict.__setitem__)Ú__name__r"Ú __qualname__r'r,r r )r)rr%(s r%c sHeZdZedd„ƒZ‡fdd†Zdd„Zdddd dd dd d d d„Zdd„Z‡fdd†Z dd„Z dd„Z dd„Z dd„Z dd„Zedd„ƒZdd „Zd!d"„Z‡fd#d$†Zdddd dd dd d d%d&„Zed'd(„ƒZed)d*„ƒZ‡S)+ÚEnumMetacCstƒS)N)r%)Úmetaclsr#Úbasesr r rÚ __prepare__TszEnumMeta.__prepare__c s^|j|ƒ\‰}|jˆˆ|ƒ\}}}‡fdd†ˆjDƒ}xˆjD] } ˆ| =qYWt|ƒdh@} | r¡tdjdj| ƒƒƒ‚dˆkr·dˆdcs z$EnumMeta.__new__..ÚmrozInvalid enum member name: {0}ú,Ú__doc__zAn enumeration.cSs&h|]}|jD] }|’qqSr )Ú__dict__)r5ÚbÚar r rú ys z#EnumMeta.__new__..r!Ú__getnewargs_ex__Ú__getnewargs__Ú __reduce__c3s|]}|ˆjkVqdS)N)r<)r5Úm)Ú member_typer rú Œsz#EnumMeta.__new__..Ú_value_Ú__repr__Ú__str__Ú __format__)r@rAr!rB)rGrHrIr!) Ú _get_mixins_Ú _find_new_r(Úsetr*ÚformatÚjoinr&Ú__new__Ú_member_names_rÚ _member_map_Ú _member_type_r9Ú_value2member_map_ÚobjectÚanyr$Ú isinstanceÚtupler rFÚ_name_Ú __objclass__r'Úitemsr+ÚsetattrrÚgetattrrÚ__new_member__)r2r#r3r7Ú first_enumrOÚsave_newÚuse_argsÚmembersrÚ invalid_namesÚ enum_classÚbase_attributesÚmethodsÚ member_namer.ÚargsÚ enum_memberÚcanonical_memberÚ class_methodÚ obj_methodÚ enum_method)r))r7rDrrOXs‚                             zEnumMeta.__new__cCsdS)NTr )rr r rÚ__bool__ÑszEnumMeta.__bool__NÚmoduleÚqualnameÚtypeÚstartrc CsD|dkr|j||ƒS|j||d|d|d|d|ƒS)Nrnrorprq)rOÚ_create_)r#r.Únamesrnrorprqr r rÚ__call__×s zEnumMeta.__call__cCst||ƒo|j|jkS)N)rVrXrQ)r#Úmemberr r rÚ __contains__õszEnumMeta.__contains__cs6||jkr"td|jƒ‚tƒj|ƒdS)Nz%s: cannot delete Enum member.)rQÚAttributeErrorr/r&Ú __delattr__)r#Úattr)r)r rrxøszEnumMeta.__delattr__cCsddddg|jS)Nr)r;Ú __members__r")rP)rr r rÚ__dir__szEnumMeta.__dir__c CsOt|ƒrt|ƒ‚y|j|SWn!tk rJt|ƒd‚YnXdS)N)rrwrQÚKeyError)r#rr r rÚ __getattr__s   zEnumMeta.__getattr__cCs |j|S)N)rQ)r#rr r rÚ __getitem__szEnumMeta.__getitem__cs‡fdd†ˆjDƒS)Nc3s|]}ˆj|VqdS)N)rQ)r5r)r#r rrEsz$EnumMeta.__iter__..)rP)r#r )r#rÚ__iter__szEnumMeta.__iter__cCs t|jƒS)N)rrP)r#r r rÚ__len__szEnumMeta.__len__cCs t|jƒS)N)rrQ)r#r r rrzszEnumMeta.__members__cCs d|jS)Nz )r/)r#r r rrG'szEnumMeta.__repr__cs ‡fdd†tˆjƒDƒS)Nc3s|]}ˆj|VqdS)N)rQ)r5r)r#r rrE+sz(EnumMeta.__reversed__..)ÚreversedrP)r#r )r#rÚ __reversed__*szEnumMeta.__reversed__csD|jjdiƒ}||kr-tdƒ‚tƒj||ƒdS)NrQzCannot reassign members.)r<Úgetrwr&Ú __setattr__)r#rr.Ú member_map)r)r rr„-s  zEnumMeta.__setattr__cCs˜|j}|dkr|fn ||f}|j||ƒ} t|tƒrc|jddƒjƒ}t|ttfƒr§t|dtƒr§dd„t||ƒDƒ}xG|D]?} t| tƒr×| || } } n | \} } | | | Ns z%EnumMeta._create_..rr/)r)r4rVÚstrÚreplaceÚsplitrWÚlistÚ enumeraterOÚsysÚ _getframeÚ f_globalsrwr*r$r"r0)r#Ú class_namersrnrorprqr2r3r7ÚitemrfÚ member_valuercÚexcr r rrr:s0 !(        zEnumMeta._create_cCsø|sttfSd}}x>|D]6}|tk r!t|tƒr!|jr!tdƒ‚q!Wt|tƒsvtdƒ‚t|dtƒs |d}|d}nNxK|djD]<}t|tƒrØ|dkrê|}q®|dkr®|}q®W||fS)NzCannot extend enumerationszHnew enumerations must be created as `ClassName([mixin_type,] enum_type)`rrr)rTrÚ issubclassrPrÚ__mro__)r3rDr^Úbaser r rrJis(            zEnumMeta._get_mixins_c CsÍ|jddƒ}|dk }|dkr¢xudD]d}xN||fD]@}t||dƒ}|ddjtjtjhkrD|}PqDW|dk r1Pq1Wtj}|tjkrºd}nd}|||fS)NrOr]FT)r]rO)rƒr\rOrTr) r7rDr^rOr_ÚmethodÚpossibleÚtargetr`r r rrK–s(       zEnumMeta._find_new_)r/r"r0Ú classmethodr4rOrmrtrvrxr{r}r~rr€ÚpropertyrzrGr‚r„rrÚ staticmethodrJrKr r )r)rr1Rs$ y '         '/-r1c@s�eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z e dd„ƒZ e dd„ƒZ e ddd„ƒZdS)rc Cs“t|ƒ|kr|Sy||jkr3|j|SWn?tk rux*|jjƒD]}|j|krT|SqTWYnXtd||jfƒ‚dS)Nz%r is not a valid %s)rprSrrQÚvaluesrFr*r/)r#r.rur r rrOËs  z Enum.__new__cCsd|jj|j|jfS)Nz <%s.%s: %r>)r)r/rXrF)rr r rrGÞsz Enum.__repr__cCsd|jj|jfS)Nz%s.%s)r)r/rX)rr r rrHâsz Enum.__str__cs3‡fdd†ˆjjƒDƒ}dddg|S)NcsEg|];}|jD]+}|ddkr|ˆjkr|‘qqS)rr)r<rQ)r5r#rC)rr rr‰çs  z Enum.__dir__..r)r;r")r)r9)rÚadded_behaviorr )rrr{åsz Enum.__dir__cCsF|jtkr$t}t|ƒ}n|j}|j}|j||ƒS)N)rRrTrŠrFrI)rÚ format_specr#Úvalr r rrIîs   zEnum.__format__cCs t|jƒS)N)ÚhashrX)rr r rÚ__hash__ýsz Enum.__hash__cCs|j|jffS)N)r)rF)rrr r rr!szEnum.__reduce_ex__cCs|jS)N)rX)rr r rr sz Enum.namecCs|jS)N)rF)rr r rr.sz Enum.valueNcs‰ttj|ƒ}|r(t|ƒ}n|}‡fdd†|jƒDƒ}|||d|ƒ}t|_|j|jƒ|||<|S)Ncs+i|]!\}}ˆ|ƒr||“qSr r )r5rr.)Úfilterr rr8#s z!Enum._convert..rn)Úvarsr�ÚmodulesrZÚ_reduce_ex_by_namer!Úupdaterz)r#rrnr¥ÚsourceÚmodule_globalsrar )r¥rÚ_converts   z Enum._convert)r/r"r0rOrGrHr{rIr¤r!rrr.rœr¬r r r rrÅs       Ú metaclassc@seZdZdS)rN)r/r"r0r r r rr,s cCs|jS)N)r)rrr r rr¨0sr¨cCs‡g}xB|jjƒD]1\}}||jkr|j||jfƒqW|rƒdjdd„|Dƒƒ}td||fƒ‚|S)Nz, cSs&g|]\}}d||f‘qS)z%s -> %sr )r5Úaliasrr r rr‰;s zunique..z duplicate values found in %r: %s)rzrZrr+rNr*)Ú enumerationÚ duplicatesrruÚ alias_detailsr r rr3s)r�Ú collectionsrÚtypesrrÚ__all__rrrr$Údictr%rrpr1Úintrr¨rr r r rÚs     'ÿtg