o
    FÊÆh­ö  ã                   @  s:  U d Z ddlmZ ddlZddlZddlZddlZddlmZm	Z	 ddlm
Z
mZ ddl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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# ddl$m%Z%m&Z&m'Z'm(Z(m)Z) ddlm*Z* ej+rÙddl,m-Z- ddl.m/Z/ ddlm0Z0m1Z1m2Z2 ddlm3Z3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z: ddl;m<Z<m=Z=m>Z> ddl;m?Z@ ejAejBeCe
f ddf ZDejEddd�ZFdZGdeHd< ne*ZIdZJejKZLG dd„ dejMd�ZNejOdddePddd œd=d2d3„ƒZQejOddePddd4œd>d7d3„ƒZQdddddddd8œd?d<d3„ZQeePƒZRdS )@zLogic for creating models.é    )ÚannotationsN)ÚcopyÚdeepcopy)ÚAnyÚClassVar©ÚPydanticUndefinedé   )
Ú_configÚ_decoratorsÚ_fieldsÚ_forward_refÚ	_genericsÚ_mock_val_serÚ_model_constructionÚ_reprÚ_typing_extraÚ_utils)Úgetattr_migration)ÚGetCoreSchemaHandlerÚGetJsonSchemaHandler)Ú
ConfigDict)ÚPydanticUndefinedAnnotationÚPydanticUserError)ÚDEFAULT_REF_TEMPLATEÚGenerateJsonSchemaÚJsonSchemaModeÚJsonSchemaValueÚmodel_json_schema)ÚPydanticDeprecatedSince20)Ú	Signature)ÚPath)Ú
CoreSchemaÚSchemaSerializerÚSchemaValidator)ÚLiteralÚUnpack)ÚAbstractSetIntStrÚMappingIntStrAny)ÚProtocol)ÚComputedFieldInfoÚ	FieldInfoÚModelPrivateAttr)ÚFieldÚModelÚ	BaseModel)Úboundz<set[int] | set[str] | dict[int, Any] | dict[str, Any] | Noneztyping_extensions.TypeAliasÚIncEx)r/   Úcreate_modelc                
      sð  e Zd ZU dZejrdd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< edd�Zd ed!< edd�Z	d"ed#< edd�Z
d ed$< ni Ze ¡ Zejd%d&d'd(�Zejd%d)d'd(�Zd*Zeƒ ZdZdZ�dd/d0„Zd1e_e�dd3d4„ƒZe�dd5d6„ƒZe�dd7d8„ƒZe�d�dd@dA„ƒZd9ddBœ�ddGdH„Z dId9d9dddddd1dJœ	�ddWdX„Z!d9d9d9dddddd1dYœ	�dd]d^„Z"ed1e#e$d_f�dddde„ƒZ%e�ddhdi„ƒZ&�ddkdl„Z'edd1dmd9dnœ�ddudv„ƒZ(ed9d9d9dwœ�dd|d}„ƒZ)ed9d9d~œ�dd�d‚„ƒZ*ed9d9d~œ�d dƒd„„ƒZ+e�d!dŠd‹„ƒZ,e�d"d�d�„ƒZ-e�d#d’d“„ƒZ.�d$d—d˜„Z/�d%d™dš„Z0�d�d&d�dž„Z1ej�s`�d'‡ fd d¡„Z2�d(d¤d¥„Z3�d'd¦d§„Z4�d(d¨d©„Z5�d)d«d¬„Z6�d*d®d¯„Z7�d+d±d²„Z8ej�rŽ�d,d´dµ„Z9�d-d·d¸„Z:�d.d¹dº„Z;�d/d¼d½„Z<e=j>j?Z?e=j>j@Z@e=j>jAZAe=j>jBZB�d.d¾d¿„ZCeeDjEdÀeFdÁ��d0dÃdÄ„ƒƒZGeeDjEdÅeFdÁ��ddÆdÇ„ƒƒZHeDjEdÈeFdÁ�d9d9dddddÉœ�d1dËdÌ„ƒZIeDjEdÍeFdÁ�d9d9ddddeJeJdÎœ�d2dÓdÔ„ƒZKeeDjEdÕeFdÁ��d3dÖd×„ƒƒZLeeDjEdØeFdÁ�d9dÙd9ddÚœ�d4dãdä„ƒƒZMeeDjEdåeFdÁ�d9dÙd9ddÚœ�d5dèdé„ƒƒZNeeDjEdêeFdÁ��d3dëdì„ƒƒZOeeDjEdíeFdÁ��d�ddîdï„ƒƒZPeDjEdðeFdÁ�d9d9d9ddñœ�d6dôdõ„ƒZQeeDjEdöeFdÁ�d1e#f�d7d÷dø„ƒƒZReeDjEdùeFdÁ�d1e#dúœ�d8dûdü„ƒƒZSeeDjEdýeFdÁ��d9dþdÿ„ƒƒZTeeDjE�d eFdÁ��d:�d�d„ƒƒZUeDjE�deFdÁ��d;�d�d„ƒZVeDjE�deFdÁ��d;�d	�d
„ƒZWeeDjE�deFdÁ��d;�d�d„ƒƒZXeDjE�deFdÁ��d;�d�d„ƒZY‡  ZZS (<  r/   a}  Usage docs: https://docs.pydantic.dev/2.5/concepts/models/

    A base class for creating Pydantic models.

    Attributes:
        __class_vars__: The names of classvars defined on the model.
        __private_attributes__: Metadata about the private attributes of the model.
        __signature__: The signature for instantiating the model.

        __pydantic_complete__: Whether model building is completed, or if there are still undefined fields.
        __pydantic_core_schema__: The pydantic-core schema used to build the SchemaValidator and SchemaSerializer.
        __pydantic_custom_init__: Whether the model has a custom `__init__` function.
        __pydantic_decorators__: Metadata containing the decorators defined on the model.
            This replaces `Model.__validators__` and `Model.__root_validators__` from Pydantic V1.
        __pydantic_generic_metadata__: Metadata for generic models; contains data used for a similar purpose to
            __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
        __pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models.
        __pydantic_post_init__: The name of the post-init method for the model, if defined.
        __pydantic_root_model__: Whether the model is a `RootModel`.
        __pydantic_serializer__: The pydantic-core SchemaSerializer used to dump instances of the model.
        __pydantic_validator__: The pydantic-core SchemaValidator used to validate instances of the model.

        __pydantic_extra__: An instance attribute with the values of extra fields from validation when
            `model_config['extra'] == 'allow'`.
        __pydantic_fields_set__: An instance attribute with the names of fields explicitly set.
        __pydantic_private__: Instance attribute with the values of private attributes set on the model instance.
    zClassVar[ConfigDict]Úmodel_configzClassVar[dict[str, FieldInfo]]Úmodel_fieldszClassVar[set[str]]Ú__class_vars__z%ClassVar[dict[str, ModelPrivateAttr]]Ú__private_attributes__zClassVar[Signature]Ú__signature__zClassVar[bool]Ú__pydantic_complete__zClassVar[CoreSchema]Ú__pydantic_core_schema__Ú__pydantic_custom_init__z$ClassVar[_decorators.DecoratorInfos]Ú__pydantic_decorators__z+ClassVar[_generics.PydanticGenericMetadata]Ú__pydantic_generic_metadata__zClassVar[dict[str, Any] | None]Ú__pydantic_parent_namespace__z+ClassVar[None | Literal['model_post_init']]Ú__pydantic_post_init__Ú__pydantic_root_model__zClassVar[SchemaSerializer]Ú__pydantic_serializer__zClassVar[SchemaValidator]Ú__pydantic_validator__F)Úinitúdict[str, Any] | NoneÚ__pydantic_extra__úset[str]Ú__pydantic_fields_set__Ú__pydantic_private__zXPydantic models should inherit from BaseModel, BaseModel cannot be instantiated directlyÚ	validatorzbase-model-instantiated)Ú
val_or_serÚcodeÚ
serializer)Ú__dict__rF   rD   rG   Údatar   ÚreturnÚNonec                 K  s   d}| j j|| d� dS )aj  Create a new model by parsing and validating input data from keyword arguments.

        Raises [`ValidationError`][pydantic_core.ValidationError] if the input data cannot be
        validated to form a valid model.

        `__init__` uses `__pydantic_self__` instead of the more common `self` for the first arg to
        allow `self` as a field name.
        T)Úself_instanceN©rA   Úvalidate_python)Ú__pydantic_self__rM   Ú__tracebackhide__© rU   úZ/var/www/html/HyperOracle/crypto_trader/venv/lib/python3.10/site-packages/pydantic/main.pyÚ__init__™   s   
zBaseModel.__init__Túdict[str, ComputedFieldInfo]c                 C  s   dd„ | j j ¡ D ƒS )z°Get the computed fields of this model instance.

        Returns:
            A dictionary of computed field names and their corresponding `ComputedFieldInfo` objects.
        c                 S  s   i | ]\}}||j “qS rU   )Úinfo©Ú.0ÚkÚvrU   rU   rV   Ú
<dictcomp>°   s    z3BaseModel.model_computed_fields.<locals>.<dictcomp>)r;   Úcomputed_fieldsÚitems©ÚselfrU   rU   rV   Úmodel_computed_fields©   s   zBaseModel.model_computed_fieldsc                 C  ó   | j S )z¡Get extra fields set during validation.

        Returns:
            A dictionary of extra fields, or `None` if `config.extra` is not set to `"allow"`.
        )rD   ra   rU   rU   rV   Úmodel_extra²   s   zBaseModel.model_extrac                 C  rd   )zìReturns the set of fields that have been explicitly set on this model instance.

        Returns:
            A set of strings representing the fields that have been set,
                i.e. that were not filled from defaults.
        )rF   ra   rU   rU   rV   Úmodel_fields_set»   s   zBaseModel.model_fields_setNÚclsútype[Model]Ú_fields_setúset[str] | NoneÚvaluesr.   c                 K  s(  |   | ¡}i }i }| j ¡ D ]-\}}|jr#|j|v r#| |j¡||< q||v r/| |¡||< q| ¡ s;|jdd�||< q|du rFt| ¡ ƒ}| 	|¡ d}| j
 d¡dkrei }| ¡ D ]\}	}
|
||	< q[n| 	|¡ t|d|ƒ t|d|ƒ | jst|d|ƒ | jr‰| d¡ |S | js’t|d	dƒ |S )
aS  Creates a new instance of the `Model` class with validated data.

        Creates a new model setting `__dict__` and `__pydantic_fields_set__` from trusted or pre-validated data.
        Default values are respected, but no other validation is performed.
        Behaves as if `Config.extra = 'allow'` was set since it adds all passed values

        Args:
            _fields_set: The set of field names accepted for the Model instance.
            values: Trusted or pre-validated data dictionary.

        Returns:
            A new instance of the `Model` class with validated data.
        T)Úcall_default_factoryNÚextraÚallowrL   rF   rD   rG   )Ú__new__r4   r`   ÚaliasÚpopÚis_requiredÚget_defaultÚsetÚkeysÚupdater3   ÚgetÚ_object_setattrr?   r>   Úmodel_post_init)rg   ri   rk   ÚmÚfields_valuesÚdefaultsÚnameÚfieldÚ_extrar\   r]   rU   rU   rV   Úmodel_constructÅ   s>   
€

ÿ

ûzBaseModel.model_construct)rv   Údeeprb   rv   r�   Úboolc                C  sŒ   |r|   ¡ n|  ¡ }|rD| j d¡dkr6| ¡ D ]\}}|| jv r'||j|< q|jdu r/i |_||j|< qn|j |¡ |j	 | 
¡ ¡ |S )a¤  Usage docs: https://docs.pydantic.dev/2.5/concepts/serialization/#model_copy

        Returns a copy of the model.

        Args:
            update: Values to change/add in the new model. Note: the data is not validated
                before creating the new model. You should trust this data.
            deep: Set to `True` to make a deep copy of the model.

        Returns:
            New model instance.
        rm   rn   N)Ú__deepcopy__Ú__copy__r3   rw   r`   r4   rL   rD   rv   rF   ru   )rb   rv   r�   Úcopiedr\   r]   rU   rU   rV   Ú
model_copy÷   s   

úzBaseModel.model_copyÚpython)	ÚmodeÚincludeÚexcludeÚby_aliasÚexclude_unsetÚexclude_defaultsÚexclude_noneÚ
round_tripÚwarningsrˆ   úLiteral['json', 'python'] | strr‰   r1   rŠ   r‹   rŒ   r�   rŽ   r�   r�   údict[str, Any]c       	   
      C  s    | j j| |||||||||	d�
S )aÈ  Usage docs: https://docs.pydantic.dev/2.5/concepts/serialization/#modelmodel_dump

        Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

        Args:
            mode: The mode in which `to_python` should run.
                If mode is 'json', the dictionary will only contain JSON serializable types.
                If mode is 'python', the dictionary may contain any Python objects.
            include: A list of fields to include in the output.
            exclude: A list of fields to exclude from the output.
            by_alias: Whether to use the field's alias in the dictionary key if defined.
            exclude_unset: Whether to exclude fields that have not been explicitly set.
            exclude_defaults: Whether to exclude fields that are set to their default value from the output.
            exclude_none: Whether to exclude fields that have a value of `None` from the output.
            round_trip: Whether to enable serialization and deserialization round-trip support.
            warnings: Whether to log warnings when invalid fields are encountered.

        Returns:
            A dictionary representation of the model.
        )	rˆ   r‹   r‰   rŠ   rŒ   r�   rŽ   r�   r�   )r@   Ú	to_python)
rb   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   rU   rU   rV   Ú
model_dump  s   !özBaseModel.model_dump©	Úindentr‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r–   ú
int | NoneÚstrc       	   
      C  s$   | j j| |||||||||	d�
 ¡ S )aI  Usage docs: https://docs.pydantic.dev/2.5/concepts/serialization/#modelmodel_dump_json

        Generates a JSON representation of the model using Pydantic's `to_json` method.

        Args:
            indent: Indentation to use in the JSON output. If None is passed, the output will be compact.
            include: Field(s) to include in the JSON output. Can take either a string or set of strings.
            exclude: Field(s) to exclude from the JSON output. Can take either a string or set of strings.
            by_alias: Whether to serialize using field aliases.
            exclude_unset: Whether to exclude fields that have not been explicitly set.
            exclude_defaults: Whether to exclude fields that have the default value.
            exclude_none: Whether to exclude fields that have a value of `None`.
            round_trip: Whether to use serialization/deserialization between JSON and class instance.
            warnings: Whether to show any warnings that occurred during serialization.

        Returns:
            A JSON string representation of the model.
        r•   )r@   Úto_jsonÚdecode)
rb   r–   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   rU   rU   rV   Úmodel_dump_jsonA  s   öõzBaseModel.model_dump_jsonÚ
validationÚref_templateÚschema_generatorútype[GenerateJsonSchema]r   c                 C  s   t | ||||d�S )aä  Generates a JSON schema for a model class.

        Args:
            by_alias: Whether to use attribute aliases or not.
            ref_template: The reference template.
            schema_generator: To override the logic used to generate the JSON schema, as a subclass of
                `GenerateJsonSchema` with your desired modifications
            mode: The mode in which to generate the schema.

        Returns:
            The JSON schema for the given model class.
        )r‹   r�   rž   rˆ   )r   )rg   r‹   r�   rž   rˆ   rU   rU   rV   r   m  s   
ÿzBaseModel.model_json_schemaÚparamsútuple[type[Any], ...]c                 C  s>   t | tjƒs
tdƒ‚dd„ |D ƒ}d |¡}| j› d|› d�S )a}  Compute the class name for parametrizations of generic classes.

        This method can be overridden to achieve a custom naming scheme for generic BaseModels.

        Args:
            params: Tuple of types of the class. Given a generic class
                `Model` with 2 type variables and a concrete model `Model[str, int]`,
                the value `(str, int)` would be passed to `params`.

        Returns:
            String representing the new class where `params` are passed to `cls` as type variables.

        Raises:
            TypeError: Raised when trying to generate concrete names for non-generic models.
        z;Concrete names should only be generated for generic models.c                 S  s$   g | ]}t |tƒr|nt |¡‘qS rU   )Ú
isinstancer˜   r   Údisplay_as_type©r[   ÚparamrU   rU   rV   Ú
<listcomp>œ  s   $ z5BaseModel.model_parametrized_name.<locals>.<listcomp>ú, ú[ú])Ú
issubclassÚtypingÚGenericÚ	TypeErrorÚjoinÚ__name__)rg   r    Úparam_namesÚparams_componentrU   rU   rV   Úmodel_parametrized_name…  s
   
z!BaseModel.model_parametrized_nameÚ_BaseModel__contextc                 C  ó   dS )zÕOverride this method to perform additional initialization after `__init__` and `model_construct`.
        This is useful if you want to do some validation that requires the entire model to be initialized.
        NrU   )rb   r³   rU   rU   rV   ry      s   zBaseModel.model_post_inité   )ÚforceÚraise_errorsÚ_parent_namespace_depthÚ_types_namespacer¶   r·   r¸   Úintr¹   úbool | Nonec          	      C  sÀ   |s| j rdS d| jv rt| dƒ |dur| ¡ }n-|dkr;tj|d�p%i }t | j¡p-i }i |¥|¥}t 	|¡| _nt | j¡}t 
| |¡}i | j¥ddi¥}tj| | jtj|dd�||d�S )	a1  Try to rebuild the pydantic-core schema for the model.

        This may be necessary when one of the annotations is a ForwardRef which could not be resolved during
        the initial attempt to build the schema, and automatic rebuilding fails.

        Args:
            force: Whether to force the rebuilding of the model schema, defaults to `False`.
            raise_errors: Whether to raise errors, defaults to `True`.
            _parent_namespace_depth: The depth level of the parent namespace, defaults to 2.
            _types_namespace: The types namespace, defaults to `None`.

        Returns:
            Returns `None` if the schema is already "complete" and rebuilding was not required.
            If rebuilding _was_ required, returns `True` if rebuilding was successful, otherwise `False`.
        Nr9   r   )Úparent_depthÚdefer_buildF)Úcheck)r·   Útypes_namespace)r8   rL   Údelattrr   r   Úparent_frame_namespacer   Úunpack_lenient_weakvaluedictr=   Úbuild_lenient_weakvaluedictÚget_cls_types_namespacer3   Úcomplete_model_classr¯   r
   ÚConfigWrapper)	rg   r¶   r·   r¸   r¹   r¿   Úframe_parent_nsÚcls_parent_nsÚconfigrU   rU   rV   Úmodel_rebuild¦  s0   



ÿÿûzBaseModel.model_rebuild©ÚstrictÚfrom_attributesÚcontextÚobjrÌ   rÍ   rÎ   c                C  s   d}| j j||||d�S )aÈ  Validate a pydantic model instance.

        Args:
            obj: The object to validate.
            strict: Whether to raise an exception on invalid fields.
            from_attributes: Whether to extract data from object attributes.
            context: Additional context to pass to the validator.

        Raises:
            ValidationError: If the object could not be validated.

        Returns:
            The validated model instance.
        TrË   rQ   )rg   rÏ   rÌ   rÍ   rÎ   rT   rU   rU   rV   Úmodel_validateÞ  s   ÿzBaseModel.model_validate©rÌ   rÎ   Ú	json_dataústr | bytes | bytearrayc                C  ó   d}| j j|||d�S )aÑ  Usage docs: https://docs.pydantic.dev/2.5/concepts/json/#json-parsing

        Validate the given JSON data against the Pydantic model.

        Args:
            json_data: The JSON data to validate.
            strict: Whether to enforce types strictly.
            context: Extra variables to pass to the validator.

        Returns:
            The validated Pydantic model.

        Raises:
            ValueError: If `json_data` is not a JSON string.
        TrÑ   )rA   Úvalidate_json)rg   rÒ   rÌ   rÎ   rT   rU   rU   rV   Úmodel_validate_jsonû  s   zBaseModel.model_validate_jsonc                C  rÔ   )aR  Validate the given object contains string data against the Pydantic model.

        Args:
            obj: The object contains string data to validate.
            strict: Whether to enforce types strictly.
            context: Extra variables to pass to the validator.

        Returns:
            The validated Pydantic model.
        TrÑ   )rA   Úvalidate_strings)rg   rÏ   rÌ   rÎ   rT   rU   rU   rV   Úmodel_validate_strings  s   z BaseModel.model_validate_stringsÚ_BaseModel__sourceútype[BaseModel]Ú_BaseModel__handlerr   r"   c                 C  s"   d| j v r| jd s| jS ||ƒS )aË  Hook into generating the model's CoreSchema.

        Args:
            __source: The class we are generating a schema for.
                This will generally be the same as the `cls` argument if this is a classmethod.
            __handler: Call into Pydantic's internal JSON schema generation.
                A callable that calls into Pydantic's internal CoreSchema generation logic.

        Returns:
            A `pydantic-core` `CoreSchema`.
        r9   Úorigin)rL   r<   r9   )rg   rÙ   rÛ   rU   rU   rV   Ú__get_pydantic_core_schema__,  s   

z&BaseModel.__get_pydantic_core_schema__Ú_BaseModel__core_schemar   r   c                 C  s   ||ƒS )ac  Hook into generating the model's JSON schema.

        Args:
            __core_schema: A `pydantic-core` CoreSchema.
                You can ignore this argument and call the handler with a new CoreSchema,
                wrap this CoreSchema (`{'type': 'nullable', 'schema': current_schema}`),
                or just call the handler with the original schema.
            __handler: Call into Pydantic's internal JSON schema generation.
                This will raise a `pydantic.errors.PydanticInvalidForJsonSchema` if JSON schema
                generation fails.
                Since this gets called by `BaseModel.model_json_schema` you can override the
                `schema_generator` argument to that function to change JSON schema generation globally
                for a type.

        Returns:
            A JSON schema, as a Python object.
        rU   )rg   rÞ   rÛ   rU   rU   rV   Ú__get_pydantic_json_schema__D  s   z&BaseModel.__get_pydantic_json_schema__Úkwargsc                 K  r´   )aˆ  This is intended to behave just like `__init_subclass__`, but is called by `ModelMetaclass`
        only after the class is actually fully initialized. In particular, attributes like `model_fields` will
        be present when this is called.

        This is necessary because `__init_subclass__` will always be called by `type.__new__`,
        and it would require a prohibitively large refactor to the `ModelMetaclass` to ensure that
        `type.__new__` was called in such a manner that the class would already be sufficiently initialized.

        This will receive the same `kwargs` that would be passed to the standard `__init_subclass__`, namely,
        any kwargs passed to the class definition that aren't used internally by pydantic.

        Args:
            **kwargs: Any keyword arguments passed to the class definition that aren't used internally
                by pydantic.
        NrU   ©rg   rà   rU   rU   rV   Ú__pydantic_init_subclass__]  s   z$BaseModel.__pydantic_init_subclass__Útypevar_valuesú!type[Any] | tuple[type[Any], ...]ú3type[BaseModel] | _forward_ref.PydanticRecursiveRefc           
   	     sÜ  t  | |¡}|d ur|S | tu rtdƒ‚t| dƒs t| › d�ƒ‚| jd s2tj| jvr2t| › d�ƒ‚t	|t
ƒs:|f}t  | |¡ tt| jd |ƒƒ‰ t ˆ  ¡ ˆ  ¡ ¡raˆ ra| }t  | ||¡ |S | jd }|sk|}nt
‡ fdd„|D ƒƒ}| jd	 p|| }| |¡}t
d
d„ t  ˆ  ¡ ¡D ƒƒ}t  ||¡�N}	|	d ur¤|	W  d   ƒ S t  | |||¡}|d ur¹|W  d   ƒ S z|jdd� W n	 tyÊ   Y nw t  ||||¡}t  | ||||¡ W d   ƒ |S 1 sçw   Y  |S )NzAType parameters should be placed on typing.Generic, not BaseModelÚ__parameters__zG cannot be parametrized because it does not inherit from typing.GenericÚ
parametersz is not a generic classÚargsc                 3  s   � | ]	}t  |ˆ ¡V  qd S ©N)r   Úreplace_types)r[   Úarg©Útypevars_maprU   rV   Ú	<genexpr>�  ó   € z.BaseModel.__class_getitem__.<locals>.<genexpr>rÜ   c                 S  s   i | ]}|d “qS ré   rU   r¤   rU   rU   rV   r^   ”  s    z/BaseModel.__class_getitem__.<locals>.<dictcomp>é   )r¸   )r   Úget_cached_generic_type_earlyr/   r­   Úhasattrr<   r«   r¬   Ú	__bases__r¢   ÚtupleÚcheck_parameters_countÚdictÚzipr   Úall_identicalru   rk   Úset_cached_generic_typer²   Úiter_contained_typevarsÚgeneric_recursion_self_typeÚget_cached_generic_type_laterÊ   r   Úcreate_generic_submodel)
rg   rã   ÚcachedÚsubmodelÚparent_argsrè   rÜ   Ú
model_namer    Úmaybe_self_typerU   rì   rV   Ú__class_getitem__p  s^   

ÿ%
Ý
ÿþú	ü
ëézBaseModel.__class_getitem__c                 C  s‚   t | ƒ}| |¡}t|dt| jƒƒ t|dt| jƒƒ t|dt| jƒƒ | jdu r1t|ddƒ |S t|ddd„ | j ¡ D ƒƒ |S )z$Returns a shallow copy of the model.rL   rD   rF   NrG   c                 S  ó   i | ]\}}|t ur||“qS rU   r   rZ   rU   rU   rV   r^   ¾  ó    z&BaseModel.__copy__.<locals>.<dictcomp>)	Útypero   rx   r   rL   rD   rF   rG   r`   )rb   rg   rz   rU   rU   rV   r„   °  s   

úýzBaseModel.__copy__Úmemoúdict[int, Any] | Nonec                 C  s’   t | ƒ}| |¡}t|dt| j|d�ƒ t|dt| j|d�ƒ t|dt| jƒƒ | jdu r5t|ddƒ |S t|dtdd„ | j 	¡ D ƒ|d�ƒ |S )	z!Returns a deep copy of the model.rL   )r  rD   rF   NrG   c                 S  r  rU   r   rZ   rU   rU   rV   r^   Ó  r  z*BaseModel.__deepcopy__.<locals>.<dictcomp>)
r  ro   rx   r   rL   rD   r   rF   rG   r`   )rb   r  rg   rz   rU   rU   rV   rƒ   Ã  s   

úýzBaseModel.__deepcopy__Úitemc              
     s  t  | d¡}||v r;|| }t|dƒr| | t| ƒ¡S z| j| W S  ty: } ztt| ƒj›d|›�ƒ|‚d }~ww zt  | d¡}W n tyN   d }Y nw |d urrz|| W S  tyq } ztt| ƒj›d|›�ƒ|‚d }~ww t| j	|ƒr~t
ƒ  |¡S tt| ƒj›d|›�ƒ‚)Nr6   Ú__get__ú object has no attribute rD   )ÚobjectÚ__getattribute__rò   r
  r  rG   ÚKeyErrorÚAttributeErrorr¯   Ú	__class__Úsuper)rb   r	  Úprivate_attributesÚ	attributeÚexcÚpydantic_extra©r  rU   rV   Ú__getattr__Û  s4   
€ÿÿ
€ÿzBaseModel.__getattr__r}   Úvaluec              	   C  s¬  || j v rt|›d| jj› d| jj› d|› d�ƒ‚t |¡sI| jd u s(|| jvr0t| ||ƒ d S | j| }t	|dƒrB| 
| |¡ d S || j|< d S |  ||¡ t| j|d ƒ}t|tƒrc| 
| |¡ d S | j dd ¡rt| j | ||¡ d S | j d¡dkrŽ|| jvrŽtd	| jj› d
|› d	�ƒ‚| j d¡dkrÉ|| jvrÉ| jrª|| jv rª|| j|< d S zt| |ƒ W n tyÀ   || j|< Y d S w t| ||ƒ d S || j|< | j |¡ d S )Nz is a ClassVar of `zR` and cannot be set on an instance. If you want to set a value on the class, use `Ú.z
 = value`.Ú__set__Úvalidate_assignmentrm   rn   ú"z" object has no field ")r5   r  r  r¯   r   Úis_valid_field_namerG   r6   rx   rò   r  Ú_check_frozenÚgetattrr¢   Úpropertyr3   rw   rA   r  r4   Ú
ValueErrorre   rD   rL   rF   Úadd)rb   r}   r  r  ÚattrrU   rU   rV   Ú__setattr__û  sJ   
ÿÿÿ

û

ÿ
þ
zBaseModel.__setattr__c              
   C  sî   || j v r7| j | }t|dƒr| | ¡ d S z| j|= W d S  ty6 } ztt| ƒj›d|›�ƒ|‚d }~ww |  |d ¡ || j	v rJt
 | |¡ d S | jd urZ|| jv rZ| j|= d S z	t
 | |¡ W d S  tyv   tt| ƒj›d|›�ƒ‚w )NÚ
__delete__r  )r6   rò   r%  rG   r  r  r  r¯   r  r4   r  Ú__delattr__rD   )rb   r	  r  r  rU   rU   rV   r&  &  s,   



€ÿ
ÿzBaseModel.__delattr__c                 C  sT   | j  dd ¡r
d}nt| j |¡ddƒrd}nd S ||f|dœ}tj | jj|g¡‚)NÚfrozenÚfrozen_instanceFÚfrozen_field©r  ÚlocÚinput)	r3   rw   r  r4   Úpydantic_coreÚValidationErrorÚfrom_exception_datar  r¯   )rb   r}   r  ÚtypÚerrorrU   rU   rV   r  @  s   ýzBaseModel._check_frozenúdict[Any, Any]c                 C  s0   | j }|rdd„ | ¡ D ƒ}| j| j| j|dœS )Nc                 S  r  rU   r   rZ   rU   rU   rV   r^   Q  r  z*BaseModel.__getstate__.<locals>.<dictcomp>)rL   rD   rF   rG   )rG   r`   rL   rD   rF   )rb   ÚprivaterU   rU   rV   Ú__getstate__N  s   üzBaseModel.__getstate__Ústatec                 C  sD   t | d|d ƒ t | d|d ƒ t | d|d ƒ t | d|d ƒ d S )NrF   rD   rG   rL   )rx   )rb   r5  rU   rU   rV   Ú__setstate__Y  s   zBaseModel.__setstate__Úotherc                 C  sZ   t |tƒr+| jd p| j}|jd p|j}||ko*| j|jko*| j|jko*| j|jkS tS )NrÜ   )r¢   r/   r<   r  rL   rG   rD   ÚNotImplemented)rb   r7  Ú	self_typeÚ
other_typerU   rU   rV   Ú__eq___  s   

ÿ
þ
üzBaseModel.__eq__úUnpack[ConfigDict]c                 K  r´   )aâ  This signature is included purely to help type-checkers check arguments to class declaration, which
            provides a way to conveniently set model_config key/value pairs.

            ```py
            from pydantic import BaseModel

            class MyModel(BaseModel, extra='allow'):
                ...
            ```

            However, this may be deceiving, since the _actual_ calls to `__init_subclass__` will not receive any
            of the config arguments, and will only receive any keyword arguments passed during class initialization
            that are _not_ expected keys in ConfigDict. (This is due to the way `ModelMetaclass.__new__` works.)

            Args:
                **kwargs: Keyword arguments passed to the class definition, which set model_config

            Note:
                You may want to override `__pydantic_init_subclass__` instead, which behaves similarly but is called
                *after* the class is fully initialized.
            NrU   rá   rU   rU   rV   Ú__init_subclass__u  s    zBaseModel.__init_subclass__ÚTupleGeneratorc                 c  s<   � dd„ | j  ¡ D ƒE dH  | j}|r| ¡ E dH  dS dS )zSo `dict(model)` works.c                 S  s"   g | ]\}}|  d ¡s||f‘qS )Ú_)Ú
startswithrZ   rU   rU   rV   r¦   Ž  s   " z&BaseModel.__iter__.<locals>.<listcomp>N)rL   r`   rD   )rb   rm   rU   rU   rV   Ú__iter__Œ  s   €ÿzBaseModel.__iter__c                 C  s   |   ¡ › d|  d¡› d�S )Nú(r§   ú))Ú__repr_name__Ú__repr_str__ra   rU   rU   rV   Ú__repr__“  s   zBaseModel.__repr__ú_repr.ReprArgsc                 #  s    � ˆ j  ¡ D ]\}}ˆ j |¡}|r|jr||fV  qzt ˆ d¡}W n ty.   d }Y nw |d ur?dd„ | ¡ D ƒE d H  ‡ fdd„ˆ j ¡ D ƒE d H  d S )NrD   c                 s  s   � | ]	\}}||fV  qd S ré   rU   rZ   rU   rU   rV   rî   ¦  rï   z*BaseModel.__repr_args__.<locals>.<genexpr>c                 3  s(   � | ]\}}|j r|tˆ |ƒfV  qd S ré   )Úreprr  rZ   ra   rU   rV   rî   §  s   €& )	rL   r`   r4   rw   rH  r  r  r  rc   )rb   r\   r]   r~   r  rU   ra   rV   Ú__repr_args__–  s   €

€ÿ"zBaseModel.__repr_args__c                 C  s
   |   d¡S )Nú )rE  ra   rU   rU   rV   Ú__str__¯  s   
zBaseModel.__str__úEThe `__fields__` attribute is deprecated, use `model_fields` instead.)Úcategoryúdict[str, FieldInfo]c                 C  ó   t  dt¡ | jS )NrL  )r�   ÚwarnÚDeprecationWarningr4   ra   rU   rU   rV   Ú
__fields__³  s   zBaseModel.__fields__úMThe `__fields_set__` attribute is deprecated, use `model_fields_set` instead.c                 C  rO  )NrS  )r�   rP  rQ  rF   ra   rU   rU   rV   Ú__fields_set__»  s   ÿzBaseModel.__fields_set__ú:The `dict` method is deprecated; use `model_dump` instead.©r‰   rŠ   r‹   rŒ   r�   rŽ   útyping.Dict[str, Any]c                C  s"   t  dt¡ | j||||||d�S )NrU  rV  )r�   rP  rQ  r”   )rb   r‰   rŠ   r‹   rŒ   r�   rŽ   rU   rU   rV   rö   Æ  s   úzBaseModel.dictú?The `json` method is deprecated; use `model_dump_json` instead.)r‰   rŠ   r‹   rŒ   r�   rŽ   ÚencoderÚmodels_as_dictrY  ú"typing.Callable[[Any], Any] | NonerZ  Údumps_kwargsc          
      K  sN   t  dt¡ |turtdƒ‚|turtdƒ‚|	rtdƒ‚| j||||||d�S )NrX  zMThe `encoder` argument is no longer supported; use field serializers instead.zUThe `models_as_dict` argument is no longer supported; use a model serializer instead.z9`dumps_kwargs` keyword arguments are no longer supported.rV  )r�   rP  rQ  r   r­   r›   )
rb   r‰   rŠ   r‹   rŒ   r�   rŽ   rY  rZ  r\  rU   rU   rV   ÚjsonÝ  s   úzBaseModel.jsonúCThe `parse_obj` method is deprecated; use `model_validate` instead.c                 C  ó   t  dt¡ |  |¡S )Nr^  ©r�   rP  rQ  rÐ   ©rg   rÏ   rU   rU   rV   Ú	parse_objý  ó   
zBaseModel.parse_objú�The `parse_raw` method is deprecated; if your data is JSON use `model_validate_json`, otherwise load the data then use `model_validate` instead.Úutf8)Úcontent_typeÚencodingÚprotoÚallow_pickleÚbústr | bytesrf  ú
str | Nonerg  rh  úDeprecatedParseProtocol | Noneri  c             
   C  sÀ   t  dt¡ ddlm} z|j|||||d�}W nB ttfyZ } z4dd l}	t	|t
ƒr.d}
nt	||	jƒr7d}
n
t	|tƒr?d}
nd	}
t |
t|ƒ¡d
|dœ}tj | j|g¡‚d }~ww |  |¡S )Nrd  r	   ©Úparse©rh  rf  rg  ri  r   zvalue_error.unicodedecodezvalue_error.jsondecodeÚvalue_errorÚ
type_error)Ú__root__r*  )r�   rP  rQ  Ú
deprecatedro  Úload_str_bytesr!  r­   r]  r¢   ÚUnicodeDecodeErrorÚJSONDecodeErrorr-  ÚPydanticCustomErrorr˜   r.  r/  r¯   rÐ   )rg   rj  rf  rg  rh  ri  ro  rÏ   r  r]  Útype_strr1  rU   rU   rV   Ú	parse_raw  s<   ý
û

ü€ì
zBaseModel.parse_rawz˜The `parse_file` method is deprecated; load the data from file, then if your data is JSON use `model_validate_json`, otherwise `model_validate` instead.Úpathú
str | Pathc                C  s6   t  dt¡ ddlm} |j|||||d�}|  |¡S )Nz—The `parse_file` method is deprecated; load the data from file, then if your data is JSON use `model_validate_json` otherwise `model_validate` instead.r	   rn  rp  )r�   rP  rQ  rt  ro  Ú	load_filerb  )rg   r{  rf  rg  rh  ri  ro  rÏ   rU   rU   rV   Ú
parse_file:  s   ýû
zBaseModel.parse_filezqThe `from_orm` method is deprecated; set `model_config['from_attributes']=True` and use `model_validate` instead.c                 C  s0   t  dt¡ | j dd ¡stdd d�‚|  |¡S )NzqThe `from_orm` method is deprecated; set `model_config["from_attributes"]=True` and use `model_validate` instead.rÍ   zHYou must set the config attribute `from_attributes=True` to use from_orm©rJ   )r�   rP  rQ  r3   rw   r   rÐ   ra  rU   rU   rV   Úfrom_ormY  s   ýÿ
zBaseModel.from_ormúDThe `construct` method is deprecated; use `model_construct` instead.c                 K  s    t  dt¡ | jdd|i|¤ŽS )Nr�  ri   rU   )r�   rP  rQ  r€   )rg   ri   rk   rU   rU   rV   Ú	constructk  s   zBaseModel.constructz8The copy method is deprecated; use `model_copy` instead.)r‰   rŠ   rv   r�   ú+AbstractSetIntStr | MappingIntStrAny | Noneútyping.Dict[str, Any] | Nonec             	   C  s  t  dt¡ ddlm} t|j| dd||dd�fi |pi ¤Ž}| jdu r'd}n
dd„ | j ¡ D ƒ}| j	du r9d}n)| j	 
¡ }t| j	ƒD ]}	|	|vrN| |	¡ qCt|ƒD ]}	|	| j	v ra| |	¡||	< qS|rl| j| ¡ B }
nt| jƒ}
|ry|
t|ƒ8 }
|j| ||
|||d	�S )
a½  Returns a copy of the model.

        !!! warning "Deprecated"
            This method is now deprecated; use `model_copy` instead.

        If you need `include` or `exclude`, use:

        ```py
        data = self.model_dump(include=include, exclude=exclude, round_trip=True)
        data = {**data, **(update or {})}
        copied = self.model_validate(data)
        ```

        Args:
            include: Optional set or mapping
                specifying which fields to include in the copied model.
            exclude: Optional set or mapping
                specifying which fields to exclude in the copied model.
            update: Optional dictionary of field-value pairs to override field values
                in the copied model.
            deep: If True, the values of fields that are Pydantic models will be deep copied.

        Returns:
            A copy of the model with included, excluded and updated fields as specified.
        z™The `copy` method is deprecated; use `model_copy` instead. See the docstring of `BaseModel.copy` for details about how to handle `include` and `exclude`.r	   ©Úcopy_internalsF)Úto_dictr‹   r‰   rŠ   rŒ   Nc                 S  r  rU   r   rZ   rU   rU   rV   r^   §  r  z"BaseModel.copy.<locals>.<dictcomp>)r�   )r�   rP  rQ  rt  r†  rö   Ú_iterrG   r`   rD   r   Úlistrq   rF   ru   rt   Ú_copy_and_set_values)rb   r‰   rŠ   rv   r�   r†  rk   r3  rm   r\   Ú
fields_setrU   rU   rV   r   s  s@   $ýÿÿü



€
€
zBaseModel.copyúCThe `schema` method is deprecated; use `model_json_schema` instead.c                 C  s   t  dt¡ | j||d�S )NrŒ  ©r‹   r�   )r�   rP  rQ  r   )rg   r‹   r�   rU   rU   rV   ÚschemaÀ  s   zBaseModel.schemaúWThe `schema_json` method is deprecated; use `model_json_schema` and json.dumps instead.r�  c                K  s@   dd l }t dt¡ ddlm} |j| j||d�fd|i|¤ŽS )Nr   r�  r	   )Úpydantic_encoderr�  Údefault)r]  r�   rP  rQ  Údeprecated.jsonr�  Údumpsr   )rg   r‹   r�   r\  r]  r�  rU   rU   rV   Úschema_jsonÊ  s   þÿþýzBaseModel.schema_jsonúBThe `validate` method is deprecated; use `model_validate` instead.c                 C  r_  )Nr•  r`  )rg   r  rU   rU   rV   Úvalidateà  rc  zBaseModel.validateúLThe `update_forward_refs` method is deprecated; use `model_rebuild` instead.Úlocalnsc                 K  s(   t  dt¡ |rtdƒ‚| jdd� d S )Nr—  z,`localns` arguments are not longer accepted.T)r¶   )r�   rP  rQ  r­   rÊ   )rg   r˜  rU   rU   rV   Úupdate_forward_refsè  s   ÿzBaseModel.update_forward_refsúHThe private method `_iter` will be removed and should no longer be used.rè   c                 O  ó0   t  dt¡ ddlm} |j| g|¢R i |¤ŽS )Nrš  r	   r…  )r�   rP  rQ  rt  r†  rˆ  ©rb   rè   rà   r†  rU   rU   rV   rˆ  õ  s   zBaseModel._iterzWThe private method `_copy_and_set_values` will be removed and should no longer be used.c                 O  r›  )NzXThe private method  `_copy_and_set_values` will be removed and should no longer be used.r	   r…  )r�   rP  rQ  rt  r†  rŠ  rœ  rU   rU   rV   rŠ  ÿ  s   þzBaseModel._copy_and_set_valueszMThe private method `_get_value` will be removed and should no longer be used.c                 O  r›  )NzNThe private method  `_get_value` will be removed and should no longer be used.r	   r…  )r�   rP  rQ  rt  r†  Ú
_get_value)rg   rè   rà   r†  rU   rU   rV   r�    s
   ÿzBaseModel._get_valueúRThe private method `_calculate_keys` will be removed and should no longer be used.c                 O  r›  )Nrž  r	   r…  )r�   rP  rQ  rt  r†  Ú_calculate_keysrœ  rU   rU   rV   rŸ    s
   ÿzBaseModel._calculate_keys)rM   r   rN   rO   )rN   rX   )rN   rC   )rN   rE   ré   )rg   rh   ri   rj   rk   r   rN   r.   )rb   r.   rv   rC   r�   r‚   rN   r.   )rˆ   r‘   r‰   r1   rŠ   r1   r‹   r‚   rŒ   r‚   r�   r‚   rŽ   r‚   r�   r‚   r�   r‚   rN   r’   )r–   r—   r‰   r1   rŠ   r1   r‹   r‚   rŒ   r‚   r�   r‚   rŽ   r‚   r�   r‚   r�   r‚   rN   r˜   )
r‹   r‚   r�   r˜   rž   rŸ   rˆ   r   rN   r’   )r    r¡   rN   r˜   )r³   r   rN   rO   )
r¶   r‚   r·   r‚   r¸   rº   r¹   rC   rN   r»   )rg   rh   rÏ   r   rÌ   r»   rÍ   r»   rÎ   rC   rN   r.   )
rg   rh   rÒ   rÓ   rÌ   r»   rÎ   rC   rN   r.   )
rg   rh   rÏ   r   rÌ   r»   rÎ   rC   rN   r.   )rÙ   rÚ   rÛ   r   rN   r"   )rÞ   r"   rÛ   r   rN   r   )rà   r   rN   rO   )rã   rä   rN   rå   )rb   r.   rN   r.   )rb   r.   r  r  rN   r.   )r	  r˜   rN   r   )r}   r˜   r  r   rN   rO   )rN   r2  )r5  r2  rN   rO   )r7  r   rN   r‚   )rà   r<  )rN   r>  )rN   r˜   )rN   rG  )rN   rN  )r‰   r1   rŠ   r1   r‹   r‚   rŒ   r‚   r�   r‚   rŽ   r‚   rN   rW  )r‰   r1   rŠ   r1   r‹   r‚   rŒ   r‚   r�   r‚   rŽ   r‚   rY  r[  rZ  r‚   r\  r   rN   r˜   )rg   rh   rÏ   r   rN   r.   )rg   rh   rj  rk  rf  rl  rg  r˜   rh  rm  ri  r‚   rN   r.   )rg   rh   r{  r|  rf  rl  rg  r˜   rh  rm  ri  r‚   rN   r.   )rb   r.   r‰   rƒ  rŠ   rƒ  rv   r„  r�   r‚   rN   r.   )r‹   r‚   r�   r˜   rN   rW  )r‹   r‚   r�   r˜   r\  r   rN   r˜   )rg   rh   r  r   rN   r.   )r˜  r   rN   rO   )rè   r   rà   r   rN   r   )[r¯   Ú
__module__Ú__qualname__Ú__doc__r«   ÚTYPE_CHECKINGÚ__annotations__Ú_FieldrD   rF   rG   r4   r   ÚDecoratorInfosr;   r   Ú
MockValSerrA   r@   Ú	__slots__r   r3   r8   r?   rW   Ú__pydantic_base_init__r   rc   re   rf   Úclassmethodr€   r†   r”   r›   r   r   r   r²   ry   rÊ   rÐ   rÖ   rØ   rÝ   rß   râ   r  r„   rƒ   r  r$  r&  r  r4  r6  r;  r=  rA  rF  rI  r   ÚRepresentationrD  rE  Ú
__pretty__Ú__rich_repr__rK  Útyping_extensionsrt  r   rR  rT  rö   r   r]  rb  rz  r~  r€  r‚  r   rŽ  r”  r–  r™  rˆ  rŠ  r�  rŸ  Ú__classcell__rU   rU   r  rV   r/   <   sì  
 ýý	1õ1õ,ûú7úûû@ +ÿþÿøÿöÿý	ù/ý	ùýÿÿúJÿÿþÿÿþÿþ	þ	þ)Ú	metaclass)Ú
__config__r¢  Ú__base__r   Ú__validators__Ú__cls_kwargs__Ú__model_namer˜   r±  úConfigDict | Noner¢  rl  r²  rO   r   r³  údict[str, classmethod] | Noner´  rC   Úfield_definitionsr   rN   rÚ   c                K  ó   d S ré   rU   ©rµ  r±  r¢  r²  r   r³  r´  r¸  rU   rU   rV   r2   (  ó   r2   )r±  r¢  r   r³  r´  ú%type[Model] | tuple[type[Model], ...]rh   c                K  r¹  ré   rU   rº  rU   rU   rV   r2   7  r»  )r±  r¢  r²  r   r³  r´  r¨  ú,type[Model] | tuple[type[Model], ...] | Noner¨  útuple[str, ...] | Nonec                K  s¶  |dur
t  dt¡ |dur!|durtddd�‚t|tƒs |f}n
t tjd t	¡f}|p.i }i }	i }
| 
¡ D ]G\}}t |¡sJt  d|› d�t¡ t|tƒrot d	|¡}z|\}}W n tyn } ztd
dd�|‚d}~ww d|}}|rz||
|< ||	|< q7|du r�t d¡}|jd }|
|dœ}|r›| d|i¡ |r¢| |¡ | |	¡ |r±t |¡j|d< t |¡}tj| ||d�\}}}||urÉ||d< | |¡ || ||fd|dœ|¤ŽS )a+  Dynamically creates and returns a new Pydantic model, in other words, `create_model` dynamically creates a
    subclass of [`BaseModel`][pydantic.BaseModel].

    Args:
        __model_name: The name of the newly created model.
        __config__: The configuration of the new model.
        __doc__: The docstring of the new model.
        __base__: The base class for the new model.
        __module__: The name of the module that the model belongs to,
            if `None` the value is taken from `sys._getframe(1)`
        __validators__: A dictionary of methods that validate fields.
        __cls_kwargs__: A dictionary of keyword arguments for class creation.
        __slots__: Deprecated. Should not be passed to `create_model`.
        **field_definitions: Attributes of the new model. They should be passed in the format:
            `<name>=(<type>, <default value>)` or `<name>=(<type>, <FieldInfo>)`.

    Returns:
        The new [model][pydantic.BaseModel].

    Raises:
        PydanticUserError: If `__base__` and `__config__` are both passed.
    Nz.__slots__ should not be passed to create_modelzFto avoid confusion `__config__` and `__base__` cannot be used togetherzcreate-model-config-baser  r.   z3fields may not start with an underscore, ignoring "r  ztuple[str, Any]z4Field definitions should be a `(<type>, <default>)`.zcreate-model-field-definitionsr	   r¯   )r¤  r   r¢  r3   )ÚkwdsÚ__orig_bases__F)Ú#__pydantic_reset_parent_namespace__Ú_create_model_module)r�   rP  ÚRuntimeWarningr   r¢   rô   r«   ÚcastÚTyper/   r`   r   r  r!  ÚsysÚ	_getframeÚ	f_globalsrv   r
   rÆ   Úconfig_dictÚtypesÚresolve_basesÚprepare_class)rµ  r±  r¢  r²  r   r³  r´  r¨  r¸  Úfieldsr   Úf_nameÚf_defÚf_annotationÚf_valueÚeÚfÚ	namespaceÚresolved_basesÚmetaÚnsr¿  rU   rU   rV   r2   F  sz   "þ
€

þý€ÿ








ýûú)rµ  r˜   r±  r¶  r¢  rl  r²  rO   r   r˜   r³  r·  r´  rC   r¸  r   rN   rÚ   )rµ  r˜   r±  r¶  r¢  rl  r²  r¼  r   r˜   r³  r·  r´  rC   r¸  r   rN   rh   )rµ  r˜   r±  r¶  r¢  rl  r²  r½  r   rl  r³  r·  r´  rC   r¨  r¾  r¸  r   rN   rh   )Sr¢  Ú
__future__r   Ú_annotationsrÆ  rÊ  r«   r�   r   r   r   r   r-  r®  r   Ú	_internalr
   r   r   r   r   r   r   r   r   r   Ú
_migrationr   Úannotated_handlersr   r   rÉ   r   Úerrorsr   r   Újson_schemar   r   r   r   r   r   r£  Úinspectr    Úpathlibr!   r"   r#   r$   r%   r&   Ú_internal._utilsr'   r(   Údeprecated.parser)   ÚDeprecatedParseProtocolrÍ  r*   r+   r,   r-   r¥  Ú	GeneratorÚTupler˜   r>  ÚTypeVarr.   r1   r¤  rQ  Ú__all__Úobject_setattrrx   ÚModelMetaclassr/   Úoverloadr¯   r2   r  rU   rU   rU   rV   Ú<module>   s†    0         uøø÷e