updates
This commit is contained in:
@@ -1,9 +1,14 @@
|
||||
"""Pydantic-specific errors."""
|
||||
|
||||
from __future__ import annotations as _annotations
|
||||
|
||||
import re
|
||||
from typing import Any, ClassVar, Literal
|
||||
|
||||
from typing_extensions import Literal, Self
|
||||
from typing_extensions import Self
|
||||
from typing_inspection.introspection import Qualifier
|
||||
|
||||
from pydantic._internal import _repr
|
||||
|
||||
from ._migration import getattr_migration
|
||||
from .version import version_short
|
||||
@@ -14,6 +19,7 @@ __all__ = (
|
||||
'PydanticImportError',
|
||||
'PydanticSchemaGenerationError',
|
||||
'PydanticInvalidForJsonSchema',
|
||||
'PydanticForbiddenQualifier',
|
||||
'PydanticErrorCodes',
|
||||
)
|
||||
|
||||
@@ -36,6 +42,7 @@ PydanticErrorCodes = Literal[
|
||||
'model-field-missing-annotation',
|
||||
'config-both',
|
||||
'removed-kwargs',
|
||||
'circular-reference-schema',
|
||||
'invalid-for-json-schema',
|
||||
'json-schema-already-used',
|
||||
'base-model-instantiated',
|
||||
@@ -43,10 +50,10 @@ PydanticErrorCodes = Literal[
|
||||
'schema-for-unknown-type',
|
||||
'import-error',
|
||||
'create-model-field-definitions',
|
||||
'create-model-config-base',
|
||||
'validator-no-fields',
|
||||
'validator-invalid-fields',
|
||||
'validator-instance-method',
|
||||
'validator-input-type',
|
||||
'root-validator-pre-skip',
|
||||
'model-serializer-instance-method',
|
||||
'validator-field-config-info',
|
||||
@@ -55,9 +62,20 @@ PydanticErrorCodes = Literal[
|
||||
'field-serializer-signature',
|
||||
'model-serializer-signature',
|
||||
'multiple-field-serializers',
|
||||
'invalid_annotated_type',
|
||||
'invalid-annotated-type',
|
||||
'type-adapter-config-unused',
|
||||
'root-model-extra',
|
||||
'unevaluable-type-annotation',
|
||||
'dataclass-init-false-extra-allow',
|
||||
'clashing-init-and-init-var',
|
||||
'model-config-invalid-field-name',
|
||||
'with-config-on-model',
|
||||
'dataclass-on-model',
|
||||
'validate-call-type',
|
||||
'unpack-typed-dict',
|
||||
'overlapping-unpack-typed-dict',
|
||||
'invalid-self-type',
|
||||
'validate-by-alias-and-name-false',
|
||||
]
|
||||
|
||||
|
||||
@@ -146,4 +164,26 @@ class PydanticInvalidForJsonSchema(PydanticUserError):
|
||||
super().__init__(message, code='invalid-for-json-schema')
|
||||
|
||||
|
||||
class PydanticForbiddenQualifier(PydanticUserError):
|
||||
"""An error raised if a forbidden type qualifier is found in a type annotation."""
|
||||
|
||||
_qualifier_repr_map: ClassVar[dict[Qualifier, str]] = {
|
||||
'required': 'typing.Required',
|
||||
'not_required': 'typing.NotRequired',
|
||||
'read_only': 'typing.ReadOnly',
|
||||
'class_var': 'typing.ClassVar',
|
||||
'init_var': 'dataclasses.InitVar',
|
||||
'final': 'typing.Final',
|
||||
}
|
||||
|
||||
def __init__(self, qualifier: Qualifier, annotation: Any) -> None:
|
||||
super().__init__(
|
||||
message=(
|
||||
f'The annotation {_repr.display_as_type(annotation)!r} contains the {self._qualifier_repr_map[qualifier]!r} '
|
||||
f'type qualifier, which is invalid in the context it is defined.'
|
||||
),
|
||||
code=None,
|
||||
)
|
||||
|
||||
|
||||
__getattr__ = getattr_migration(__name__)
|
||||
|
||||
Reference in New Issue
Block a user