gJddlddlmZddlZddgZGddeZGd d eZ Gd d eZ e Z Gd deZ Gdde Z ee jdefdeZedZedZedZedZeedZeedZeedZeeddZedZedZeedZe defej?Z [y))*) NamedConstantN TupleSize NamedTuplec,eZdZdZfdZfdZxZS)NamedTupleDictzTrack field order and ensure field names are not reused. NamedTupleMeta will use the names found in self._field_names to translate to indices. c:g|_tt||i|yN) _field_namessuperr __init__)selfargskwds __class__s ;/opt/hc_python/lib/python3.12/site-packages/aenum/_tuple.pyrzNamedTupleDict.__init__s nd,d;d;cBt|r|dvr{td|dt|r|dk(r\d}nY||jvrt d|t |s2||vrt |d|||jj |tt|'||y) zRecords anything not dundered or not a descriptor. If a field name is used twice, an error is raised. Single underscore (sunder) names are reserved. )_size__order__fields__review_z_sunder_ names, such as z(, are reserved for future NamedTuple use __order__rzattempt to reuse field name: z already defined as: N) is_sunder ValueError is_dunderr TypeError is_descriptorappendr r __setitem__)rkeyvaluers rr!zNamedTupleDict.__setitem__s S>GG "s^k! D%% %GH Hu%d{sDI NOO    $ $S ) nd/U;r)__name__ __module__ __qualname____doc__rr! __classcell__rs@rr r s <<>22DJJ???rN)r$r%r&rr7r:rrr+r+0s$@rr+ceZdZdZdZeZy)r/cy)Nr/r;r9s rr:zundefined.__repr__Fsrcy)NFr;r9s r__bool__zundefined.__bool__HsrN)r$r%r&r:r? __nonzero__r;rrr/r/EsKrr/cBeZdZeddZeddZeddZy)rfixedztuple length is staticminimumz>tuple must be at least x long (x is calculated during creationvariableztuple length can be anythingN)r$r%r&constantrBrCrDr;rrrrNs) W6 7Ey"bcG $BCHrceZdZdZeefdZfdZeffd Ze dZ dZ dZ e dZeZe d Zd ZxZS) NamedTupleMetazMetaclass for NamedTuplec tSr )r )metaclsclsbasessizers r __prepare__zNamedTupleMeta.__prepare__Vs rc&tt| |yr )r rGr)rJrrrs rrzNamedTupleMeta.__init__Zs nc+T2rc |tfk(r ttf}nCt|vr;t|vr)|jt}|d|tfz||dz}n |tfz}t}g}|D]$} t | t s|j | &d} |r-|j|D]\} }} } || | f|| <t| |} |jD] \}}|||< |}|turd|vr tdt |t}t}|jd|xstjt}t}|j!dg}|r"|j#ddj%}d}|jD]f\}}||j&vr|||<t |t(r|ttf}|ddz} |}nt |t*r#|r| |tf}| dz } |}nt|tf}|}nt |tr^t-|d vrQt |dt(r>t |dt*t.fr%t-|d k(r |tfz}|}|ddz} |}n}t |tr[t-|d vrNt |dt*t.fr5t-|dk(r |tfz}|r| f|z}| dz } |}ntf|z}|}nt1d |d |d|||<ig}g}t3}d}|s|rt1d|j5t7|jdD]P\} \}} } ||vr|j |  |j | |j9|t||dz}R|}n6t3|t3|z }|rt1d|zt}d} |D]} |j!|dxs|j!|\}} } |tur|} | |vr|j |n"|j ||j9| | | | f||<| dz } t|| }t7|jdD]X\}\}} } ||vr|j |n"|j ||j9||| | f||<t||dz}Zt-|t-|zt-|k(sJdt3|t3|zt3|k(sJdt3|zt3|zt3|t3|zt3|k(sJdt3|zt3|z|jD]h\} \}} } t |t(sJd| dt=|d|dt | t*t.frK| turTJd| t=| | fz|jD]\} \}} } t?| || | || <d|d<t@t |||||}||_"||_#||_$|S#t:$rt1|d|wxYw)Nrrz2_size_ cannot be set if "size" is passed in headerr, Fr)rR)rrRznot sure what to do with =z' (should be OFFSET [, DOC [, DEFAULT]])z3_order_ not specified and OFFSETs not declared for c|dd|dfSNrrr;nvs rz(NamedTupleMeta.__new__..sXZ[\X]^_X`bdefbgWhr)r"z9unable to order fields: %s (use _order_ or specify OFFSETz (from _order_) not found in c|dd|dfSrVr;rWs rrYz(NamedTupleMeta.__new__..sUWXYUZ[\U]_abc_dTerz/number of fields + aliases != number of offsetsz"some fields are not in offsets: %sz#some aliases are not in offsets: %sz index for z is not an int (:)z-doc is not a str, None, nor undefined (%s:%r)r; __slots__)%objecttupler.r isinstancerGr _convert_fieldsmaxitemsr/r setdefaultrrB OrderedDictpopreplacesplitr baseinteger basestringr3NoneTypersetkeyssortedadd IndexErrortyper+r __new__r _aliases_ _defined_len_)rIrJrKclsdictrLrr. base_dictnamedtuple_basesbaseir-r1r0kv original_dict add_order unnumberednumberedrtargetfieldsaliasesseenmax_lenoffsetsmissingnamedtuple_classrs rrrzNamedTupleMeta.__new__]s VJ FOE %  F+fu  1E%&MA )"$ D$/ ''-  -DW-D-DFV-W)eS'"'g"5 $5M.XMMODAqIaL$! y X%>PQ Qw7  "8T%:aPQdT_C`eopqrsptxBDLwMfN1v{ -A!qA%F5)c!f.>:aPQdU_aiTjCk1v{ - EAIQ!)&MA-!+%pqst%uvvq Q*Vu \f\k\k\m!pqq/5hnn6FLh/i++uc7D=NN4(MM$'HHUO!'5195G 0jG*oG 4G !\_f!fgg!mGAU*4..D*A*TX\\RS_'E3 )A9NN1%MM!$HHQKW_ Qgq/ -38>>3CIe,f((E3D=NN1%MM!$HHUO"C0 guQw/-g6{S\)S\9l;ll96{S\)S[8{:^adekal:lorszo{:{{87|c'l*c'l:N YPDHJNORJSUXCYQY YN,; ,3==? 'D'5#w24WMGDM,;! !A'3PUW^_$*!%,")0&S"U$As%STTUs )YY5cg}|D]`}t|}|jD]D}t||}|j|||jz|j |j fFb|S)zBcreate list of index, doc, default triplets for cls in namedtuples)r3rgetattrr r.r'r0) namedtuples all_fieldsrJrxfielddescs rrazNamedTupleMeta._convert_fieldsse Cz?DsE*!!5$tzz/4<<"VW& rc|t|tstSt|j|j||fiS)zWA new NamedTuple is created by concatenating the _fields_ and adjusting the descriptors)r`rGNotImplementedr$)rJothers r__add__zNamedTupleMeta.__add__s3%0! ! ennEU|UWXXrc|tus|jdk(r`|}|j} d|vr|jd}n |d|dd}}d|vr|jd}n |d|dd}}d|vr|jd}n|r |d|dd}}nd}d|vr|jd}n|r |d|dd}}nd}|s|rt d |d |t r"t|tr |jd }t|tr.||_ |#||jvr|f|jz|_ |S|j} |f} | j|| } t|t r |j#d dj%}t|t&t(fr2t|dt rt+|D cgc] \} } | | f }} } d}|D]=}t|t r|||}}nt-|dk(r|\}}n |d|dd}}|| |<?|t|t&s|f}|| z} | j/| || | }|# t1j2dj4d}| t=||S||_|S|j.|g|i|}t||r|j@|i||S#t$rt d|d |wxYw#t$rt |d wxYwcc} } w#t6t8t:f$rYwxYw)aCreates a new NamedTuple class or an instance of a NamedTuple subclass. NamedTuple should have args of (class_name, names, module) `names` can be: * A string containing member names, separated either with spaces or commas. Values are auto-numbered from 1. * An iterable of member names. Values are auto-numbered from 1. * An iterable of (member name, value) pairs. * A mapping of member name -> value. `module`, if set, will be stored in the new class' __module__ attribute; Note: if `module` is not set this routine will attempt to discover the calling module by walking the frame stack; if this is unsuccessful the resulting class will not be pickleable. subclass should have whatever arguments and/or keywords will be used to create an instance of the subclass r class_namerNnamesmodulerqz!too few arguments to NamedTuple: , z"too many arguments to NamedTuple: asciiz is not representable in ASCIIrPrQrRr$)!rrtcopyrfrprPY2r`unicodeencodeUnicodeEncodeErrorrGr$ __bases__rrMrjrgrhr_list enumerater3rr_sys _getframe f_globalsr4rKeyErrormake_class_unpicklabler%r)rJrr original_args original_kwdsrrrrqrIrKruryeitem field_name field_indexrnamedtuple_instances r__call__zNamedTupleMeta.__call__sd, *  1 1Q 6 M IIKM l4'!%,!7J'+AwQRJd? HHW-E"&q'484Et#!XXh/F#'7DHDF!FT>88F+D!%a$qr($DDtm]j kllj'2]%/%6%6w%? %0!+#EOO(C'+h&@EO mmGGE))*e?.>FQ!Q.>?DdJ/.2E$K J4yA~26/ K26q'48K &1 #!$. 8Du &w E7S ~!^^A.88DF~&'78$ #/5 +# ##.#++c"AD"AD"A -s3,#,,d;d;& &A l]\i jkk l.]'j([\\]"@2' H=s0B J/"K 9K(?"K./K  K%.LLc,t|jSr )rrrJs r __fields__zNamedTupleMeta.__fields__tsCLL!!rc,t|jSr )rrsrs r __aliases__zNamedTupleMeta.__aliases__zsCMM""rc"d|jdS)Nz )r$rs rr:zNamedTupleMeta.__repr__~s$'LL33r)r$r%r&r' classmethodr/rMrrr staticmethodrarrbltin_propertyr_fieldsrr:r(r)s@rrGrGSs".7  34=R hY p'd""G##4rrGzONamedTuple base class. Derive from this class to define new NamedTuples. )dictr1nsc|jtjur;t||jkDr#t d|jt|fzt |t |jz t |jz }|rt d|t|tgt|jt|z zz}|jD]:\}}t||j}||tk7rt d|z|||<<|j|g}t!|D]R\}}|tus|j|} t|| j"} | tur|j%| N| ||<T|r|jtjtj&fvrt ddj)|z|r9|dtur.|j+|j+|r |dtur.|jtj,ust|vrt ddj)|zt.j1|t/|S)Nz%d fields expected, %d receivedzunknown fields: z!field %s specified more than oncez$values not provided for field(s): %sr)rrrBr3rtrrlrrsrr/rrcrr.rrr0r rCjoinrfrDr_rr) rJrrunknown final_argsrr#r.rr-r0s rrrrrs zzY__$TS5F5F)F9S=N=NPSTXPY>%(Dc4(00G)#t$$+ 5!. ::)//9+<+<= =BTYYwEWWX XZ^y8 NN  KKMZ^y8 ::Y// /9 3JBTYYwEWWX X ==eJ/ 00rcXjtfdjDfS)Nc36K|]}t|ywr )r).0frs r z __reduce_ex__..s I=aq!1=s)rr_r)rprotos` r __reduce_ex__rs! >>5 I4== II IIrc t|t|jk(rW|jjddj t |j|Dcgc] \}}|d|c}}dS|jjddj |Dcgc] }t |c}dScc}}wcc}w)N(rrTr\)r3rrr$rziprepr)rros rr:r:s 4yC &&''QTUYUbUbdhQi3jQiAq!4DQi3j)k  >>22DIIPT>UPT1tAwPT>U4VWW4k?Vs B;C c |jjddj|jDcgc]}t ||c}dScc}w)Nrrr\)rr$rrr)rrs r__str__rsL NN # #TYYUYUbUb/cUbPQa8H0KUb/c%d /csA c@t|jjSr rrrr9s rrr '' ((rc@t|jjSr )rrrsr9s rrrs (( ))rc@t|jjSr rr9s rrrrrc(|j|g|Sr )rr)rJiterablenewr3s r_makers 3;;s &X &&rc@tt|j|Sr )rerrr9s r_asdictrs s4==$/ 00rc h|j}|j||jdi|S)Nr;)rupdater)rrcurrents r_replacers-llnG NN4 4>> $G $$rcyr r;)rJrs rrrs r)NN)!_common _constantrsysr__all__rer r^r+r/rrqrG _AddendumrMglobalsnamedtuple_dictrrrr:rrrrrrrrrrresolverr;rrrs$ \  "<["