a
    hr                     @  s  d Z ddlmZ ddlZddl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 dd
lmZ dZde  dZed ZG dd dZG dd deeZG dd deeZG dd deeZG dd deZG dd deZG dd deZee Z!dS )zPydantic-specific errors.    )annotationsN)AnyClassVarLiteral)Self)	Qualifier)_repr   )getattr_migration)version_short)PydanticUserErrorPydanticUndefinedAnnotationPydanticImportErrorPydanticSchemaGenerationErrorPydanticInvalidForJsonSchemaPydanticForbiddenQualifierPydanticErrorCodeszhttps://errors.pydantic.dev/z/u/)0zclass-not-fully-definedzcustom-json-schemazdecorator-missing-fieldzdiscriminator-no-fieldzdiscriminator-alias-typezdiscriminator-needs-literalzdiscriminator-aliaszdiscriminator-validatorzcallable-discriminator-no-tagztyped-dict-versionzmodel-field-overriddenzmodel-field-missing-annotationzconfig-bothzremoved-kwargszcircular-reference-schemainvalid-for-json-schemazjson-schema-already-usedzbase-model-instantiatedundefined-annotationschema-for-unknown-typeimport-errorzcreate-model-field-definitionszvalidator-no-fieldszvalidator-invalid-fieldszvalidator-instance-methodzvalidator-input-typezroot-validator-pre-skipz model-serializer-instance-methodzvalidator-field-config-infozvalidator-v1-signaturezvalidator-signaturezfield-serializer-signaturezmodel-serializer-signaturezmultiple-field-serializerszinvalid-annotated-typeztype-adapter-config-unusedzroot-model-extrazunevaluable-type-annotationz dataclass-init-false-extra-allowzclashing-init-and-init-varzmodel-config-invalid-field-namezwith-config-on-modelzdataclass-on-modelzvalidate-call-typezunpack-typed-dictzoverlapping-unpack-typed-dictzinvalid-self-typez validate-by-alias-and-name-falsec                   @  s0   e Zd ZdZddddddZddd	d
ZdS )PydanticErrorMixinzA mixin class for common functionality shared by all Pydantic-specific errors.

    Attributes:
        message: A message describing the error.
        code: An optional error code from PydanticErrorCodes enum.
    strzPydanticErrorCodes | NoneNone)messagecodereturnc                C  s   || _ || _d S )Nr   r   )selfr   r    r   K/var/www/html/assistant/venv/lib/python3.9/site-packages/pydantic/errors.py__init__Z   s    zPydanticErrorMixin.__init__)r   c                 C  s*   | j d u r| jS | j dt | j  S d S )Nz 

For further information visit )r   r   DEV_ERROR_DOCS_URL)r   r   r   r    __str__^   s    
zPydanticErrorMixin.__str__N)__name__
__module____qualname____doc__r!   r#   r   r   r   r    r   R   s   r   c                   @  s   e Zd ZdZdS )r   z1An error raised due to incorrect use of Pydantic.N)r$   r%   r&   r'   r   r   r   r    r   e   s   r   c                      s>   e Zd ZdZdddd fddZeddd	d
dZ  ZS )r   zA subclass of `NameError` raised when handling undefined annotations during `CoreSchema` generation.

    Attributes:
        name: Name of the error.
        message: Description of the error.
    r   r   )namer   r   c                   s   || _ t j|dd d S )Nr   r   )r(   superr!   )r   r(   r   	__class__r   r    r!   q   s    z$PydanticUndefinedAnnotation.__init__	NameErrorr   )
name_errorr   c                 C  sD   z
|j }W n( ty2   tdt|d}Y n0 | |t|dS )zConvert a `NameError` to a `PydanticUndefinedAnnotation` error.

        Args:
            name_error: `NameError` to be converted.

        Returns:
            Converted `PydanticUndefinedAnnotation` error.
        z	.*'(.+?)'r	   )r(   r   )r(   AttributeErrorresearchr   group)clsr-   r(   r   r   r    from_name_erroru   s
    

z+PydanticUndefinedAnnotation.from_name_error)r$   r%   r&   r'   r!   classmethodr3   __classcell__r   r   r*   r    r   i   s   r   c                      s(   e Zd ZdZddd fddZ  ZS )r   zAn error raised when an import fails due to module changes between V1 and V2.

    Attributes:
        message: Description of the error.
    r   r   r   r   c                   s   t  j|dd d S )Nr   r   r)   r!   r   r   r*   r   r    r!      s    zPydanticImportError.__init__r$   r%   r&   r'   r!   r5   r   r   r*   r    r      s   r   c                      s(   e Zd ZdZddd fddZ  ZS )r   zAn error raised during failures to generate a `CoreSchema` for some type.

    Attributes:
        message: Description of the error.
    r   r   r6   c                   s   t  j|dd d S )Nr   r7   r8   r9   r*   r   r    r!      s    z&PydanticSchemaGenerationError.__init__r:   r   r   r*   r    r      s   r   c                      s(   e Zd ZdZddd fddZ  ZS )r   zAn error raised during failures to generate a JSON schema for some `CoreSchema`.

    Attributes:
        message: Description of the error.
    r   r   r6   c                   s   t  j|dd d S )Nr   r7   r8   r9   r*   r   r    r!      s    z%PydanticInvalidForJsonSchema.__init__r:   r   r   r*   r    r      s   r   c                      sF   e Zd ZU dZdddddddZd	ed
< dddd fddZ  ZS )r   zLAn error raised if a forbidden type qualifier is found in a type annotation.ztyping.Requiredztyping.NotRequiredztyping.ReadOnlyztyping.ClassVarzdataclasses.InitVarztyping.Final)requiredZnot_requiredZ	read_onlyZ	class_varZinit_varfinalzClassVar[dict[Qualifier, str]]_qualifier_repr_mapr   r   r   )	qualifier
annotationr   c                   s.   t  jdt|d| j| dd d d S )NzThe annotation z contains the z? type qualifier, which is invalid in the context it is defined.r   )r)   r!   r   Zdisplay_as_typer=   )r   r>   r?   r*   r   r    r!      s    z#PydanticForbiddenQualifier.__init__)r$   r%   r&   r'   r=   __annotations__r!   r5   r   r   r*   r    r      s   
	r   )"r'   
__future__r   Z_annotationsr/   typingr   r   r   Ztyping_extensionsr   Ztyping_inspection.introspectionr   Zpydantic._internalr   Z
_migrationr
   versionr   __all__r"   r   r   	TypeErrorr   r,   r   ImportErrorr   r   r   r   r$   __getattr__r   r   r   r    <module>   s*   4