
    ch(                     F   S SK r S SKrS SKrS SKrS SKrS SKJrJr  S SKJrJ	r	J
r
JrJrJrJrJr  S SKJr  S SKJr  S SKJr  \
\\4   r\
\\4   r " S S\ R2                  5      r " S	 S
\5      r\\   r " S S\5      r " S S\5      r " S S\5      r " S S\5      r g)    N)Fieldfields)AnyCallableDictOptionalTupleUnionTypeget_type_hints)Enum)ValidationError)CatchAllVarc                       \ rS rSr\\R                  S\\\4   S\\	\4   4S j5       5       r
\S\\\4   S\\\4   4S j5       r\S\\\4   4S j5       r\S\4S j5       r\S\S\\\4   4S j5       rS	rg
)_UndefinedParameterAction   kvsreturnc                     g)z5
Return the parameters to initialize the class with.
N clsr   s     R/var/www/html/shao/venv/lib/python3.13/site-packages/dataclasses_json/undefined.pyhandle_from_dict*_UndefinedParameterAction.handle_from_dict   s     	    c                     U$ )z?
Return the parameters that will be written to the output dict
r   )objr   s     r   handle_to_dict(_UndefinedParameterAction.handle_to_dict   s	    
 
r   c                     0 $ )z>
Return the parameters that will be added to the schema dump.
r   r   s    r   handle_dump%_UndefinedParameterAction.handle_dump"   s	    
 	r   c                     U R                   $ N)__init__r"   s    r   create_init%_UndefinedParameterAction.create_init)   s    ||r   c                    [        U 5      nU Vs/ sH  o3R                  PM     nnUR                  5        VVs0 sH  u  pVXT;  d  M  XV_M     nnnUR                  5        VVs0 sH  u  pVXT;   d  M  XV_M     nnnX4$ s  snf s  snnf s  snnf )z<
Returns a 2 dictionaries: defined and undefined parameters
)r   nameitems)	r   r   class_fieldsfieldfield_nameskvunknown_given_parametersknown_given_parameterss	            r   _separate_defined_undefined_kvs9_UndefinedParameterAction._separate_defined_undefined_kvs-   s     c{/;<|ezz|<58YY[ $:[TQ$%$8 %)AD[  $:3699; "4;41"#"2 #'!$; "4%?? =$:"4s   A=
BB#
B1Br   N)__name__
__module____qualname____firstlineno__staticmethodabcabstractmethodr   r   strr   r   r#   r   r(   r	   KnownParametersUnknownParametersr4   __static_attributes__r   r   r   r   r      s    4S> d38n    c3h DcN   DcN   H   @$ @/#445@ @r   r   c                   >    \ rS rSrSr\S\S\\\4   4S j5       r	Sr
g)_RaiseUndefinedParameters<   zk
This action raises UndefinedParameterError if it encounters an undefined
parameter during initialization.
r   r   c                 j    [         R                  XS9u  p#[        U5      S:  a  [        SU 35      eU$ )Nr   r   z,Received undefined initialization arguments )r   r4   lenUndefinedParameterError)r   r   knownunknowns       r   r   *_RaiseUndefinedParameters.handle_from_dictB   sN     &EE F " 	 w<!)>wiHJ Jr   r   N)r6   r7   r8   r9   __doc__r:   r   r=   r   r   r@   r   r   r   rB   rB   <   s1    
 4 DcN  r   rB   c                   V    \ rS rSrSr\S\S\\\4   4S j5       r	\S\
4S j5       rSrg)	_IgnoreUndefinedParametersP   z
This action does nothing when it encounters undefined parameters.
The undefined parameters can not be retrieved after the class has been
created.
r   r   c                 0    [         R                  XS9u  p#U$ )Nr   )r   r4   )r   r   r3   _s       r   r   +_IgnoreUndefinedParameters.handle_from_dictW   s+     &EE F " 	" &%r   c                    ^ ^^ T R                   m[        R                  " T5      m[        R                  " T R                   5      UU U4S j5       nU$ )Nc                 R  > [         R                  TU5      u  p4[        T
R                  5      S-
  nU[        U5      -
  nUS U nT
R                  " U /UQ70 UD6nUR                  5         UR                  nUR                  SS 5        [        R                  TU5      n	T" U 40 U	D6  g )N   self)
_CatchAllUndefinedParametersr4   rE   
parametersbind_partialapply_defaults	argumentspoprL   r   )rT   argskwargsknown_kwargsrO   num_params_takeablenum_args_takeablebound_parametersrY   final_parametersinit_signaturer   original_inits             r   _ignore_init<_IgnoreUndefinedParameters.create_init.<locals>._ignore_initc   s     -LL! L #&))#+-.#/ 3c,6G G**+D-::4  K$  K=I K++-(22IMM&$'*;;CK $3"23r   r'   inspect	signature	functoolswraps)r   rd   rb   rc   s   ` @@r   r(   &_IgnoreUndefinedParameters.create_init^   sC     **=9		&	4 
'	4& r   r   N)r6   r7   r8   r9   rJ   r:   r   r=   r   r   r   r(   r@   r   r   r   rL   rL   P   sL     &4 &DcN & & H  r   rL   c                       \ rS rSrSr " S S5      r\S\S\\\	4   4S j5       r
\S\S\	4S	 j5       r\S\\	\	4   S\\	\	4   4S
 j5       r\S\\	\	4   4S j5       r\S\4S j5       r\S\4S j5       rSrg)rU   z   z
This class allows to add a field of type utils.CatchAll which acts as a
dictionary into which all
undefined parameters will be written.
These parameters are not affected by LetterCase.
If no undefined parameters are given, this dictionary will be empty.
c                       \ rS rSrSrg)/_CatchAllUndefinedParameters._SentinelNoDefault   r   N)r6   r7   r8   r9   r@   r   r   r   _SentinelNoDefaultro      s    r   rq   r   r   c                 :   [         R                  XS9u  p#[        R                  U S9nUR                  U;   a  [        X$R                     [        5      n[        R                  US9nXbUR                     :H  nU(       a  [        U5      S:X  a  UnO{U(       a  [        U5      S:  a  UnObU(       a/  X$R                     n[        U5      S:  a  UR                  U5        O,SUR                   SX$R                      S3n	[        U	5      eUnXUR                  '   U$ )Nr   r   )catch_all_fieldr   z9Received input field with same name as catch-all field: 'z': '')r   r4   rU   _get_catch_all_fieldr+   
isinstancedict_get_defaultrE   updaterF   )
r   r   rG   rH   rt   already_parseddefault_valuereceived_defaultvalue_to_writeerror_messages
             r   r   -_CatchAllUndefinedParameters.handle_from_dict   s-   2,,,> 	6KK L  5('.B.B(CTJN8EE / F 1M,o6J6J0KK  CLA$5!.!c'lQ&6!(!&';';!<w<!#"))'2#$$3$8$8#9 :$$)*>*>$?#@!C .m<<$N&4o""#r   rt   c                 "   [        U R                  [        R                  5      (       + n[        U R                  [        R                  5      (       + n[
        R                  nU(       a  U R                  nU$ U(       a  U R	                  5       nU$ r&   )rw   defaultdataclasses_MISSING_TYPEdefault_factoryrU   rq   )rt   has_defaulthas_default_factoryr|   s       r   ry   )_CatchAllUndefinedParameters._get_default   s     %_%<%<%0%>%>@ @ #-_-L-L-8-F-F#H H
 Kg 	 +33M  ! ,;;=Mr   c                     [         R                  U R                  5      nUR                  UR                  5      n[        U[        5      (       a  UR                  U5        U$ r&   )rU   rv   	__class__rZ   r+   rw   rx   rz   )r   r   rt   undefined_parameterss       r   r   +_CatchAllUndefinedParameters.handle_to_dict   sR     )==cmmL 	"ww';';<*D11JJ$&
r   c                 R    [         R                  U S9n[        XR                  5      $ )Nrs   )rU   rv   getattrr+   )r   rt   s     r   r#   (_CatchAllUndefinedParameters.handle_dump   s,    6KK L s0011r   c                    ^ ^^ T R                   m[        R                  " T5      m[        R                  " T R                   5      UU U4S j5       nU$ )Nc                   > [         R                  TU5      u  p4[        TR                  5      S-
  n[         R	                  T5      R
                  U;  a  US-  nU[        U5      -
  nUS U UUS  pqTR                  " U /UQ70 UD6n[        U5       V	V
s0 sH  u  pSU	 3U
_M     nn	n
UR                  nUR                  U5        UR                  U5        UR                  SS 5        [         R                  TU5      nT" U 40 UD6  g s  sn
n	f )NrS   _UNKNOWNrT   )rU   r4   rE   rV   rv   r+   rW   	enumeraterY   rz   rZ   r   )rT   r[   r\   r]   unknown_kwargsr^   r_   unknown_argsr`   ir1   rY   ra   rb   r   rc   s                r   _catch_all_initA_CatchAllUndefinedParameters.create_init.<locals>._catch_all_init   sH    -LL! )L #&))#+-.#/+@@\2#q(# 3c,6G G!%&8'8!94;L;M<O,-::4  K$  K=I K &l353 37!hqcNA-3  5(22I\*^,MM&$';LLY  $3"235s   D	rf   )r   r   rb   rc   s   ` @@r   r(   (_CatchAllUndefinedParameters.create_init   sC     **=9		&	4 
'	44 r   c                   ^ [        [        R                  U R                     5      n[	        XS9m[        [        U4S j[        U 5      5      5      n[        U5      nUS:X  a  [        S5      eUS:  a  [        SU S35      eUS   $ )N)globalnsc                 >   > TU R                      [        [           :H  $ r&   )r+   r   r   )ftypess    r   <lambda>C_CatchAllUndefinedParameters._get_catch_all_field.<locals>.<lambda>   s    U166]h{.CCr   r   z2No field of type dataclasses_json.CatchAll definedrS   z$Multiple catch-all fields supplied: .)
varssysmodulesr7   r   listfilterr   rE   rF   )r   cls_globalscatch_all_fieldsnumber_of_catch_all_fieldsr   s       @r   rv   1_CatchAllUndefinedParameters._get_catch_all_field   s    3;;s~~67s9CVC[QS%()9%:"%*)DF F'!+)6-.a12 2 $A&&r   r   N)r6   r7   r8   r9   rJ   rq   r:   r   r=   r   r   r   ry   r   r#   r   r(   rv   r@   r   r   r   rU   rU   z   s      !4 !DcN ! !F e   6 c3h DcN   2DcN 2 2
 H  B 'U ' 'r   rU   c                   $    \ rS rSrSr\r\r\	r
Srg)	Undefinedi
  zj
Choose the behavior what happens when an undefined parameter is encountered
during class initialization.
r   N)r6   r7   r8   r9   rJ   rU   INCLUDErB   RAISErL   EXCLUDEr@   r   r   r   r   r   
  s     +G%E(Gr   r   c                       \ rS rSrSrSrg)rF   i  zE
Raised when something has gone wrong handling undefined parameters.
r   N)r6   r7   r8   r9   rJ   r@   r   r   r   rF   rF     s     	r   rF   )!r;   r   ri   rg   r   r   r   typingr   r   r   r   r	   r
   r   r   enumr   marshmallow.exceptionsr   dataclasses_json.utilsr   r=   r>   r?   ABCr   rB   CatchAllrL   rU   r   rF   r   r   r   <module>r      s    
    
 % T T T  2 .sCx.cN '@ '@T 9 " K '!: 'TM'#< M'`) )	o 	r   