o
    Ah}                     @  s  U d Z 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mZmZmZmZ ddl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 er[ddlmZ ddlm Z m!Z! dZ"ee#e$e%e&de'd df Z(de)d< e*e%e(f Z+de)d< e
e	ge	f Z,ee
e+gdf e
e+e-e	 gdf f Z.de)d< ed Z/G dd deddZ0ede-dZ1eedd'ddZ2ed'd dZ2ed(d"dZ2d)d*d&dZ2ee3Z4dS )+z"Configuration for Pydantic models.    )annotationsN)Pattern)TYPE_CHECKINGAnyCallableLiteralTypeVarUnioncastoverload)	TypeAlias	TypedDictUnpack
deprecated   )getattr_migration)AliasGenerator)PydanticUserError)PydanticDeprecatedSince211)GenerateSchema)ComputedFieldInfo	FieldInfo)
ConfigDictwith_config	JsonValueJsonDictr   JsonSchemaExtraCallable)allowignoreforbidc                   @  s  e Zd ZU 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< 	 ded1< 	 d2ed3< 	 ded4< 	 ded5< 	 d6ed7< 	 d8ed9< 	 ded:< 	 d;ed<< 	 ded=< 	 d>ed?< 	 ded@< 	 dedA< 	 dBedC< 	 dedD< 	 dedE< 	 dedF< 	 dedG< dHS )Ir   z/A TypedDict for configuring Pydantic behaviour.z
str | NonetitlezCallable[[type], str] | Nonemodel_title_generatorz:Callable[[str, FieldInfo | ComputedFieldInfo], str] | Nonefield_title_generator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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_pathN)__name__
__module____qualname____doc____annotations__ rV   rV   P/var/www/html/openai_agents/venv/lib/python3.10/site-packages/pydantic/config.pyr   $   s   
 s	&&36:
x			]+
	&6%#
'#'r   F)total_TypeT)boundzePassing `config` as a keyword argument is deprecated. Pass `config` as a positional argument instead.configreturnCallable[[_TypeT], _TypeT]c                 C     d S NrV   r[   rV   rV   rW   r     s   r   c                C  r^   r_   rV   r`   rV   rV   rW   r        Unpack[ConfigDict]c                  K  r^   r_   rV   r`   rV   rV   rW   r     ra   ConfigDict | Nonekwargsr   c                  sv   | dur
|r
t dt|dkr'|d }dur'tjdtdd tt| n| dur-| ntt| d fdd}|S )a-  !!! abstract "Usage Documentation"
        [Configuration with other types](../concepts/config.md#configuration-on-other-supported-types)

    A convenience decorator to set a [Pydantic configuration](config.md) on a `TypedDict` or a `dataclass` from the standard library.

    Although the configuration can be set using the `__pydantic_config__` attribute, it does not play well with type checkers,
    especially with `TypedDict`.

    !!! example "Usage"

        ```python
        from typing_extensions import TypedDict

        from pydantic import ConfigDict, TypeAdapter, with_config

        @with_config(ConfigDict(str_to_lower=True))
        class TD(TypedDict):
            x: str

        ta = TypeAdapter(TD)

        print(ta.validate_python({'x': 'ABC'}))
        #> {'x': 'abc'}
        ```
    Nz2Cannot specify both `config` and keyword argumentsr   r[   zdPassing `config` as a keyword argument is deprecated. Pass `config` as a positional argument instead   )category
stacklevelclass_rY   r\   c                  s4   ddl m} || rtd| j ddd | _| S )Nr   )is_model_classzCannot use `with_config` on z as it is a Pydantic modelzwith-config-on-model)code)_internal._utilsri   r   rQ   __pydantic_config__)rh   ri   final_configrV   rW   inner  s   zwith_config.<locals>.inner)rh   rY   r\   rY   )
ValueErrorlengetwarningswarnr   r
   r   )r[   rd   kwargs_confro   rV   rm   rW   r     s   )r[   r   r\   r]   )r[   rb   r\   r]   r_   )r[   rc   rd   r   r\   r]   )5rT   
__future__r   _annotationsrs   rer   typingr   r   r   r   r   r	   r
   r   typing_extensionsr   r   r   r   
_migrationr   aliasesr   errorsr   r   _internal._generate_schemar   _GenerateSchemafieldsr   r   __all__r'   floatstrr#   listr   rU   dictr   JsonEncodertyper   ExtraValuesr   rY   r   rQ   __getattr__rV   rV   rV   rW   <module>   sV    ("         +8