
    aiJ                        d dl  d dlmZ ddlZddgZ G d de      Z G d	 d
e      Z	 G d de      Z
 G d de      Z eej                  def      d e             Zed        Zed        Zed        Zed        Zed        Zeed               Zeed               Zeed               Zeedd              Zed        Zed        Zeed               Z edefej?                               Z [y)   )*)NamedConstant    N	TupleSize
NamedTuplec                   ,     e Zd ZdZ fdZ fdZ xZS )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 | _         t        t        |   |i | y N)_field_namessuperr	   __init__)selfargskwds	__class__s      _/home/ccuser/rateright-growth/voice-assistant/venv/lib/python3.12/site-packages/aenum/_tuple.pyr   zNamedTupleDict.__init__   s    nd,d;d;    c                 B   t        |      r|dvr{t        d|d      t        |      r|dk(  r\d}nY|| j                  v rt	        d|      t        |      s2|| v rt	        |d| |         | j                  j                  |       t        t        | '  ||       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__r   zattempt to reuse field name: z already defined as: N)
	is_sunder
ValueError	is_dunderr   	TypeErroris_descriptorappendr   r	   __setitem__)r   keyvaluer   s      r   r!   zNamedTupleDict.__setitem__   s     S>GG "  s^k!D%%%GHHu%d{sDI NOO$$S)nd/U;r   )__name__
__module____qualname____doc__r   r!   __classcell__r   s   @r   r	   r	      s    
<< <r   r	   c                       e Zd Zd Zd Zd Zy)_TupleAttributeAtIndexc                 P    || _         || _        |t        u rd }|| _        || _        y r   )nameindex	undefinedr'   default)r   r-   r.   docr0   s        r   r   z_TupleAttributeAtIndex.__init__2   s+    	
)Cr   c                     || S t        |      | j                  k  r.t        |j                  j                  d| j
                        || j                     S )Nz instance has no value for )lenr.   AttributeErrorr   r$   r-   )r   instanceowners      r   __get__z_TupleAttributeAtIndex.__get__:   sO    Kx=DJJ& hFXFXFaFacgclcl!mnn

##r   c                 L    d| j                   j                  | j                  fz  S )Nz%s(%d))r   r$   r.   r   s    r   __repr__z_TupleAttributeAtIndex.__repr__A   s     4>>22DJJ???r   N)r$   r%   r&   r   r7   r:    r   r   r+   r+   0   s    $@r   r+   c                   B    e Zd Z edd      Z edd      Z edd      Zy)r   fixedztuple length is staticminimumz>tuple must be at least x long (x is calculated during creationvariableztuple length can be anythingN)r$   r%   r&   constantr=   r>   r?   r;   r   r   r   r   G   s)    W67Ey"bcG
$BCHr   c                        e Zd ZdZeefd       Z fdZef fd	Ze	d        Z
d Zd Zed        ZeZed	        Zd
 Z xZS )NamedTupleMetazMetaclass for NamedTuplec                     t               S r   )r	   )metaclsclsbasessizer   s        r   __prepare__zNamedTupleMeta.__prepare__O   s    r   c                 &    t        t        | 
  |  y r   )r   rB   r   )rE   r   r   r   s      r   r   zNamedTupleMeta.__init__S   s    nc+T2r   c           	         |t         fk(  rt        t         f}nCt        |vr;t         |v r)|j                  t               }|d | t        fz   ||d  z   }n
|t        fz   }t               }g }|D ]$  }	t	        |	t
              s|j                  |	       & d}
|r- | j                  | D ]  \  }}}}|||f||<   t        |
|      }
 |j                         D ]
  \  }}|||<    |}|t        urd|v rt        d      t	        |t              }t               }|j                  d|xs t        j                         t               }t               }|j!                  dg       }|r"|j#                  dd      j%                         }d}|j                         D ]f  \  }}||j&                  vr|||<   t	        |t(              r|t        t        f}|d   dz   }
|}nt	        |t*              r#|r|
|t        f}|
dz  }
|}nt        |t        f}|}nt	        |t              r^t-        |      d	v rQt	        |d   t(              r>t	        |d   t*        t.        f      r%t-        |      d
k(  r
|t        fz   }|}|d   dz   }
|}n}t	        |t              r[t-        |      dv rNt	        |d   t*        t.        f      r5t-        |      dk(  r
|t        fz   }|r|
f|z   }|
dz  }
|}nt        f|z   }|}nt1        d|d|d      |||<   i g }g }t3               }d}|s|rt1        d|j5                               t7        |j                         d       D ]P  \  }\  }}}||v r|j                  |        |j                  |       |j9                  |       t        ||dz         }R |}n6t3        |      t3        |      z
  }|rt1        d|z        t               }d}
|D ]  }	 |j!                  |d       xs |j!                  |      \  }}}|t        ur|}
|
|v r|j                  |       n"|j                  |       |j9                  |
       |
||f||<   |
dz  }
t        ||
      } t7        |j                         d       D ]X  \  }\  }}}||v r|j                  |       n"|j                  |       |j9                  |       |||f||<   t        ||dz         }Z t-        |      t-        |      z   t-        |      k(  sJ d       t3        |      t3        |      z  t3        |      k(  sJ dt3        |      z  t3        |      z         t3        |      t3        |      z  t3        |      k(  sJ dt3        |      z  t3        |      z         |j                         D ]h  \  }\  }}}t	        |t(              sJ d|dt=        |      d|d       t	        |t*        t.        f      rK|t        u rTJ d|t=        |      |fz          |j                         D ]  \  }\  }}}t?        ||||      ||<    d|d<   t@        t
        |   | |||      }||_"        ||_#        ||_$        |S # t:        $ r t1        |d|      w xY w)Nr   r   z2_size_ cannot be set if "size" is passed in headerr   , Fr   )      rM   )r   rM   znot sure what to do with =z' (should be OFFSET [, DOC [, DEFAULT]])z3_order_ not specified and OFFSETs not declared for c                     | d   d   | d   fS Nr   r   r;   nvs    r   <lambda>z(NamedTupleMeta.__new__.<locals>.<lambda>   s    XZ[\X]^_X`bdefbgWh r   )r"   z9unable to order fields: %s (use _order_ or specify OFFSETz (from _order_) not found in c                     | d   d   | d   fS rQ   r;   rR   s    r   rT   z(NamedTupleMeta.__new__.<locals>.<lambda>   s    UWXYUZ[\U]_abc_dTe r   z/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__)%objecttupler.   r	   
isinstancerB   r    _convert_fieldsmaxitemsr/   r   
setdefaultr   r=   OrderedDictpopreplacesplitr   baseinteger
basestringr3   NoneTyper   setkeyssortedadd
IndexErrortyper+   r   __new__r   	_aliases__defined_len_)rD   rE   rF   clsdictrG   r   r.   	base_dictnamedtuple_basesbaseir-   r1   r0   kvoriginal_dict	add_order
unnumberednumberedr   targetfieldsaliasesseenmax_lenoffsetsmissingnamedtuple_classr   s                                r   rm   zNamedTupleMeta.__new__V   s   VJFOE%F+fu	1E%&MA	)"$	 	.D$/ ''-	. -DW-D-DFV-W ")eS'"'g"5	$5M" MMO 	DAqIaL	!y X%>PQQw7	 "8T%<Y__= ]
=##Ir2ooc#.446GI!'') (	DAq222
 a-9i/A!qA%F:. q)OQ!)%q)3!+5)c!f.>:aPQdT_C`eopqrspt  xB  DL  wM  fN1v{-A!qA%F5)c!f.>:aPQdU_aiTjCk1v{- EAIQ!)&MA-!+ %pqst%uvvq	Q(	V u \f\k\k\m!pqq/5hnn6FLh/i 6++uc7D=NN4(MM$'HHUO!'5195G6 G *oG4G !\_f!fgg!mGA *U*4..D*A*TX\\RS_'E3 	)A9NN1%MM!$HHQKW_
Qgq/*  -38>>3CIe,f 0((E3D=NN1%MM!$HHUO"C0
guQw/0 6{S\)S\9l;ll96{S\)S[8{:^adekal:lorszo{:{{87|c'l*c'l:<adghodp<psvw~s<:+2==? 	Y'D'5#we[1t[_aefkalns3tt1cJ#9:cY>N  YP  DH  JN  OR  JS  UX  CY  QY  YN	Y
 ,3==? 	N'D'5#w24WMGDM	N! !A'3PUW^_$*!%,")0&S " U$As%STTUs   )YY5c                      g }| D ]`  }t        |      }|j                  D ]D  }t        ||      }|j                  |||j                  z   |j
                  |j                  f       F b |S )zBcreate list of index, doc, default triplets for cls in namedtuples)r3   r   getattrr    r.   r'   r0   )namedtuples
all_fieldsrE   rs   fielddescs         r   r\   zNamedTupleMeta._convert_fields   ss     
 	XCz?D XsE*!!5$tzz/4<<"VWX	X
 r   c                 |    t        |t              st        S t        | j                  |j                  | |fi       S )zWA new NamedTuple is created by concatenating the _fields_ and adjusting the descriptors)r[   rB   NotImplementedr$   )rE   others     r   __add__zNamedTupleMeta.__add__   s3    %0!!ennEU|UWXXr   c                    | t         u s| j                  dk(  r`|}|j                         }	 d|v r|j                  d      }n
|d   |dd }}d|v r|j                  d      }n
|d   |dd }}d|v r|j                  d      }n|r|d   |dd }}nd}d|v r|j                  d      }n|r|d   |dd }}nd}|s|rt        d
|d	|      t        r"t        |t              r	 |j                  d      }t        |t              r.||_        |#||j                  vr|f|j                  z   |_        |S | j                  }	| f}
|	j                  ||
      }t        |t               r |j#                  dd      j%                         }t        |t&        t(        f      r2t        |d   t               rt+        |      D cg c]	  \  }}||f }}}d}|D ]=  }t        |t               r|||   }}nt-        |      dk(  r|\  }}n
|d   |dd }}|||<   ? |t        |t&              s|f}||
z   }
|	j/                  |	||
|      }|#	 t1        j2                  d      j4                  d   }|t=        |       |S ||_        |S  | j.                  | g|i |}t        ||       r |j@                  |i | |S # t        $ r t        d|d	|      w xY w# t        $ r t        |d      w xY wc c}}w # t6        t8        t:        f$ r Y w xY w)a  Creates 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_namer   Nnamesmodulerl   z!too few arguments to NamedTuple: , z"too many arguments to NamedTuple: asciiz is not representable in ASCIIrK   rL   rM   r$   )!r   ro   copyra   rk   r   PY2r[   unicodeencodeUnicodeEncodeErrorrB   r$   	__bases__r   rH   re   rb   rc   rZ   list	enumerater3   rm   _sys	_getframe	f_globalsr4   r   KeyErrormake_class_unpicklabler%   r   )rE   r   r   original_argsoriginal_kwdsr   r   r   rl   rD   rF   rp   rt   eitem
field_namefield_indexr   namedtuple_instances                      r   __call__zNamedTupleMeta.__call__   sf   , * 1 1Q 6 M IIKMl4'!%,!7J'+AwQRJd? HHW-E"&q'484Et#!XXh/F#'7DHDF!FT>88F+D!%a$qr($DD tm]j kllj'2]%/%6%6w%?
 %0!+#EOO(C'+h&@EOmmGGE))*e<G %,c3/557%%/JuQx4T.7.>?FQ!Q??D 
2dJ/.2E$KJ 4yA~26/
K26q'48K
&1
#
2 !$. 8Du&w
E7S ~!^^A.88DF ~&'78 $# /5 +## #.#++c"AD"AD"A-s3,#,,d;d;&&A  l]\i jkkl . ]'j([\\]" @2 '
H= s0   B
J/ "K 9K(?"K. /K
K%.LLc                 ,    t        | j                        S r   )r   r   rE   s    r   
__fields__zNamedTupleMeta.__fields__m  s    CLL!!r   c                 ,    t        | j                        S r   )r   rn   r   s    r   __aliases__zNamedTupleMeta.__aliases__s  s    CMM""r   c                 "    d| j                   dS )Nz<NamedTuple >)r$   r   s    r   r:   zNamedTupleMeta.__repr__w  s    $'LL33r   )r$   r%   r&   r'   classmethodr/   rH   r   rm   staticmethodr\   r   r   bltin_propertyr   _fieldsr   r:   r(   r)   s   @r   rB   rB   L   s    .7    3 4= R h  Yp'd " " G# #4r   rB   zONamedTuple base class.

    Derive from this class to define new NamedTuples.

)dictr1   nsc                    | j                   t        j                  u r;t        |      | j                  kD  r#t        d| j                  t        |      fz        t        |      t        | j                        z
  t        | j                        z
  }|rt        d|      t        |      t        gt        | j                        t        |      z
  z  z   }|j                         D ]:  \  }}t        | |      j                  }||   t        k7  rt        d|z        |||<   < | j                  |       g }t!        |      D ]R  \  }}|t        u s| j                  |   }	t        | |	      j"                  }
|
t        u r|j%                  |	       N|
||<   T |r| j                   t        j                  t        j&                  fv rt        ddj)                  |      z        |r9|d   t        u r.|j+                          |j+                          |r|d   t        u r.| j                   t        j,                  ust        |v rt        ddj)                  |      z        t.        j1                  | t/        |            S )Nz%d fields expected, %d receivedzunknown fields: z!field %s specified more than oncez$values not provided for field(s): %sr   )r   r   r=   r3   ro   r   rg   r   rn   r   r/   r   r^   r   r.   r   r   r0   r    r>   joinra   r?   rZ   rm   )rE   r   r   unknown
final_argsr   r#   r.   r   r-   r0   s              r   rm   rm     s   
zzY__$TS5F5F)F9S=N=NPSTXPY<ZZ[[$i#cll++c#--.@@G:;;dykS-@3t9-LMMJ

 "uU#))e	)?%GHH!
5	"
 LLG!*- ,uI>>%(Dc4(00G)#t$$+
5!, ::)//9+<+<==BTYYwEWWXXZ^y8NNKKM Z^y8 ::Y///9
3JBTYYwEWWXX==eJ/00r   c                 f    t        |t              rt        | |      S t        j	                  | |      S r   )r[   re   r   rZ   __getitem__)r   r.   s     r   r   r     s,    %$tU##  u--r   c                 X      j                   t         fd j                  D              fS )Nc              3   6   K   | ]  }t        |        y wr   )r   ).0fr   s     r   	<genexpr>z __reduce_ex__.<locals>.<genexpr>  s      Iaq!1 Is   )r   rZ   r   )r   protos   ` r   __reduce_ex__r     s!    >>5 I4== IIIIr   c                    t        |       t        | j                        k(  rW| j                  j                  ddj	                  t        | j                  |       D cg c]  \  }}|d| c}}      dS | j                  j                  ddj	                  | D cg c]  }t        |       c}      dS c c}}w c c}w )N(r   rO   rW   )r3   r   r   r$   r   ziprepr)r   r   os      r   r:   r:     s    
4yC&&''QTUYUbUbdhQi3jAq!4D3j)k 	  >>22DIIPT>U1tAw>U4VWW 4k ?Vs   B;Cc                     | j                   j                  ddj                  | j                  D cg c]  }t	        | |       c}      dS c c}w )Nr   r   rW   )r   r$   r   r   r   )r   r   s     r   __str__r     sF     NN##TYYUYUbUb/cPQa8H0K/c%d /cs   Ac                 @    t        | j                  j                        S r   r   r   r   r9   s    r   r   r          ''((r   c                 @    t        | j                  j                        S r   )r   r   rn   r9   s    r   r   r     s     (())r   c                 @    t        | j                  j                        S r   r   r9   s    r   r   r     r   r   c                 (     | j                   | g| S r   )rm   )rE   iterablenewr3   s       r   _maker     s     3;;s&X&&r   c                 @    t        t        | j                  |             S r   )r`   r   r   r9   s    r   _asdictr     s    s4==$/00r   c                 h    | j                         }|j                  |        | j                  di |S )Nr;   )r   updater   )r   r   currents      r   _replacer     s-    llnGNN44>>$G$$r   c                      y r   r;   )rE   r   s     r   r   r     s     	r   )NN)!_common	_constantr   sysr   __all__r`   r	   rY   r+   r   rl   rB   	_AddendumrH   globalsnamedtuple_dictrm   r   r   r:   r   r   r   r   r   r   r   r   r   r   resolver   r;   r   r   <module>r      s    $  	\
"<[ "<J@V @.D D
l4T l4\	 ''vjAa9
 1 1B . . J J X X  
 )  ) *  * )  ) '  ' 1 1 % %
 	  	 L6*o6M6M6OP
r   