
    o iR9                       d dl mZ d dlZd dl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 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 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/d0d/d1d2d3d4d5d4d6d7d8dd9dd:d;d<dd=dd>dd?dd@ddAddBddCddDdEdFddGddHd#dId#dJddKddLdZ&dWdQZ' e(ej)        *                                          Z+h dRZ,dJdddd'ddd!d*d8dS
Z-dXdVZ.dS )Y    )annotationsN)contextmanager)Pattern)TYPE_CHECKINGAnyCallableLiteralcast)core_schema)Self   )AliasGenerator)
ConfigDictExtraValuesJsonDictJsonEncoderJsonSchemaExtraCallable)PydanticUserError)PydanticDeprecatedSince20PydanticDeprecatedSince210)GenerateSchema)ComputedFieldInfo	FieldInfozGSupport for class-based `config` is deprecated, use ConfigDict instead.c                  8   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d0<   d1ed2<   ded3<   ded4<   d5ed6<   ded7<   ded8<   d9ed:<   d;ed<<   ded=<   d>ed?<   ded@<   dAedB<   dedC<   dedD<   dEedF<   dedG<   dedH<   dedI<   dedJ<   dKdLdbdPZedcdY            Ze	sddd]Z
ded_Zd` ZdaS )fConfigWrapperzIInternal wrapper for Config which exposes ConfigDict items as attributes.)config_dictr   r   
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['iso8601', 'seconds', 'milliseconds']ser_json_temporalz+Literal['seconds', 'milliseconds', 'infer']val_temporal_unitz Literal['utf8', 'base64', 'hex']ser_json_bytesval_json_bytesz'Literal['null', 'constants', 'strings']ser_json_inf_nanvalidate_defaultvalidate_returnztuple[str | Pattern[str], ...]protected_namespaceshide_input_in_errorsdefer_buildz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_stringsvalidate_by_aliasvalidate_by_nameserialize_by_aliasurl_preserve_empty_pathTcheckconfig.ConfigDict | dict[str, Any] | type[Any] | NonerP   c               j    |rt          |          | _        d S t          t          |          | _        d S N)prepare_configr   r
   r   )selfrQ   rP   s      Q/var/www/findabus/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]raw_annotationskwargsreturnr   c                V   t                      }|D ]<}t          |dd          }|r'|                    |                                           =|                    d          }|                    d          }	|                    d          r|	t          dd          |r|	rt          dd          |	pt          |          }
|                    |
           t          |                                          D ]#}|t          v r|
                    |          ||<   $ | |          S )	aZ  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.
            raw_annotations: The (non-evaluated) annotations of the model.
            kwargs: The kwargs passed to the class being created.

        Returns:
            A `ConfigWrapper` instance for `BaseModel`.
        model_configNConfigz``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   rU   listkeysconfig_keyspop)clsrZ   r\   r^   r_   
config_newbaserQ   config_class_from_namespaceconfig_dict_from_namespaceconfig_from_namespaceks               rW   	for_modelzConfigWrapper.for_modelb   sM   0  \\
 	1 	1DT>488F 1!!&++--000&/mmH&=&=#%.]]>%B%B"~.. 	3M3U#r6   
 ' 	o+E 	o#$Y`mnnnn : inMh>i>i/000fkkmm$$ 	. 	.AK &

1
1s:rY   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)rV   rv   s     rW   __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core_schema.CoreConfigc           $        | j         }|                    d          t          j        dt          d           |                    d          x}|                    d          
d|d	<   ||d<   |                    d	          d
u r|                    d          d|d<   |                    d	d          s'|                    dd
          st          dd          t          j        d*i d d|                    d          p|pdfd|                    d          fd|                    d          fd|                    d          fd|                    d          fd|                    d          fd|                    d          fd|                    d          fd|                    d          fd|                    d          fd|                    d          fd|                    d          fd|                    d          fd|                    d          fd|                    d          fd|                    d          fd |                    d           fd!|                    d!          fd"|                    d"          fd#|                    d#          fd$|                    d$          fd%|                    d%          fd&|                    d&          fd'|                    d'          fd	|                    d	          fd|                    d          fd(|                    d(          fd)|                    d)          ffD             S )+a  Create a pydantic-core config.

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

        Args:
            title: The title to use if not set in config.

        Returns:
            A `CoreConfig` object created from config.
        rC   NzfThe `schema_generator` setting has been deprecated since v2.10. This setting no longer has any effect.r   
stacklevelr(   rL   TrK   FzNAt least one of `validate_by_alias` or `validate_by_name` must be set to True.z validate-by-alias-and-name-falserd   c                    i | ]
\  }}|||S rT    .0rt   vs      rW   
<dictcomp>z-ConfigWrapper.core_config.<locals>.<dictcomp>   s/     ! ! !Aq< =? 1> !==rY   r   extra_fields_behaviorr&   r2   r"   r    r!   r5   r7   r8   r9   r:   r;   r<   r,   r-   r6   r=   r%   r$   r@   rF   rG   rH   rJ   rM   rN   r   )r   ri   warningswarnr   r   r   
CoreConfig)rV   r   rQ   r(   s       rW   core_configzConfigWrapper.core_config   s    !::())5Mx*    !'

+= > >>K zz,--5.2*+-=)* ::)**e33

CU8V8V8^)-F%&

.55 	

K]_d@e@e 	#`7   
 % #
 #
! ! fjj11BUBdC,fjj.A.AB$fjj&A&AB+VZZ8N-O-OP#VZZ%?%?@#VZZ%?%?@vzz(334)6::6J+K+KL(&**5H*I*IJ(&**5H*I*IJ%vzz2B'C'CD%vzz2B'C'CD'4F)G)GH&

3D(E(EF#VZZ%?%?@+VZZ8N-O-OP'4F)G)GH%vzz2B'C'CD%vzz2B'C'CD+VZZ8N-O-OP,fjj9P.Q.QR#VZZ%?%?@-vzz:R/S/ST$fjj&A&AB(&**5H*I*IJ'4F)G)GH)6::6J+K+KL.

;T0U0UV9! ! !#
 #
 #	
rY   c                z    d                     d | j                                        D                       }d| dS )Nz, c              3  *   K   | ]\  }}| d |V  dS )=Nr   r   s      rW   	<genexpr>z)ConfigWrapper.__repr__.<locals>.<genexpr>   s0      HHtq!llQllHHHHHHrY   zConfigWrapper())joinr   items)rV   cs     rW   __repr__zConfigWrapper.__repr__   sB    IIHHt/?/E/E/G/GHHHHH$$$$$rY   N)rQ   rR   rP   r   )
rZ   r[   r\   r]   r^   r]   r_   r]   r`   r   )rv   rw   r`   r   )r   r   r`   r}   )__name__
__module____qualname____doc__	__slots____annotations__rX   classmethodru   r   r|   r   r   r   rY   rW   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DDDDBBBB44444444====8888----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 1 1 1 [1h  	X	X 	X 	X 	XI
 I
 I
 I
V% % % % %rY   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 rT   _config_wrapper_stackrV   r   s     rW   rX   zConfigWrapperStack.__init__   s    ;I:J"""rY   r`   c                    | j         d         S )Nr   )rV   s    rW   tailzConfigWrapperStack.tail   s    )"--rY   !ConfigWrapper | ConfigDict | Nonec              #    K   |d V  d S t          |t                    st          |d          }| j                            |           	 d V  | j                                         d S # | j                                         w xY w)NFrO   )
isinstancer   r   appendrm   r   s     rW   pushzConfigWrapperStack.push   s      !EEEF.-88 	H*>GGGN")).999	-EEE&**,,,,,D&**,,,,s   A+ +BN)r   r   )r`   r   )r   r   )	r   r   r   r   rX   propertyr   r   r   r   rY   rW   r   r      sr        //K K K K . . . X. - - - ^- - -rY   r   r   r    Fr!   r"   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   Tr.   r/   r0   r1   r   r2   r3   r5   r6   neverr7   iso8601r8   r9   inferr:   utf8r;   r<   nullr=   r>   r?   )model_validate
model_dumpr@   r4   rA   rC   rB   rD   rE   rF   rG   z
rust-regexrH   rI   rJ   rK   rL   rM   rN   rQ   rR   r`   r   c                     t                      S t           t                    s<t          j        t
          t          d            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.
    N   r   c                \    i | ](}|                     d           |t          |          )S )__)
startswithrf   )r   rt   rQ   s     rW   r   z"prepare_config.<locals>.<dictcomp>N  s7    WWWAALLQUDVDVW!WVQ''WWWrY   )
r   r   dictr   r   DEPRECATION_MESSAGEr   dirr
   check_deprecated)rQ   r   s   ` rW   rU   rU   @  s     ~||fd## X)+DQRSSSSWWWWVWWWz6**K[!!!rY   >
   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 r   )V2_RENAMED_KEYSr   rt   s     rW   r   z$check_deprecated.<locals>.<dictcomp>{  s    TTTqQ*TTTrY   c                $    g | ]\  }}d |d|S )* z has been renamed to r   r   s      rW   
<listcomp>z$check_deprecated.<locals>.<listcomp>|  s-    ^^^DAq???!??^^^rY   c                    g | ]}d |d	S )r   z has been removedr   r   s     rW   r   z$check_deprecated.<locals>.<listcomp>}  s$    ```16666```rY   
z%Valid config keys have changed in V2:N)	V2_REMOVED_KEYSrk   r   sortedr   r   r   r   UserWarning)r   deprecated_removed_keysdeprecated_renamed_keys	renamingsrenamed_bulletsremoved_bulletsmessages          rW   r   r   r  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{+++++, ,rY   )rQ   rR   r`   r   )r   r   r`   r   )/
__future__r   _annotationsr   
contextlibr   rer   typingr   r   r   r	   r
   pydantic_corer   typing_extensionsr   aliasesr   rQ   r   r   r   r   r   errorsr   r   r   #_internal._schema_generation_sharedr   r   r   r   r   r   r   rz   rU   setr   rk   rl   r   r   r   r   rY   rW   <module>r      s   2 2 2 2 2 2  % % % % % %                    & % % % % % " " " " " " $ $ $ $ $ $ \ \ \ \ \ \ \ \ \ \ \ \ \ \ & & & & & & L L L L L L L L 6DDDDDD55555555_ R% R% R% R% R% R% R% R%j- - - - - - - -4 * 1 1 1
$11 1 	1
 11 41 $1 51 U1 E1 1 "E1 E1 1  D!1" $#1$ $%1& "'1( $)1* d+1, 5-1. !/10 !y112  i314 g516 6718 691: V;1< U=1> E?1@ :9A1B C1D $E1F G1H TI1J DK1L 16M1N #dO1P  %Q1R S1T !5U1V #UW1X $Y1Z d[1\ U]1^ u_1` "Ea1h   * c*,113344   '9"5"%))!'& , , , , , ,rY   