a
    _g                     @   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ee ee ee ee eeegef edf eeeef  ee eeegef  eeef d	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   s   dS )NT _r   r   b/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/dataclasses_json/cfg.py<lambda>       zExclude.<lambda>ALWAYSc                 C   s   dS )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)encodersZdecodersZ	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	   ZCAMELr   ZKEBABr   ZSNAKEr
   ZPASCALr   r   r   r   r%   2   s   r%   )encoderdecodermm_fieldletter_case	undefined
field_nameexclude)	metadatar&   r'   r(   r)   r*   r+   r,   returnc                C   s   | d u ri } |  di }|d ur(||d< |d ur8||d< |d urH||d< |d ur|d urrt|||fdd}	n|fdd}	|	}|d ur||d< |d urt|trtt| std	d
 tD }
t	d|
 t|  }||d< |d ur||d< | S )NZdataclasses_jsonr&   r'   r(   c                 S   s   ||S r!   r   )r   Z_letter_case_field_namer   r   r   overrideT   s    zconfig.<locals>.overridec                 S   s   |S r!   r   )r   r/   r   r   r   r0   X   s    r)   c                 s   s   | ]}|j V  qd S r!   )name).0actionr   r   r   	<genexpr>c   r   zconfig.<locals>.<genexpr>z3Invalid undefined parameter action, must be one of r*   r,   )

setdefault	functoolswraps
isinstancestrhasattrr   upperlistr   )r-   r&   r'   r(   r)   r*   r+   r,   Zlib_metadatar0   Zvalid_actionsr   r   r   config9   s>    
r=   )N)r6   enumr   typingr   r   r   r   r   Zmarshmallow.fieldsr   ZMarshmallowFieldZdataclasses_json.stringcaser	   r
   r   r   Zdataclasses_json.undefinedr   r   r   r   r    Zglobal_configr%   dictr9   r   r=   r   r   r   r   <module>   s8   


