
    E#i<                    `    S SK Jr  S SKJrJrJr  S SKJrJrJ	r	  \" SSS9 " S S5      5       r
g	)
    )annotations)	dataclassfieldsmake_dataclass)DictOptionalTupleTF)frozeneqc                  x   ^  \ rS rSrSrU 4S jrSS jrS rSS jrSS jr	S r
S	 r\S
S.SS jj5       rSrU =r$ )TupleDataclass   z
Dataclass that behaves like a tuple at the same time. Used when data has defined order and names.
For instance in case of named tuples or function responses.
c                "   > [         TU ]  U5      $ N)super__getattribute__)selfitem	__class__s     y/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py__getattr__TupleDataclass.__getattr__   s     w'--    c                H    [        U 5      U   n[        XR                  5      $ r   )r   getattrname)r   r   fields      r   __getitem__TupleDataclass.__getitem__   s    tT"tZZ((r   c                .   ^  U 4S j[        T 5       5       $ )Nc              3  P   >#    U  H  n[        TUR                  5      v   M     g 7fr   )r   r   ).0r   r   s     r   	<genexpr>*TupleDataclass.__iter__.<locals>.<genexpr>   s     D|eejj))|s   #&)r   r   s   `r   __iter__TupleDataclass.__iter__   s    Dvd|DDr   c                    [        U 5      $ )z.
Creates a regular tuple from TupleDataclass.
)tupler%   s    r   as_tupleTupleDataclass.as_tuple   s     T{r   c                ~    [        U 5       Vs0 s H"  oR                  [        XR                  5      _M$     sn$ s  snf )z-
Creates a regular dict from TupleDataclass.
)r   r   r   )r   r   s     r   as_dictTupleDataclass.as_dict#   s2     DJ$<P<%

GD**55<PPPs   ):c                "    U R                  5       $ r   )r-   r%   s    r   _asdictTupleDataclass._asdict*   s    ||~r   c                    [        U[        5      (       a!  U R                  5       UR                  5       :H  $ U R                  5       U:H  $ r   )
isinstancer   r*   )r   others     r   __eq__TupleDataclass.__eq__-   s8    e^,,==?enn&666}}%''r   N)r   c                   [        U=(       d    SU R                  5        VVs/ s H  u  p#U[        U5      4PM     snn[        4SSS9nU" S0 U D6$ s  snnf )Nr   TF)r   basesr
   r    )r   itemstyper   )datar   keyvalueresult_classs        r   	from_dictTupleDataclass.from_dict2   sZ    %$$9=F:3S$u+&F!#
 #d## Gs   Ar9   )r   int)returnr	   )rC   r   )r<   r   r   zOptional[str]rC   r   )__name__
__module____qualname____firstlineno____doc__r   r   r&   r*   r-   r0   r5   staticmethodr@   __static_attributes____classcell__)r   s   @r   r   r      sD    .
)EQ(
 7; $ $r   r   N)
__future__r   dataclassesr   r   r   typingr   r   r	   r   r9   r   r   <module>rO      s4    " 9 9 ( ( $5!3$ 3$ "3$r   