
    >|h                     f   d dl Z d dlmZ d dlmZmZmZmZmZ d dl	m
Z d dlmZmZmZmZ d dlmZmZ  ed      Z G d d	      Z G d
 d      Z e       Z G d de      Zddddddddddee   dee   dee   dee   deeegef   edf   deeeef      dee   deeegef      deeef   fdZy)    N)Enum)CallableDictOptionalTypeVarUnion)Field)	camelcase
pascalcase	snakecase
spinalcase)	UndefinedUndefinedParameterErrorTc                   J    e Zd ZU dZd Zeegef   ed<   d Z	eegef   ed<   y)Excludezd
    Pre-defined constants for exclusion. By default, fields are configured to
    be included.
    c                      y)NT _s    S/var/www/html/test/engine/venv/lib/python3.12/site-packages/dataclasses_json/cfg.py<lambda>zExclude.<lambda>           ALWAYSc                      y)NFr   r   s    r   r   zExclude.<lambda>   r   r   NEVERN)
__name__
__module____qualname____doc__r   r   objectbool__annotations__r   r   r   r   r   r      s3     (6FHfXt^$5&5E8VHdN#5r   r   c                       e Zd Zd Zy)_GlobalConfigc                 .    i | _         i | _        i | _        y N)encodersdecoders	mm_fields)selfs    r   __init__z_GlobalConfig.__init__   s    EGEG  	r   N)r   r   r    r-   r   r   r   r&   r&      s    r   r&   c                       e Zd ZeZeZeZe	Z
y)
LetterCaseN)r   r   r    r
   CAMELr   KEBABr   SNAKEr   PASCALr   r   r   r/   r/   2   s    EEEFr   r/   )encoderdecodermm_fieldletter_case	undefined
field_nameexcludemetadatar4   r5   r6   r7   r8   r9   r:   returnc                   | i } | j                  di       }|||d<   |||d<   |||d<   |(|t        j                  |      ||fd       }	n|fd}	|	}|||d<   |nt        |t              rYt        t        |j                               s$t        d t        D              }
t        d	|
       t        |j                            }||d
<   |||d<   | S )Ndataclasses_jsonr4   r5   r6   c                      ||      S r(   r   )r   _letter_case_field_names      r   overridezconfig.<locals>.overrideT   s    #K00r   c                     |S r(   r   )r   rA   s     r   rB   zconfig.<locals>.overrideX   s    ""r   r7   c              3   4   K   | ]  }|j                     y wr(   )name).0actions     r   	<genexpr>zconfig.<locals>.<genexpr>c   s     $IVV[[$Is   z3Invalid undefined parameter action, must be one of r8   r:   )

setdefault	functoolswraps
isinstancestrhasattrr   upperlistr   )r;   r4   r5   r6   r7   r8   r9   r:   lib_metadatarB   valid_actionss              r   configrS   9   s    &&'92>L")Y")Y#+Z "__[))4* 1 *1 )3 #&1]#i%9ioo&78 $$Iy$I I-&&3_67 7 ")//"34I$-[!")YOr   r(   )rJ   enumr   typingr   r   r   r   r   marshmallow.fieldsr	   MarshmallowFielddataclasses_json.stringcaser
   r   r   r   dataclasses_json.undefinedr   r   r   r   r&   global_configr/   dictrM   r#   rS   r   r   r   <module>r\      s      ; ; 85 5 ICL6 6 .  5 *.)-26HL8<'+485Xd^ 5 X&5 X&	5
 ./5 hucz2JDE5 uS)^455  }5 Xqc4i015 S$Y5r   