U
    ={f}                     @  s0  U d 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 ddlmZ ddlmZ ervddl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Z#ede$dZ%dddddZ&ee'Z(d
S )z"Configuration for Pydantic models.    )annotations)TYPE_CHECKINGAnyCallableDictListTypeTypeVarUnion)Literal	TypeAlias	TypedDict   )getattr_migration)AliasGenerator)GenerateSchema)
ConfigDictwith_configN	JsonValueJsonDictr   JsonSchemaExtraCallable)ZallowignoreZforbidc                   @  sB  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d.< d/ed0< ded1< d2ed3< ded4< d5ed6< ded7< ded8< d9ed:< d;S )<r   z/A TypedDict for configuring Pydantic behaviour.z
str | NonetitleboolZstr_to_lowerZstr_to_upperZstr_strip_whitespaceintZstr_min_lengthz
int | NoneZstr_max_lengthzExtraValues | NoneextrafrozenZpopulate_by_nameZuse_enum_valuesZvalidate_assignmentZarbitrary_types_allowedZfrom_attributesZloc_by_aliasz,Callable[[str], str] | AliasGenerator | NoneZalias_generatorztuple[type, ...]Zignored_typesZallow_inf_nanz)JsonDict | JsonSchemaExtraCallable | NoneZjson_schema_extraz&dict[type[object], JsonEncoder] | NoneZjson_encodersstrictz2Literal[('always', 'never', 'subclass-instances')]Zrevalidate_instanceszLiteral[('iso8601', 'float')]Zser_json_timedeltazLiteral[('utf8', 'base64')]Zser_json_byteszLiteral[('null', 'constants')]Zser_json_inf_nanZvalidate_defaultZvalidate_returnztuple[str, ...]Zprotected_namespacesZhide_input_in_errorsZdefer_buildzdict[str, object] | NoneZplugin_settingsztype[_GenerateSchema] | NoneZschema_generatorZ+json_schema_serialization_defaults_requiredz.Literal[('validation', 'serialization', None)]Zjson_schema_mode_overrideZcoerce_numbers_to_strz$Literal[('rust-regex', 'python-re')]Zregex_engineZvalidation_error_causeZuse_attribute_docstringsz'bool | Literal[('all', 'keys', 'none')]Zcache_stringsN)__name__
__module____qualname____doc____annotations__ r#   r#   N/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/pydantic/config.pyr      sP   
G
!(47;		
L,	
'7&!$r   F)total_TypeT)boundzCallable[[_TypeT], _TypeT])configreturnc                   s   ddd fdd}|S )a$  Usage docs: https://docs.pydantic.dev/2.7/concepts/config/#configuration-with-dataclass-from-the-standard-library-or-typeddict

    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"

        ```py
        from typing_extensions import TypedDict

        from pydantic import ConfigDict, TypeAdapter, with_config

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

        ta = TypeAdapter(Model)

        print(ta.validate_python({'x': 'ABC'}))
        #> {'x': 'abc'}
        ```
    r&   )TypedDictClassr)   c                  s
    | _ | S )N)Z__pydantic_config__)r*   r(   r#   r$   inner  s    zwith_config.<locals>.innerr#   )r(   r,   r#   r+   r$   r     s    r   ))r!   
__future__r   Z_annotationstypingr   r   r   r   r   r   r	   r
   Ztyping_extensionsr   r   r   Z
_migrationr   aliasesr   Z_internal._generate_schemar   Z_GenerateSchema__all__r   floatstrr   r   r"   r   ZJsonEncoderr   ZExtraValuesr   typer&   r   r   __getattr__r#   r#   r#   r$   <module>   s8   ("       0!