o
    *if                     @   s.  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	 d	ZG d
d dZe ZG d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dZdS )    N)Enum)CallableDictOptionalTypeVarUnion)Field)	camelcase
pascalcase	snakecase
spinalcase)	UndefinedUndefinedParameterErrorTc                   @   sF   e Zd ZU dZdd Zeegef ed< dd Z	eegef ed< dS )Excludezd
    Pre-defined constants for exclusion. By default, fields are configured to
    be included.
    c                 C      dS )NT _r   r   M/var/www/html/corbot_env/lib/python3.10/site-packages/dataclasses_json/cfg.py<lambda>       zExclude.<lambda>ALWAYSc                 C   r   )NFr   r   r   r   r   r      r   NEVERN)
__name__
__module____qualname____doc__r   r   objectbool__annotations__r   r   r   r   r   r      s   
 r   c                   @   s   e Zd Zdd ZdS )_GlobalConfigc                 C   s   i | _ i | _i | _d S N)encodersdecoders	mm_fields)selfr   r   r   __init__   s   z_GlobalConfig.__init__N)r   r   r   r'   r   r   r   r   r!      s    r!   c                   @   s   e Zd ZeZeZeZe	Z
dS )
LetterCaseN)r   r   r   r	   CAMELr   KEBABr   SNAKEr
   PASCALr   r   r   r   r(   2   s
    r(   )encoderdecodermm_fieldletter_case	undefined
field_nameexcludemetadatar-   r.   r/   r0   r1   r2   r3   returnc                C   s   | d u ri } |  di }|d ur||d< |d ur||d< |d ur$||d< |d urA|d ur9t|||fdd}	n|fdd}	|	}|d urI||d< |d urst|trott| sitd	d
 tD }
t	d|
 t|  }||d< |d ur{||d< | S )Ndataclasses_jsonr-   r.   r/   c                 S   s   ||S r"   r   )r   _letter_case_field_namer   r   r   overrideT   s   zconfig.<locals>.overridec                 S   s   |S r"   r   )r   r8   r   r   r   r9   X   s   r0   c                 s   s    | ]}|j V  qd S r"   )name).0actionr   r   r   	<genexpr>c   s    zconfig.<locals>.<genexpr>z3Invalid undefined parameter action, must be one of r1   r3   )

setdefault	functoolswraps
isinstancestrhasattrr   upperlistr   )r4   r-   r.   r/   r0   r1   r2   r3   lib_metadatar9   valid_actionsr   r   r   config9   s>   
rH   r"   )r?   enumr   typingr   r   r   r   r   marshmallow.fieldsr   MarshmallowFielddataclasses_json.stringcaser	   r
   r   r   dataclasses_json.undefinedr   r   r   r   r!   global_configr(   dictrB   r   rH   r   r   r   r   <module>   sH    
	

