
    i:                     `   S r SSKrSSKrSSKrSSKJrJrJr  SSKJr  SSK	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJr  SSKJrJr  SSKJr  Sr\" S	5      r\" S
\S9r\" S5      r \
(       a  \\RB                  \      r"O\\RB                     r"Sr#Sr$Sr% " S S5      r&\&" 5       r' " S S\5      r(\ " S S5      5       r)\ " S S\\   5      5       r*S\\   S\*\   4S jr+S\\   S\\,   4S jr-S\\   S\*\   4S jr. " S S5      r/S \S\\,\4   4S! jr0\S"S"S"S"S"S"S#.S$\S%\1S&\1S'\1S(\\1   S\\(   S)\\\\4      S\4S* jj5       r2\S"S"S"S"S"S"S#.S+\/ \4   S%\1S&\1S'\1S(\\1   S\\(   S)\\\\4      S\4S, jj5       r2\S"S"S"S"S"S"S#.S%\1S&\1S'\1S(\\1   S\\(   S)\\\\4      S\4S- jj5       r2\\S.S.S.SSSS/.S$\S+\S%\1S&\1S'\1S(\\1   S\\(   S)\\\\4      S\4S0 jjr2\S\\   S\\   4S1 j5       r3\S.S.S.S2S2S3.S%\1S&\1S4\1S5\1S6\1S\\\   /\\   4   4S7 jj5       r3\" \RB                  \Rd                  \24S89 SJS.S.S.S2S2S3.S\\\      S%\1S&\1S4\1S5\1S6\1S\\\   \\\   /\\   4   4   4S9 jjj5       r3S\\   S%\1S&\1S4\1S5\1S6\1S\\   4S: jr4SS;.S<\"S=\\\,\54      S\S"\,4   4S> jjr6SS;.S<\"S=\\\,\54      S\S"\74   4S? jjr8SS;.S<\"S=\\\,\54      S\S"\,4   4S@ jjr9SA\,SB\\,   S$\,S\,4SC jr:SS\R                  SD.SA\,SE\\,   SF\\,   S=\\\,\54      SG\\\,\54      SH\S\S"\4   4SI jjr;g)Kz
Tools that create objects representing API results.

This module is internal to the package.
End users should not import this module directly.
    N)MISSING	dataclassis_dataclass)Enum)TYPE_CHECKINGAnyCallableDictGenericListMappingMutableMappingOptionalSequenceTypeTypeVarUnionoverload)Protocoldataclass_transform)MapperError)	ConvertFnObjectMapperinspect_raw_datadeclarativefieldTE)boundKconvert_aioqbt_raw_data_aioqbt_type_infoc                   "    \ rS rSrS\4S jrSrg)_MissingRepr;   returnc                     g)z$return ``MISSING`` when format/printr    selfs    :/app/mltbenv/lib/python3.13/site-packages/aioqbt/mapper.py__repr___MissingRepr.__repr__<   s        r)   N)__name__
__module____qualname____firstlineno__strr-   __static_attributes__r)   r/   r,   r%   r%   ;   s    # r/   r%   c                   8    \ rS rSrSrS\S\\\4   S\4S jrSrg)	r   D   z(
Convert a simple value to complex one.
valuecontextr'   c                     g Nr)   )r+   r8   r9   s      r,   __call__ConvertFn.__call__I   s    r/   r)   N)	r0   r1   r2   r3   __doc__r   r   r<   r5   r)   r/   r,   r   r   D   s*    c GCH,= # r/   r   c                   J    \ rS rSr% \\   \S'   \\S'   \\/ \4      \S'   Sr	g)
_FieldInfoM   r!   defaultdefault_factoryr)   N)
r0   r1   r2   r3   r   r   __annotations__r   r	   r5   r)   r/   r,   r@   r@   M   s&    i  Lhr3w/00r/   r@   c                   J    \ rS rSr% \\\4   \S'   \\   \S'   \\   \S'   Sr	g)	_TypeInfoT   fields
slot_namesdefault_fieldsr)   N)
r0   r1   r2   r3   r   r4   r@   rD   r   r5   r)   r/   r,   rF   rF   T   s%    CO$$SM!r/   rF   rtyper'   c                      [        U [        5      $ ! [         a     Of = f[        U 5      n[	        U [        U5        SS KnUR                  [        S5      5        U$ )Nr   zUse @declarative() instead)getattrATTR_TYPE_INFOAttributeError_resolve_type_infosetattrwarningswarnDeprecationWarning)rK   inforR   s      r,   _find_type_inforV   [   sY    un--  e$DE>4(MM$%ABCKs    
clsc                    [        U [        5      (       d   e/ nU R                   HZ  n[        USS5      n[        U[        5      (       a  U4nU H,  nUR                  S5      (       a  M  UR                  U5        M.     M\     U$ )N	__slots__r)   _)
isinstancetype__mro__rM   r4   
startswithappend)rW   rI   baseslotsnames        r,   _resolve_slot_namesrc   k   s     c4    J k2.eS!!HEDs##d#	   r/   c                    [        U 5      (       d  [        U  S35      e[        U 5      n0 n/ n[        R                  " U 5       GH  nUR
                  nUR                  nUR                  S5      (       a  M4  UR                  [        5      nUb   [        U5      (       d  [        SU< S35      eUR                  nUR                  [        L a  SOUR                  n	U	b"  [        U	5      (       d  [        U< SU	< 35      eU[        La  U	b  [        U< S35      eU[        Ld  U	b  UR                  U5        [        UUU	S9X%'   GM     [!        UUUS	9$ )
z3
Gather dataclass information used by ObjectMapper
z must be a dataclassrZ   Nz'convert' functon for field z must be a callablez1 expect a callable as default_factory instead of z1 cannot be given both default and default_factory)r!   rB   rC   )rH   rI   rJ   )r   
ValueErrorrc   dataclassesrH   rb   metadatar^   get
_META_CONVcallablerB   rC   r   r_   r@   rF   )
rW   rI   rH   rJ   r   f_name
f_metadataconvrB   rC   s
             r,   rP   rP      s]    C5 4566$S)J$&F "N##C(^^
S!!$.NN:$>HTNN;F:EXYZZ--"'"7"77"B$H]H]&x/H/H*MoM`a  '!o&Az)Z[\\G#'B!!&)#+
1 )< % r/   c            
           \ rS rSrSrS\\   S\\\	4   S\\	\	4   S\4S jr
S\\   S\\\\	4      S\\	\	4   S\\   4S jrS\\   S\\\\\	4   4   S\\	\	4   S\\\4   4S	 jrS
rg)r      z$
Map JSON-result to Python objects.
rK   datar9   r'   c                    [        U5      n[        U5      nUR                  5        H  u  pgUR                  R	                  U5      nUc<  UR                  5       (       a  UR                  S5      (       d  MP  [        SU< 35      eUR                  c  Mn   UR                  Xs5      XV'   M     UR                   Hf  nXe;   a  M
  UR                  U   nUR                  [        La  UR                  XV'   M<  UR                  b  UR                  5       XV'   M]  [        S5      e   / n
UR                   H+  nXe;   d  M
  U
R!                  XeR#                  U5      45        M-     UR%                  U5      nU(       a  ['        U5      R)                  U5        U
 H  u  pg[+        XU5        M     [+        U[,        U5        U$ ! [         a  n	[        SU< SU< 35      U	eSn	A	ff = f)z!
Create an object from its data.
NrZ   zBad field name: zCannot convert: =unreachable)rV   dictitemsrH   rh   isidentifierr^   r   r!   	ExceptionrJ   rB   r   rC   AssertionErrorrI   r_   pop__new__varsupdaterQ   ATTR_RAW_DATA)r+   rK   rp   r9   rU   	dict_datakeyr8   
field_infoex	slot_datainsts               r,   create_objectObjectMapper.create_object   s    u%J	 $//+JC-J!##%%cnnS.A.A!$4SG"<==!!-T%/%7%7%GIN , &&CS)J!!0!+!3!3	++7!+!;!;!=	$]33 ' 	??C  #}}S'9!:; #
 }}U#Ji(#JCDu% $ 	mT*A ! T%(8q	&JKQSSTs   F<<
GGGc                 t    / n[        U5       H&  u  pVUR                  U R                  XU5      5        M(     U$ )z/
Create a list of objects from a list of data.
)	enumerater_   r   )r+   rK   rp   r9   resultiitems          r,   create_listObjectMapper.create_list   s9      GAMM$,,U'BC ' r/   c                 d    0 nUR                  5        H  u  pVU R                  XU5      XE'   M     U$ )z:
Create a dict whose values are mapped from another dict.
)ru   r   )r+   rK   rp   r9   r   r   r8   s          r,   create_dictObjectMapper.create_dict  s6     **,JC,,U7CFK ' r/   r)   N)r0   r1   r2   r3   r>   r   r   r   r4   r   r   r   r   r   r    r
   r   r5   r)   r/   r,   r   r      s    9Aw9 c3h9 c"	9
 
9vAw wsCx() c"	
 
a Aw ac**+ c"	
 
adr/   r   instancec                 N     [        U [        5      $ ! [         a    [        Sef = f)z6Return the raw dict from which the instance is createdN)rM   r}   rO   LookupError)r   s    r,   r   r     s+    $x// $t#$s    $.initreprcomparehashr!   rg   rB   r   r   r   r   rg   c                     g r;   r)   )rB   r   r   r   r   r!   rg   s          r,   r   r          	r/   rC   c                     g r;   r)   )rC   r   r   r   r   r!   rg   s          r,   r   r   *  r   r/   c                     g r;   r)   r   s         r,   r   r   7  s     r/   TrB   rC   r   r   r   r   r!   rg   c           	         Uc  0 nO[        U5      nUb  SU;   a  [        S5      eXgS'   U(       d  SnU[        L a  [        R                  " U UUUUUS9$ U [        L a  [        R                  " UUUUUUS9$ [        S5      e)z
Field specifier of :func:`@declarative <.declarative>`.

This is implemented as a wrapper of :func:`dataclasses.field` and, thus, a replacement.
Nr!   z6Cannot specify 'convert' in both argument and metadata)rB   r   r   r   r   rg   )rC   r   r   r   r   rg   z/Cannot specify both default and default_factory)rt   re   r   rf   r   r   s           r,   r   r   C  s    ( > UVV%'!  
 	
 
G	  +
 	
 JKKr/   c                     g r;   r)   )rW   s    r,   r   r   z  s    *-r/   Fr   r   equnsafe_hashfrozenr   r   r   c                     g r;   r)   r   s        r,   r   r   ~  s     $'r/   )field_specifiersc                r   ^^^^^ S[         [           S[         [           4UUUUU4S jjnU c  U$ U" U 5      $ )z3
Decorate a class to behave similarly to dataclass
rW   r'   c           	      \   > [        U TTTTTS9n [        U 5      n[        U [        U5        U $ )Nr   )_process_classrP   rQ   rN   )rW   	type_infor   r   r   r   r   s     r,   decoratedeclarative.<locals>.decorate  s<    #
 's+	^Y/
r/   )r   r   )rW   r   r   r   r   r   r   s    ````` r,   r   r     s9    (d1g $q'   {C=r/   c          	        ^ ^ S Vs0 s H  of[        T US5      _M     snm[        R                  " UUUUUS9nU" T 5      m S[        S[        4U U4S jjn[        R
                  " T 5      n	[        R                  R                  T R                  5      n
U
c  0 O
[        U
5      nU" S5      (       a  [        T S[        XS95        U" S	5      (       a  [        T S	[        XS95        U" S
5      (       a  [        T S
[        XS95        T $ s  snf )zM
Fix AttributeError in __eq__, __hash__, __repr__ due to missing attributes.
)__eq____hash__r-   Nr   rb   r'   c                 D   > TU    n[        TU S 5      nUS L=(       a    XL$ r;   )rM   )rb   oldnewrW   old_methodss      r,   
is_changed"_process_class.<locals>.is_changed  s,    $c4&$13>1r/   r   globalsr   r-   )rM   rf   r   r4   boolrH   sysmodulesrh   r1   r{   rQ   _eq_fn_hash_fn_repr_fn)rW   r   r   r   r   r   swrapr   rH   moduler   r   s   `           @r,   r   r     s    $ 6XX5Wgc1d++5WXK  D s)C2 2 2 2
 $F[[__S^^,FNbVG(Xvf>?*Z&!BC*Z&!BCJ; Ys   D
r   rH   r   c                    S[         R                  0nSnU  Vs/ s H!  oDR                  (       d  M  UR                  PM#     nn[	        SUS5      n[	        SUS5      nSSU SU 3S/n[        S	X8X!S
9$ s  snf )Nr   )r+   otherr+   r   zif type(self) is type(other):z return z == zreturn NotImplementedr   localsr   )rf   r   r   rb   _getattr_tuple_str
_create_fn)	rH   r   r   argsfattrs
self_tupleother_tuplebodys	            r,   r   r     s     	;&&!F D#1VyyVQVVVE1#FE9=J$WeY?K'
:,d;-0D h6KK 2s
   A3A3c                   S[         R                  0nSnU  Vs/ s HB  oDR                  c  UR                  (       d  M"  OUR                  (       d  M6  UR                  PMD     nn[        SUS5      nSU S3/n[        SX7X!S9$ s  snf )Nr   r*   r+   zreturn hash()r   r   )rf   r   r   r   rb   r   r   )rH   r   r   r   r   r   r   r   s           r,   r   r     s     	;&&!F D#QVVV^		V	VQVVVEQ#FE9=J:,a()Dj$VMM	 Rs   !BBBc          
         S[         0nSnSR                  U  Vs/ s H3  oDR                  (       d  M  SUR                   SUR                  < S3PM5     sn5      nSU S3/n[	        S	X6X!S
9nSSKJn  U" 5       n	U	" U5      $ s  snf )NMISSING_REPRr*     z={getattr(self, z, MISSING_REPR)!r}zreturn f"<{type(self).__name__}z>"r-   r   r   )recursive_repr)r   joinr   rb   r   reprlibr   )
rH   r   r   r   r   txtr   fnr   r   s
             r,   r   r     s     	!F D
''MS^VW]W]	C1QVVH%affZ/B	CV^C ,C53D 
J6	KB&D8O 	_s
   B"Brb   r   c                 ~    U(       d  gSSR                  U Vs/ s H  nSU  SU< SU S3PM     sn5       S3$ s  snf )Nz()(,zgetattr(, r   z,))r   )rb   r   rB   r   s       r,   r   r   "  sJ    
 sxxuMu!8D6A57)1=uMNOrRRMs   :
)r   r   return_typer   r   r   r   c                |   Uc  0 nSU;  a	  [         US'   SnU[        R                  La  XTS'   SnSR                  U5      nSR                  U Vs/ s H  nSU 3PM
     sn5      n	SU  S	U S
U SU	 3n
SR                  UR	                  5       5      nSU SU
 SU  3n0 n[        XU5        US   " S0 UD6nU$ s  snf )NBUILTINSr   _return_typez->_return_typer   
z  z def r   r   z:
zdef _create_fn(z):
z	
 return r   r)   )builtinsrf   r   r   keysexec)rb   r   r   r   r   r   return_annotationargs_txtr   body_txtr   
local_varssourcensr   s                  r,   r   r   -  s     ~%z+---!,~,yyHyyD1DqBqc(D12H $q
!$5#6c(
DC6;;=)Jzl$se:dVDFB"l+5f5BI 2s   B9r;   )<r>   r   rf   r   r   r   r   enumr   typingr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   typing_extensionsr   r   
aioqbt.excr   __all__r   r   r    Field_FieldSequenceri   r}   rN   r%   r   r   r@   rF   rV   r4   rc   rP   r   r   r   r   r   r   objectr   intr   r   r   r   r)   r/   r,   <module>r      s     
 8 8    " < " CLCtCL k//45Nk//0N
"$  ~  1 1 1 "
 " "47 y|  T!W c 2-DG -	! -`^ ^B$s $tCH~ $ 
 #&,/		 	 		
 	 4.	 i 	 wsCx()	 	 
	 
 #&,/	b!e_	 	 		
 	 4.	 i 	 wsCx()	 	 
	 
 #&,/
  	
 4. i  wsCx() 	 
 "#',04L4L 4L 	4L
 4L 4L 4.4L i 4L wsCx()4L 	4Ln 
 -T!W -a - 
 - 
 '
' ' 		'
 ' ' tAwia !' 
'  " 	$q'	  	
 	   47Hd1gYQ/001D/	a/ / 	/
 	/ / / 
!W/j ,0LL d3;'(L c3h	L0 ,0NN d3;'(N c3h	N& ,0 d3;'( c3h	.S
SC=S S 		S  ,048"**

3- 3-
 d3;'( ^CK01  c3hr/   