
    9Cg0                    x   d dl mZ d dlZd dlmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlmZm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 eseZerddlmZ ddlmZm Z  dZ! G d d          Z" G d d          Z# ed'i dddddddddd ddddddddddddddd dd!d"d#dd$dd%dd&d'd(d"d)dd*dd+d,d-d.d/d0d1d0d2d3d4dd5dd6d7d8dd9dd:dd;d<d=dd>dd?dd@ddAddBdCdDddEddFd"Z$dQdKZ% e&ej'        (                                          Z)h dLZ*ddddd&ddd d)d4dM
Z+dRdPZ,dS )S    )annotationsN)contextmanager)TYPE_CHECKINGAnyCallablecast)core_schema)LiteralSelf   )AliasGenerator)
ConfigDictExtraValuesJsonDictJsonEncoderJsonSchemaExtraCallable)PydanticUserError)PydanticDeprecatedSince20)GenerateSchema)ComputedFieldInfo	FieldInfozGSupport for class-based `config` is deprecated, use ConfigDict instead.c                     e Zd ZU dZdZded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded <   d!ed"<   d#ed$<   ded%<   d&ed'<   d(ed)<   d*ed+<   d*ed,<   d-ed.<   ded/<   ded0<   d1ed2<   ded3<   ded4<   d5ed6<   d7ed8<   d9ed:<   ded;<   d<ed=<   ded><   d?ed@<   dedA<   dedB<   dCedD<   dEdFd\dJZed]dR            Ze	sd^dVZ
d_dYZdZ Zd[S )`ConfigWrapperzIInternal wrapper for Config which exposes ConfigDict items as attributes.)config_dictr   r   z
str | Nonetitleboolstr_to_lowerstr_to_upperstr_strip_whitespaceintstr_min_lengthz
int | Nonestr_max_lengthzExtraValues | Noneextrafrozenpopulate_by_nameuse_enum_valuesvalidate_assignmentarbitrary_types_allowedfrom_attributesloc_by_aliasz,Callable[[str], str] | AliasGenerator | Nonealias_generatorzCallable[[type], str] | Nonemodel_title_generatorz:Callable[[str, FieldInfo | ComputedFieldInfo], str] | Nonefield_title_generatorztuple[type, ...]ignored_typesallow_inf_nanz)JsonDict | JsonSchemaExtraCallable | Nonejson_schema_extraz&dict[type[object], JsonEncoder] | Nonejson_encodersstrictz0Literal['always', 'never', 'subclass-instances']revalidate_instanceszLiteral['iso8601', 'float']ser_json_timedeltaz Literal['utf8', 'base64', 'hex']ser_json_bytesval_json_bytesz'Literal['null', 'constants', 'strings']ser_json_inf_nanvalidate_defaultvalidate_returnztuple[str, ...]protected_namespaceshide_input_in_errorsdefer_buildz,tuple[Literal['model', 'type_adapter'], ...]experimental_defer_build_modezdict[str, object] | Noneplugin_settingsztype[GenerateSchema] | Noneschema_generator+json_schema_serialization_defaults_requiredz,Literal['validation', 'serialization', None]json_schema_mode_overridecoerce_numbers_to_strz"Literal['rust-regex', 'python-re']regex_enginevalidation_error_causeuse_attribute_docstringsz%bool | Literal['all', 'keys', 'none']cache_stringsTcheckconfig.ConfigDict | dict[str, Any] | type[Any] | NonerH   c               j    |rt          |          | _        d S t          t          |          | _        d S N)prepare_configr   r   r   )selfrI   rH   s      L/var/www/api/venv/lib/python3.11/site-packages/pydantic/_internal/_config.py__init__zConfigWrapper.__init__]   s8     	8-f55D#J77D    basestuple[type[Any], ...]	namespacedict[str, Any]kwargsreturnr   c                   t                      }|D ]<}t          |dd          }|r'|                    |                                           =|                    d          }|                    d          }|                    di           }	|	                    d          r|st          dd          |r|rt          dd	          |pt          |          }
|                    |
           t          |                                          D ]#}|t          v r|
                    |          ||<   $ | |          S )
a  Build a new `ConfigWrapper` instance for a `BaseModel`.

        The config wrapper built based on (in descending order of priority):
        - options from `kwargs`
        - options from the `namespace`
        - options from the base classes (`bases`)

        Args:
            bases: A tuple of base classes.
            namespace: The namespace of the class being created.
            kwargs: The kwargs passed to the class being created.

        Returns:
            A `ConfigWrapper` instance for `BaseModel`.
        model_configNConfig__annotations__z``model_config` cannot be used as a model field name. Use `model_config` for model configuration.zmodel-config-invalid-field-name)codez3"Config" and "model_config" cannot be used togetherzconfig-both)r   getattrupdatecopygetr   rM   listkeysconfig_keyspop)clsrR   rT   rV   
config_newbaserI   config_class_from_namespaceconfig_dict_from_namespaceraw_annotationsconfig_from_namespaceks               rO   	for_modelzConfigWrapper.for_modelc   sc   "  \\
 	1 	1DT>488F 1!!&++--000&/mmH&=&=#%.]]>%B%B"#--(92>>~.. 	7Q 	#r6   
 ' 	o+E 	o#$Y`mnnnn : inMh>i>i/000fkkmm$$ 	. 	.AK &

1
1s:rQ   namestrr   c                    	 | j         |         S # t          $ r2 	 t          |         cY S # t          $ r t          d|          d w xY ww xY w)NzConfig has no attribute )r   KeyErrorconfig_defaultsAttributeError)rN   rn   s     rO   __getattr__zConfigWrapper.__getattr__   s    X'-- X X XX*40000 X X X()LD)L)LMMSWWXXs    
A)AAAobjcore_schema.CoreConfigc           	     b   | j         }i d|                    d          p|o|j        d|                    d          d|                    d          d|                    d          d|                    d          d|                    d          d|                    d          d	|                    d	          d
|                    d
          d|                    d          d|                    d          d|                    d          d|                    d          d|                    d          d|                    d          d|                    d          d|                    d          |                    d          |                    d          |                    d          |                    d          |                    d          |                    d          d}t          j        di d |                                D             S )a  Create a pydantic-core config, `obj` is just used to populate `title` if not set in config.

        Pass `obj=None` if you do not want to attempt to infer the `title`.

        We don't use getattr here since we don't want to populate with defaults.

        Args:
            obj: An object used to populate `title` if not set in config.

        Returns:
            A `CoreConfig` object created from config.
        r   extra_fields_behaviorr#   r/   r%   r   r   r   r2   r4   r5   r6   r7   r)   r*   r3   r8   r"   r!   r;   rB   rC   rD   rF   )r!   r;   rB   rC   rD   rF   c                    i | ]
\  }}|||S rL    .0rl   vs      rO   
<dictcomp>z-ConfigWrapper.core_config.<locals>.<dictcomp>   s$    (f(f(f$!QXYXeAXeXeXerQ   rz   )r   r`   __name__r	   
CoreConfigitems)rN   ru   rI   core_config_valuess       rO   core_configzConfigWrapper.core_config   sb    !
VZZ((BS-AS\
#VZZ%8%8
 VZZ88
 

+= > >	

 #FJJ/E$F$F
 FJJ~66
 FJJ~66
 fjj**
 !&**-A"B"B
 fjj)9::
 fjj)9::
 

+= > >
 vzz*;<<
 FJJ~66
 #FJJ/E$F$F
  

+= > >!
" fjj)9::#
$ %jj)9::$*JJ/E$F$F%+ZZ0G%H%H"JJ~66&,jj1I&J&J#ZZ88/
 
 
4 %gg(f(f:L:R:R:T:T(f(f(fgggrQ   c                z    d                     d | j                                        D                       }d| dS )Nz, c              3  *   K   | ]\  }}| d |V  dS )=Nrz   r{   s      rO   	<genexpr>z)ConfigWrapper.__repr__.<locals>.<genexpr>   s0      HHtq!llQllHHHHHHrQ   zConfigWrapper())joinr   r   )rN   cs     rO   __repr__zConfigWrapper.__repr__   sB    IIHHt/?/E/E/G/GHHHHH$$$$$rQ   N)rI   rJ   rH   r   )rR   rS   rT   rU   rV   rU   rW   r   )rn   ro   rW   r   )ru   r   rW   rv   )r   
__module____qualname____doc__	__slots__r[   rP   classmethodrm   r   rt   r   r   rz   rQ   rO   r   r   #   s        SS I LLL!!!! AAAA7777UUUU####@@@@9999 LLLJJJJ333344444444====))))OOOO----11115555KKKK4444    """"8888`d 8 8 8 8 8 8 + + + [+\  	X	X 	X 	X 	X)h )h )h )hV% % % % %rQ   r   c                  J    e Zd ZdZd
dZedd            Zedd            Zd	S )ConfigWrapperStackz%A stack of `ConfigWrapper` instances.config_wrapperr   c                    |g| _         d S rL   _config_wrapper_stackrN   r   s     rO   rP   zConfigWrapperStack.__init__   s    ;I:J"""rQ   rW   c                    | j         d         S )Nr   )rN   s    rO   tailzConfigWrapperStack.tail   s    )"--rQ   !ConfigWrapper | ConfigDict | Nonec              #    K   |d V  d S t          |t                    st          |d          }| j                            |           	 d V  | j                                         d S # | j                                         w xY w)NFrG   )
isinstancer   r   appendrd   r   s     rO   pushzConfigWrapperStack.push   s      !EEEF.-88 	H*>GGGN")).999	-EEE&**,,,,,D&**,,,,s   A+ +BN)r   r   )rW   r   )r   r   )	r   r   r   r   rP   propertyr   r   r   rz   rQ   rO   r   r      sr        //K K K K . . . X. - - - ^- - -rQ   r   r   r   Fr   r   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   Tr+   r,   r-   r.   rz   r/   r0   r2   r3   neverr4   iso8601r5   utf8r6   r7   nullr8   r9   r:   )model_r;   r1   r<   r=   )modelr>   r?   r@   rA   rB   rC   z
rust-regexrD   rE   rF   rI   rJ   rW   r   c                     t                      S t           t                    s:t          j        t
          t                      fdt                     D              t          t                      }t          |           |S )zCreate a `ConfigDict` instance from an existing dict, a class (e.g. old class-based config) or None.

    Args:
        config: The input config.

    Returns:
        A ConfigDict object created from config.
    Nc                \    i | ](}|                     d           |t          |          )S )__)
startswithr]   )r|   rl   rI   s     rO   r~   z"prepare_config.<locals>.<dictcomp>$  s7    WWWAALLQUDVDVW!WVQ''WWWrQ   )
r   r   dictwarningswarnDEPRECATION_MESSAGEDeprecationWarningdirr   check_deprecated)rI   r   s   ` rO   rM   rM     s}     ~||fd## X)+=>>>WWWWVWWWz6**K[!!!rQ   >
   fields
json_dumps
json_loadsgetter_dictsmart_unionallow_mutationpost_init_callerror_msg_templatescopy_on_model_validationunderscore_attrs_are_private)
allow_population_by_field_nameanystr_loweranystr_strip_whitespaceanystr_upperkeep_untouchedmax_anystr_lengthmin_anystr_lengthorm_modeschema_extravalidate_allr   Nonec                   t           |                                 z  }t                                          |                                 z  }|s|rd t          |          D             }d |                                D             }d t          |          D             }d                    dg|z   |z             }t          j        |t                     dS dS )zjCheck for deprecated config keys and warn the user.

    Args:
        config_dict: The input config.
    c                *    i | ]}|t           |         S rz   )V2_RENAMED_KEYSr|   rl   s     rO   r~   z$check_deprecated.<locals>.<dictcomp>Q  s    TTTqQ*TTTrQ   c                $    g | ]\  }}d |d|S )* z has been renamed to rz   r{   s      rO   
<listcomp>z$check_deprecated.<locals>.<listcomp>R  s-    ^^^DAq???!??^^^rQ   c                    g | ]}d |d	S )r   z has been removedrz   r   s     rO   r   z$check_deprecated.<locals>.<listcomp>S  s$    ```16666```rQ   
z%Valid config keys have changed in V2:N)	V2_REMOVED_KEYSrb   r   sortedr   r   r   r   UserWarning)r   deprecated_removed_keysdeprecated_renamed_keys	renamingsrenamed_bulletsremoved_bulletsmessages          rO   r   r   H  s     .0@0@0B0BB-2244{7G7G7I7II ,"9 ,TTF;R4S4STTT	^^IOOL]L]^^^``G^@_@_```))DEWZiijjg{+++++, ,rQ   )rI   rJ   rW   r   )r   r   rW   r   )-
__future__r   _annotationsr   
contextlibr   typingr   r   r   r   pydantic_corer	   typing_extensionsr
   r   aliasesr   rI   r   r   r   r   r   errorsr   r   r   #_internal._schema_generation_sharedr   r   r   r   r   r   r   rr   rM   setr[   rb   rc   r   r   r   rz   rQ   rO   <module>r      sa   2 2 2 2 2 2  % % % % % %            & % % % % %       
 % $ $ $ $ $ \ \ \ \ \ \ \ \ \ \ \ \ \ \ & & & & & & 0 0 0 0 0 0 3 3 6DDDDDD55555555_ g% g% g% g% g% g% g% g%T- - - - - - - -4 * , , ,
$,, , 	,
 1, 4, $, 5, U, E, , "E, E, ,  D!," $#,$ $%,& "',( $),* d+,, 5-,. !/,0 !y1,2 63,4 65,6 V7,8 U9,: E;,< %=,> ?,@ $A,B C,D #-*E,F DG,H TI,J 16K,L #dM,N  %O,P Q,R !5S,T #UU,V $W,^   * c*,113344   '9"5"%))!'& , , , , , ,rQ   