tokencrawler/.venv/lib/python3.9/site-packages/apischema/__init__.py
2022-03-17 22:16:30 +01:00

99 lines
2.3 KiB
Python

__all__ = [
"PassThroughOptions",
"Undefined",
"UndefinedType",
"Unsupported",
"ValidationError",
"alias",
"dependent_required",
"deserialization_method",
"deserialize",
"deserializer",
"identity",
"order",
"properties",
"schema",
"schema_ref",
"serialization_default",
"serialization_method",
"serialize",
"serialized",
"serializer",
"settings",
"type_name",
"validator",
]
import warnings
from . import ( # noqa: F401
cache,
conversions,
dataclasses,
fields,
json_schema,
metadata,
objects,
skip,
tagged_unions,
validation,
)
from .aliases import alias
from .conversions import deserializer, serializer
from .dependencies import dependent_required
from .deserialization import deserialization_method, deserialize
from .metadata import properties
from .ordering import order
from .schemas import schema
from .serialization import (
PassThroughOptions,
serialization_default,
serialization_method,
serialize,
)
from .serialization.serialized_methods import serialized
from .settings import settings
from .type_names import schema_ref, type_name
from .types import Undefined, UndefinedType
from .utils import identity
from .validation import ValidationError, validator
from .visitor import Unsupported
try:
import graphql as _gql
if _gql.__version__.startswith("2."):
warnings.warn(
f"graphql-core version {_gql.__version__} is incompatible with apischema;\n"
"GraphQL schema generation is thus not available."
)
else:
from . import graphql # noqa: F401
__all__.append("graphql")
del _gql
except ImportError:
pass
def __getattr__(name):
if name == "graphql":
raise AttributeError(
"GraphQL feature requires graphql-core library\n"
"Run `pip install apischema[graphql]` to install it"
)
if name == "skip":
warnings.warn("apischema.skip module is deprecated")
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
def register_default_conversions():
"""Handle standard library + internal types"""
from . import std_types # noqa: F401
deserializer(ValidationError.from_errors)
serializer(ValidationError.errors)
register_default_conversions()
del register_default_conversions