82 lines
2.3 KiB
Python
82 lines
2.3 KiB
Python
from __future__ import annotations
|
|
|
|
import importlib.metadata
|
|
import typing
|
|
|
|
from packaging.version import Version
|
|
|
|
from marshmallow.decorators import (
|
|
post_dump,
|
|
post_load,
|
|
pre_dump,
|
|
pre_load,
|
|
validates,
|
|
validates_schema,
|
|
)
|
|
from marshmallow.exceptions import ValidationError
|
|
from marshmallow.schema import Schema, SchemaOpts
|
|
from marshmallow.utils import EXCLUDE, INCLUDE, RAISE, missing, pprint
|
|
|
|
from . import fields
|
|
|
|
|
|
def __getattr__(name: str) -> typing.Any:
|
|
import warnings
|
|
|
|
if name == "__version__":
|
|
warnings.warn(
|
|
"The '__version__' attribute is deprecated and will be removed in"
|
|
" in a future version. Use feature detection or"
|
|
" 'importlib.metadata.version(\"marshmallow\")' instead.",
|
|
DeprecationWarning,
|
|
stacklevel=2,
|
|
)
|
|
return importlib.metadata.version("marshmallow")
|
|
|
|
if name == "__parsed_version__":
|
|
warnings.warn(
|
|
"The '__parsed_version__' attribute is deprecated and will be removed in"
|
|
" in a future version. Use feature detection or"
|
|
" 'packaging.Version(importlib.metadata.version(\"marshmallow\"))' instead.",
|
|
DeprecationWarning,
|
|
stacklevel=2,
|
|
)
|
|
return Version(importlib.metadata.version("marshmallow"))
|
|
|
|
if name == "__version_info__":
|
|
warnings.warn(
|
|
"The '__version_info__' attribute is deprecated and will be removed in"
|
|
" in a future version. Use feature detection or"
|
|
" 'packaging.Version(importlib.metadata.version(\"marshmallow\")).release' instead.",
|
|
DeprecationWarning,
|
|
stacklevel=2,
|
|
)
|
|
__parsed_version__ = Version(importlib.metadata.version("marshmallow"))
|
|
__version_info__: tuple[int, int, int] | tuple[int, int, int, str, int] = (
|
|
__parsed_version__.release # type: ignore[assignment]
|
|
)
|
|
if __parsed_version__.pre:
|
|
__version_info__ += __parsed_version__.pre # type: ignore[assignment]
|
|
return __version_info__
|
|
|
|
raise AttributeError(name)
|
|
|
|
|
|
__all__ = [
|
|
"EXCLUDE",
|
|
"INCLUDE",
|
|
"RAISE",
|
|
"Schema",
|
|
"SchemaOpts",
|
|
"fields",
|
|
"validates",
|
|
"validates_schema",
|
|
"pre_dump",
|
|
"post_dump",
|
|
"pre_load",
|
|
"post_load",
|
|
"pprint",
|
|
"ValidationError",
|
|
"missing",
|
|
]
|