grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B âvø×°dúã@s&ddlZddlmZmZyddlmZWn ek rHddlmZYnXdddddd d gZd d „Z d d„Z dd„Z dd„Z e ƒZGdd „d ƒZGdd„deƒZdZGdd„deƒZGdd„ded�ZGdd„deeƒZdd„ZGdd„deƒZGdd„deeƒZdd„Zd d „Zd!d"„Zd#d$„ZdS)%éN)ÚMappingProxyTypeÚDynamicClassAttribute)Ú OrderedDictÚEnumMetaÚEnumÚIntEnumÚFlagÚIntFlagÚautoÚuniquecCst|dƒpt|dƒpt|dƒS)NÚ__get__Ú__set__Ú __delete__)Úhasattr)Úobj©rú)/opt/alt/python37/lib64/python3.7/enum.pyÚ_is_descriptors  rcCsLt|ƒdkoJ|dd…|dd…ko.dknoJ|ddkoJ|ddkS)NéééþÿÿÿÚ__Ú_éýÿÿÿ)Úlen)ÚnamerrrÚ _is_dunders ( rcCsLt|ƒdkoJ|d|dko&dknoJ|dd…dkoJ|dd…dkS)Nrréÿÿÿÿrér)r)rrrrÚ _is_sunder"s  rcCsdd„}||_d|_dS)NcSstd|ƒ‚dS)Nz%r cannot be pickled)Ú TypeError)ÚselfÚprotorrrÚ_break_on_call_reduce,sz6_make_class_unpicklable.._break_on_call_reducez )Ú __reduce_ex__Ú __module__)Úclsr#rrrÚ_make_class_unpicklable*sr'c@seZdZeZdS)r N)Ú__name__r%Ú __qualname__Ú _auto_nullÚvaluerrrrr 2scs(eZdZ‡fdd„Z‡fdd„Z‡ZS)Ú _EnumDictcs&tƒ ¡g|_g|_g|_d|_dS)NF)ÚsuperÚ__init__Ú _member_namesÚ _last_valuesÚ_ignoreÚ _auto_called)r!)Ú __class__rrr.@s  z_EnumDict.__init__csdt|ƒr”|dkrtdƒ‚|dkr<|jr.tdƒ‚t|d|ƒnV|dkr’t|tƒr`| dd¡ ¡}nt |ƒ}||_ t |ƒt |j ƒ@}|r’td |fƒ‚n¾t |ƒrª|d kr¨d }n¨||j krÂtd |ƒ‚n�||j krÎn„t|ƒ�sR||krôtd |||fƒ‚t|tƒ�r:d|_|jtk�r4| |dt|j ƒ|jdd…¡|_|j}|j  |¡|j |¡tƒ ||¡dS)N)Ú_order_Ú_create_pseudo_member_Ú_generate_next_value_Ú _missing_Ú_ignore_z(_names_ are reserved for future Enum user6z4_generate_next_value_ must be defined before membersÚ_generate_next_valuer8ú,ú z-_ignore_ cannot specify already set names: %rÚ __order__r4zAttempted to reuse key: %rz%r already defined as: %rTr)rÚ ValueErrorr2r ÚsetattrÚ isinstanceÚstrÚreplaceÚsplitÚlistr1Úsetr/rrr r+r*r9rr0Úappendr-Ú __setitem__)r!Úkeyr+Úalready)r3rrrFGsD       "  z_EnumDict.__setitem__)r(r%r)r.rFÚ __classcell__rr)r3rr,9s r,csÖeZdZedd„ƒZ‡fdd„Zdd„Zd(ddddd œd d „Zd d „Z‡fdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zedd„ƒZdd„Zdd„Z‡fd d!„Zddddd œd"d#„Zed$d%„ƒZed&d'„ƒZ‡ZS))rcCs0tƒ}| |¡\}}|dk r,t|ddƒ|d<|S)Nr6)r,Ú _get_mixins_Úgetattr)Úmetaclsr&ÚbasesÚ enum_dictÚ member_typeÚ first_enumrrrÚ __prepare__‚s zEnumMeta.__prepare__c s"ˆ dg¡ d¡ˆd}x|D]}ˆ |d¡q W| |¡\‰}| ˆˆ|¡\}}} ‡fdd„ˆjDƒ} xˆjD] } ˆ| =qrWˆ dd¡} t| ƒddh@} | r´td d  | ¡¡ƒ‚d ˆkrÄd ˆd <t ƒ  |||ˆ¡}g|_ t ƒ|_ˆ|_d d „| ¡Dƒ}i|_d ˆk�r:ˆtk �r:d}t‡fdd„|Dƒƒ�s:t|ƒ�x6ˆjD�]*}| |}t|tƒ�sf|f}n|}ˆtk�rz|f}| �sœ||ƒ}t|dƒ�sÒ||_n6||f|žŽ}t|dƒ�sÒˆtk�rÈ||_n ˆ|Ž|_|j}||_||_|j|Žx8|j ¡D]\} }|j|jk�rú|}P�qúW|j  |¡||k�r>t|||ƒ||j|<y||j|<Wntk �rlYnX�qDWxPdD]H} t|| ƒ}tˆ| dƒ}t|| dƒ}|dk �rz||k�rzt|| |ƒ�qzWt dk �rä|�rÜ||_!t j |_ | dk �rt| t"ƒ�r |  #dd¡ $¡} | |j k�rtdƒ‚|S)Nr8csi|]}ˆ||“qSrr)Ú.0Úk)Ú classdictrrú �sz$EnumMeta.__new__..r4ÚmroÚzInvalid enum member name: {0}r:Ú__doc__zAn enumeration.cSs.h|]&}|j ¡D]\}}t|tƒr|’qqSr)Ú__dict__Úitemsr?r)rRÚcrSÚvrrrú ¶sz#EnumMeta.__new__..r$)Ú__getnewargs_ex__Ú__getnewargs__r$Ú __reduce__c3s|]}|ˆjkVqdS)N)rY)rRÚm)rOrrú Ësz#EnumMeta.__new__..Ú_value_)Ú__repr__Ú__str__Ú __format__r$r;z#member order does not match _order_)%Ú setdefaultrEÚpoprJÚ _find_new_r/rDr=ÚformatÚjoinr-Ú__new__Ú_member_names_rÚ _member_map_Ú _member_type_rVÚ_value2member_map_ÚobjectÚanyr'r?ÚtuplerrcÚ_name_Ú __objclass__r.rZr>r rKrÚ__new_member__r@rArB)rLr&rMrTÚignorerGrPrlÚsave_newÚuse_argsÚ enum_membersrr4Ú invalid_namesÚ enum_classÚdynamic_attributesÚmethodsÚ member_namer+ÚargsÚ enum_memberÚcanonical_memberÚ class_methodÚ obj_methodÚ enum_method)r3)rTrOrrlŒs˜                           zEnumMeta.__new__cCsdS)NTr)r!rrrÚ__bool__szEnumMeta.__bool__Nr)ÚmoduleÚqualnameÚtypeÚstartcCs*|dkr| ||¡S|j||||||d�S)N)r‡rˆr‰rŠ)rlÚ_create_)r&r+Únamesr‡rˆr‰rŠrrrÚ__call__!s zEnumMeta.__call__cCs6t|tƒs ddl}| dtd¡t||ƒo4|j|jkS)NrzHusing non-Enums in containment checks will raise TypeError in Python 3.8r)r?rÚwarningsÚwarnÚDeprecationWarningrtrn)r&ÚmemberrŽrrrÚ __contains__?s  zEnumMeta.__contains__cs(||jkrtd|jƒ‚tƒ |¡dS)Nz%s: cannot delete Enum member.)rnÚAttributeErrorr(r-Ú __delattr__)r&Úattr)r3rrr”Hs  zEnumMeta.__delattr__cCsddddg|jS)Nr3rXÚ __members__r%)rm)r!rrrÚ__dir__Ps zEnumMeta.__dir__cCs>t|ƒrt|ƒ‚y |j|Stk r8t|ƒd‚YnXdS)N)rr“rnÚKeyError)r&rrrrÚ __getattr__Ts  zEnumMeta.__getattr__cCs |j|S)N)rn)r&rrrrÚ __getitem__dszEnumMeta.__getitem__cs‡fdd„ˆjDƒS)Nc3s|]}ˆj|VqdS)N)rn)rRr)r&rrrbhsz$EnumMeta.__iter__..)rm)r&r)r&rÚ__iter__gszEnumMeta.__iter__cCs t|jƒS)N)rrm)r&rrrÚ__len__jszEnumMeta.__len__cCs t|jƒS)N)rrn)r&rrrr–mszEnumMeta.__members__cCs d|jS)Nz )r()r&rrrrdwszEnumMeta.__repr__cs‡fdd„tˆjƒDƒS)Nc3s|]}ˆj|VqdS)N)rn)rRr)r&rrrb{sz(EnumMeta.__reversed__..)Úreversedrm)r&r)r&rÚ __reversed__zszEnumMeta.__reversed__cs0|j di¡}||krtdƒ‚tƒ ||¡dS)NrnzCannot reassign members.)rYÚgetr“r-Ú __setattr__)r&rr+Ú member_map)r3rrr }szEnumMeta.__setattr__c Cs„|j}|dkr|fn||f}| |¡\} } | ||¡} t|tƒrP| dd¡ ¡}t|ttfƒrÄ|rÄt|dtƒrÄ|g} }g} xDt | ƒD]8\}}|   |||| dd…¡}|   |¡|  ||f¡qˆWx6|D].}t|tƒrè|||}}n|\}}|| |<qÊW|  |||| ¡}|dk�rVyt  d¡jd}Wn*tttfk �rT}zWdd}~XYnX|dk�rjt|ƒn||_|dk �r€||_|S)Nr:r;rrr()r3rJrQr?r@rArBrsrCÚ enumerater6rErlÚsysÚ _getframeÚ f_globalsr“r=r˜r'r%r))r&Ú class_namerŒr‡rˆr‰rŠrLrMrrPrTÚoriginal_namesÚ last_valuesÚcountrr+ÚitemrÚ member_valuer|Úexcrrrr‹Šs<             zEnumMeta._create_cCsP|s ttfSdd„}|d}t|tƒs.tdƒ‚||ƒp8t}|jrHtdƒ‚||fS)NcSsHxB|D]:}x4|jD]*}|tkr"qqd|jkrt|tƒr8q|SqWqWdS)Nrl)Ú__mro__rqrYÚ issubclassr)rMÚchainÚbaserrrÚ_find_data_typeÊs    z.EnumMeta._get_mixins_.._find_data_typerzZnew enumerations should be created as `EnumName([mixin_type, ...] [data_type,] enum_type)`zCannot extend enumerations)rqrr®r rm)rMr±rPrOrrrrJ¿s   zEnumMeta._get_mixins_c Cs’| dd¡}|dk }|dkrtxVdD]H}x8||fD],}t||dƒ}|ddjtjtjhkr0|}Pq0W|dk r"Pq"Wtj}|tjkr„d}nd}|||fS)Nrl)rvrlFT)rŸrKrlrqr) rTrOrPrlrxÚmethodÚpossibleÚtargetryrrrrißs(     zEnumMeta._find_new_)N)r(r%r)Ú classmethodrQrlr†r�r’r”r—r™ršr›rœÚpropertyr–rdržr r‹Ú staticmethodrJrirIrr)r3rr€s&    5 c@s~eZdZdd„Zdd„Zedd„ƒZdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z e dd„ƒZe dd„ƒZeddd„ƒZdS)rc Cst|ƒ|kr|Sy |j|Stk r.Yn6tk rbx |j ¡D]}|j|krH|SqHWYnXyd}| |¡}Wn*tk r }z |}d}Wdd}~XYnXt ||ƒr°|St d||j fƒ}|dkrØ|dkrØ|‚n|dkròtd|j |fƒ}||_ |‚dS)Nz%r is not a valid %szDerror in %s._missing_: returned %r instead of None or a valid member) r‰rpr˜r rnÚvaluesrcr7Ú Exceptionr?r=r(Ú __context__)r&r+r‘r¬ÚresultÚeÚve_excrrrrls6    z Enum.__new__c Cs8x2t|ƒD]"}y|dStk r*Yq Xq W|SdS)Nr)r�r )rrŠr©r¨Ú last_valuerrrr6;s  zEnum._generate_next_value_cCstd||jfƒ‚dS)Nz%r is not a valid %s)r=r()r&r+rrrr7DszEnum._missing_cCsd|jj|j|jfS)Nz <%s.%s: %r>)r3r(rtrc)r!rrrrdHsz Enum.__repr__cCsd|jj|jfS)Nz%s.%s)r3r(rt)r!rrrreLsz Enum.__str__cs&‡fdd„ˆj ¡Dƒ}dddg|S)Ncs2g|]*}|jD]}|ddkr|ˆjkr|‘qqS)rr)rYrn)rRr&ra)r!rrú Qs z Enum.__dir__..r3rXr%)r3rV)r!Úadded_behaviorr)r!rr—Os z Enum.__dir__cCs0|jtkrt}t|ƒ}n |j}|j}| ||¡S)N)rorqr@rcrf)r!Ú format_specr&ÚvalrrrrfXs   zEnum.__format__cCs t|jƒS)N)Úhashrt)r!rrrÚ__hash__gsz Enum.__hash__cCs|j|jffS)N)r3rc)r!r"rrrr$jszEnum.__reduce_ex__cCs|jS)N)rt)r!rrrrtsz Enum.namecCs|jS)N)rc)r!rrrr+ysz Enum.valueNcsžttj|ƒ}ˆrtˆƒ‰n|‰‡‡fdd„ˆ ¡Dƒ}y|jdd„d�Wn$tk rp|jdd„d�YnX||||d�}t|_| |j ¡|||<|S)Ncs g|]}ˆ|ƒr|ˆ|f‘qSrr)rRr)ÚfilterÚsourcerrr¿“sz!Enum._convert..cSs|d|dfS)Nrrr)ÚtrrrÚ˜ózEnum._convert..)rGcSs|dS)Nrr)rÇrrrrÈ›rÉ)r‡) Úvarsr£ÚmodulesÚkeysÚsortr Ú_reduce_ex_by_namer$Úupdater–)r&rr‡rÅrÆÚmodule_globalsÚmembersr)rÅrÆrÚ_convert~s     z Enum._convert)N)r(r%r)rlr6rµr7rdrer—rfrÄr$rrr+rÒrrrrr s(    )Ú metaclassc@s eZdZdS)rN)r(r%r)rrrrr£scCs|jS)N)r)r!r"rrrrΧsrÎc@sleZdZdd„Zedd„ƒZedd„ƒZdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„ZdS)rc Csd|s|dk r|SdSxBt|ƒD]6}yt|ƒ}PWqtk rRtd|ƒd‚YqXqWd|dS)NrzInvalid Flag value: %rr)r�Ú _high_bitr¹r )rrŠr©r¨r¾Úhigh_bitrrrr6­s zFlag._generate_next_value_cCs.|}|dkr|}| |¡}|dkr*|}|S)Nr)r5)r&r+Úoriginal_valueÚpossible_memberrrrr7Às zFlag._missing_cCsb|j |d¡}|dkr^t||ƒ\}}|r:td||jfƒ‚t |¡}d|_||_|j  ||¡}|S)Nz%r is not a valid %s) rprŸÚ _decomposer=r(rqrlrtrcrg)r&r+Ú pseudo_memberrÚ extra_flagsrrrr5Ês zFlag._create_pseudo_member_cCs8t||jƒs&ddl}| dtd¡dS|j|j@|jkS)NrzHusing non-Flags in containment checks will raise TypeError in Python 3.8rF)r?r3rŽr�r�rc)r!ÚotherrŽrrrr’Þs zFlag.__contains__cCsV|j}|jdk r$d|j|j|jfSt||jƒ\}}d|jd dd„|Dƒ¡|jfS)Nz <%s.%s: %r>ú|cSsg|]}t|jp|jƒ‘qSr)r@rtrc)rRrarrrr¿ïsz!Flag.__repr__..)r3rtr(rcrØrk)r!r&rÑÚ uncoveredrrrrdès z Flag.__repr__cCs€|j}|jdk r d|j|jfSt||jƒ\}}t|ƒdkr^|djdkr^d|j|djfSd|jd dd„|Dƒ¡fSdS)Nz%s.%srrz%s.%rrÜcSsg|]}t|jp|jƒ‘qSr)r@rtrc)rRrarrrr¿ýsz Flag.__str__..)r3rtr(rØrcrrk)r!r&rÑrÝrrrreós z Flag.__str__cCs t|jƒS)N)Úboolrc)r!rrrr†sz Flag.__bool__cCs"t||jƒstS| |j|jB¡S)N)r?r3ÚNotImplementedrc)r!rÛrrrÚ__or__s z Flag.__or__cCs"t||jƒstS| |j|j@¡S)N)r?r3rßrc)r!rÛrrrÚ__and__s z Flag.__and__cCs"t||jƒstS| |j|jA¡S)N)r?r3rßrc)r!rÛrrrÚ__xor__ s z Flag.__xor__cCsRt|j|jƒ\}}| d¡}x*|jD] }||kr$|j|j@s$||B}q$W| |¡S)Nr)rØr3rc)r!rÑrÝÚinvertedrarrrÚ __invert__s    zFlag.__invert__N)r(r%r)r6rµr7r5r’rdrer†ràrárârärrrrrªs    c@sPeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „ZeZ eZ eZ d d „Z d S)r cCs*t|tƒstd||jfƒ‚| |¡}|S)Nz%r is not a valid %s)r?Úintr=r(r5)r&r+Ú new_memberrrrr7s  zIntFlag._missing_cCs´|j |d¡}|dkr°|g}t||ƒ\}}xL|rvt|ƒ}d|}||jkr\||kr\| |¡|| krld}q,||N}q,Wx6t|ƒD]*}t ||¡}d|_||_ |j  ||¡}q‚W|S)Nrr) rprŸrØrÔrEr�rårlrtrcrg)r&r+rÙÚneed_to_createrrÚÚbitÚ flag_valuerrrr5%s&     zIntFlag._create_pseudo_member_cCs0t||jtfƒstS| |j| |¡jB¡}|S)N)r?r3rårßrc)r!rÛr»rrrràCszIntFlag.__or__cCs,t||jtfƒstS| |j| |¡j@¡S)N)r?r3rårßrc)r!rÛrrrráIszIntFlag.__and__cCs,t||jtfƒstS| |j| |¡jA¡S)N)r?r3rårßrc)r!rÛrrrrâNszIntFlag.__xor__cCs| |j¡}|S)N)r3rc)r!r»rrrräWszIntFlag.__invert__N) r(r%r)rµr7r5ràrárâÚ__ror__Ú__rand__Ú__rxor__rärrrrr s  cCs | ¡dS)Nr)Ú bit_length)r+rrrrÔ\srÔcCsbg}x0|j ¡D]"\}}||jkr| ||jf¡qW|r^d dd„|Dƒ¡}td||fƒ‚|S)Nz, cSsg|]\}}d||f‘qS)z%s -> %sr)rRÚaliasrrrrr¿hszunique..z duplicate values found in %r: %s)r–rZrrErkr=)Ú enumerationÚ duplicatesrr‘Ú alias_detailsrrrr `s  cCsØ|}|dk}|r*dd„t|j ¡ƒDƒ}ndd„t|j ¡ƒDƒ}g}x4|D],\}}|rL||@|krL| |¡||M}qLW|sš||jkrš| |j|¡|jdd„dd�t|ƒd krÐ|dj|krÐ| d¡||fS) NrcSs"g|]\}}|jdk r||f‘qS)N)r)rRr\rarrrr¿xsz_decompose..cSs*g|]"\}}|jdk st|ƒr||f‘qS)N)rÚ _power_of_two)rRr\rarrrr¿scSs|jS)N)rc)rarrrrÈŠrÉz_decompose..T)rGÚreverser)rCrprZrErÍrr+rh)Úflagr+Ú not_coveredÚnegativeÚflags_to_checkrÑr‘r«rrrrØms$  rØcCs|dkr dS|dt|ƒkS)NrFr)rÔ)r+rrrrò�srò)r£ÚtypesrrÚ _collectionsrÚ ImportErrorÚ collectionsÚ__all__rrrr'rqr*r Údictr,rr‰rrårrÎrr rÔr rØròrrrrÚs<DqA #