From a86e44e14b8f7be5b6fa9fb2e6a1614da65a3918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Mazzucotelli?= Date: Wed, 10 Jul 2024 22:17:57 +0200 Subject: [PATCH] refactor: Add all previous modules for backward compatibility --- src/griffe/agents/__init__.py | 17 +++++++++++++ src/griffe/agents/inspector.py | 17 +++++++++++++ src/griffe/agents/nodes.py | 24 ++++++++++++++++++ src/griffe/agents/visitor.py | 17 +++++++++++++ src/griffe/c3linear.py | 17 +++++++++++++ src/griffe/cli.py | 17 +++++++++++++ src/griffe/collections.py | 17 +++++++++++++ src/griffe/dataclasses.py | 17 +++++++++++++ src/griffe/diff.py | 17 +++++++++++++ src/griffe/docstrings/__init__.py | 17 +++++++++++++ src/griffe/docstrings/dataclasses.py | 17 +++++++++++++ src/griffe/docstrings/google.py | 24 ++++++++++++++++++ src/griffe/docstrings/numpy.py | 24 ++++++++++++++++++ src/griffe/docstrings/parsers.py | 17 +++++++++++++ src/griffe/docstrings/sphinx.py | 24 ++++++++++++++++++ src/griffe/docstrings/utils.py | 38 ++++++++++++++++++++++++++++ src/griffe/encoders.py | 17 +++++++++++++ src/griffe/enumerations.py | 17 +++++++++++++ src/griffe/exceptions.py | 17 +++++++++++++ src/griffe/expressions.py | 17 +++++++++++++ src/griffe/extensions/__init__.py | 17 +++++++++++++ src/griffe/extensions/base.py | 17 +++++++++++++ src/griffe/extensions/dataclasses.py | 17 +++++++++++++ src/griffe/extensions/hybrid.py | 17 +++++++++++++ src/griffe/finder.py | 17 +++++++++++++ src/griffe/git.py | 17 +++++++++++++ src/griffe/importer.py | 17 +++++++++++++ src/griffe/loader.py | 17 +++++++++++++ src/griffe/logger.py | 17 +++++++++++++ src/griffe/merger.py | 17 +++++++++++++ src/griffe/mixins.py | 17 +++++++++++++ src/griffe/py.typed | 0 src/griffe/stats.py | 24 ++++++++++++++++++ src/griffe/tests.py | 17 +++++++++++++ 34 files changed, 617 insertions(+) create mode 100644 src/griffe/agents/__init__.py create mode 100644 src/griffe/agents/inspector.py create mode 100644 src/griffe/agents/nodes.py create mode 100644 src/griffe/agents/visitor.py create mode 100644 src/griffe/c3linear.py create mode 100644 src/griffe/cli.py create mode 100644 src/griffe/collections.py create mode 100644 src/griffe/dataclasses.py create mode 100644 src/griffe/diff.py create mode 100644 src/griffe/docstrings/__init__.py create mode 100644 src/griffe/docstrings/dataclasses.py create mode 100644 src/griffe/docstrings/google.py create mode 100644 src/griffe/docstrings/numpy.py create mode 100644 src/griffe/docstrings/parsers.py create mode 100644 src/griffe/docstrings/sphinx.py create mode 100644 src/griffe/docstrings/utils.py create mode 100644 src/griffe/encoders.py create mode 100644 src/griffe/enumerations.py create mode 100644 src/griffe/exceptions.py create mode 100644 src/griffe/expressions.py create mode 100644 src/griffe/extensions/__init__.py create mode 100644 src/griffe/extensions/base.py create mode 100644 src/griffe/extensions/dataclasses.py create mode 100644 src/griffe/extensions/hybrid.py create mode 100644 src/griffe/finder.py create mode 100644 src/griffe/git.py create mode 100644 src/griffe/importer.py create mode 100644 src/griffe/loader.py create mode 100644 src/griffe/logger.py create mode 100644 src/griffe/merger.py create mode 100644 src/griffe/mixins.py create mode 100644 src/griffe/py.typed create mode 100644 src/griffe/stats.py create mode 100644 src/griffe/tests.py diff --git a/src/griffe/agents/__init__.py b/src/griffe/agents/__init__.py new file mode 100644 index 00000000..e6f4aabd --- /dev/null +++ b/src/griffe/agents/__init__.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.agents` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/agents/inspector.py b/src/griffe/agents/inspector.py new file mode 100644 index 00000000..c8ae23fb --- /dev/null +++ b/src/griffe/agents/inspector.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.agents.inspector` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/agents/nodes.py b/src/griffe/agents/nodes.py new file mode 100644 index 00000000..b84c5007 --- /dev/null +++ b/src/griffe/agents/nodes.py @@ -0,0 +1,24 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.agents.nodes` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + if name == "Name": + warnings.warn( + "The `Name` class was renamed `ExportedName`.", + DeprecationWarning, + stacklevel=2, + ) + return griffe.ExportedName + return getattr(griffe, name) diff --git a/src/griffe/agents/visitor.py b/src/griffe/agents/visitor.py new file mode 100644 index 00000000..39b66539 --- /dev/null +++ b/src/griffe/agents/visitor.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.agents.visitor` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/c3linear.py b/src/griffe/c3linear.py new file mode 100644 index 00000000..ad9ac2b0 --- /dev/null +++ b/src/griffe/c3linear.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.c3linear` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/cli.py b/src/griffe/cli.py new file mode 100644 index 00000000..3687b757 --- /dev/null +++ b/src/griffe/cli.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.cli` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/collections.py b/src/griffe/collections.py new file mode 100644 index 00000000..cfa1e39c --- /dev/null +++ b/src/griffe/collections.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.collections` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/dataclasses.py b/src/griffe/dataclasses.py new file mode 100644 index 00000000..9d93ea75 --- /dev/null +++ b/src/griffe/dataclasses.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.dataclasses` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/diff.py b/src/griffe/diff.py new file mode 100644 index 00000000..91858e7b --- /dev/null +++ b/src/griffe/diff.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.diff` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/docstrings/__init__.py b/src/griffe/docstrings/__init__.py new file mode 100644 index 00000000..68a07db1 --- /dev/null +++ b/src/griffe/docstrings/__init__.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.docstrings` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/docstrings/dataclasses.py b/src/griffe/docstrings/dataclasses.py new file mode 100644 index 00000000..3d35e3ea --- /dev/null +++ b/src/griffe/docstrings/dataclasses.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.docstrings.dataclasses` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/docstrings/google.py b/src/griffe/docstrings/google.py new file mode 100644 index 00000000..cdcb96f2 --- /dev/null +++ b/src/griffe/docstrings/google.py @@ -0,0 +1,24 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.docstrings.google` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + if name == "parse": + warnings.warn( + "The 'parse' function was renamed 'parse_google'.", + DeprecationWarning, + stacklevel=2, + ) + return griffe.parse_google + return getattr(griffe, name) diff --git a/src/griffe/docstrings/numpy.py b/src/griffe/docstrings/numpy.py new file mode 100644 index 00000000..086ba608 --- /dev/null +++ b/src/griffe/docstrings/numpy.py @@ -0,0 +1,24 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.docstrings.numpy` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + if name == "parse": + warnings.warn( + "The 'parse' function was renamed 'parse_numpy'.", + DeprecationWarning, + stacklevel=2, + ) + return griffe.parse_numpy + return getattr(griffe, name) diff --git a/src/griffe/docstrings/parsers.py b/src/griffe/docstrings/parsers.py new file mode 100644 index 00000000..4af4ffec --- /dev/null +++ b/src/griffe/docstrings/parsers.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.docstrings.parsers` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/docstrings/sphinx.py b/src/griffe/docstrings/sphinx.py new file mode 100644 index 00000000..d8db028f --- /dev/null +++ b/src/griffe/docstrings/sphinx.py @@ -0,0 +1,24 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.docstrings.sphinx` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + if name == "parse": + warnings.warn( + "The 'parse' function was renamed 'parse_sphinx'.", + DeprecationWarning, + stacklevel=2, + ) + return griffe.parse_sphinx + return getattr(griffe, name) diff --git a/src/griffe/docstrings/utils.py b/src/griffe/docstrings/utils.py new file mode 100644 index 00000000..0d550c0f --- /dev/null +++ b/src/griffe/docstrings/utils.py @@ -0,0 +1,38 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.docstrings.utils` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + if name == "WarningCallable": + warnings.warn( + "The 'WarningCallable' class was renamed 'DocstringWarningCallable'.", + DeprecationWarning, + stacklevel=2, + ) + return griffe.DocstringWarningCallable + if name == "warning": + warnings.warn( + "The 'warning' function was renamed 'docstring_warning'.", + DeprecationWarning, + stacklevel=2, + ) + return griffe.docstring_warning + if name == "parse_annotation": + warnings.warn( + "The 'parse_annotation' function was renamed 'parse_docstring_annotation'.", + DeprecationWarning, + stacklevel=2, + ) + return griffe.parse_docstring_annotation + return getattr(griffe, name) diff --git a/src/griffe/encoders.py b/src/griffe/encoders.py new file mode 100644 index 00000000..f4732fba --- /dev/null +++ b/src/griffe/encoders.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.encoders` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/enumerations.py b/src/griffe/enumerations.py new file mode 100644 index 00000000..9d2ff622 --- /dev/null +++ b/src/griffe/enumerations.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.enumerations` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/exceptions.py b/src/griffe/exceptions.py new file mode 100644 index 00000000..6dc0f306 --- /dev/null +++ b/src/griffe/exceptions.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.exceptions` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/expressions.py b/src/griffe/expressions.py new file mode 100644 index 00000000..edff837f --- /dev/null +++ b/src/griffe/expressions.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.expressions` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/extensions/__init__.py b/src/griffe/extensions/__init__.py new file mode 100644 index 00000000..929fe915 --- /dev/null +++ b/src/griffe/extensions/__init__.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.extensions` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/extensions/base.py b/src/griffe/extensions/base.py new file mode 100644 index 00000000..b4138b5f --- /dev/null +++ b/src/griffe/extensions/base.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.extensions.base` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/extensions/dataclasses.py b/src/griffe/extensions/dataclasses.py new file mode 100644 index 00000000..549be610 --- /dev/null +++ b/src/griffe/extensions/dataclasses.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.extensions.dataclasses` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/extensions/hybrid.py b/src/griffe/extensions/hybrid.py new file mode 100644 index 00000000..31ea73a0 --- /dev/null +++ b/src/griffe/extensions/hybrid.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.extensions.hybrid` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/finder.py b/src/griffe/finder.py new file mode 100644 index 00000000..0ec8a748 --- /dev/null +++ b/src/griffe/finder.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.finder` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/git.py b/src/griffe/git.py new file mode 100644 index 00000000..f71162e5 --- /dev/null +++ b/src/griffe/git.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.git` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/importer.py b/src/griffe/importer.py new file mode 100644 index 00000000..c872edf2 --- /dev/null +++ b/src/griffe/importer.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.importer` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/loader.py b/src/griffe/loader.py new file mode 100644 index 00000000..dc7aae59 --- /dev/null +++ b/src/griffe/loader.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.loader` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/logger.py b/src/griffe/logger.py new file mode 100644 index 00000000..24fd5c5c --- /dev/null +++ b/src/griffe/logger.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.logger` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/merger.py b/src/griffe/merger.py new file mode 100644 index 00000000..102b955b --- /dev/null +++ b/src/griffe/merger.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.merger` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/mixins.py b/src/griffe/mixins.py new file mode 100644 index 00000000..c95dec1b --- /dev/null +++ b/src/griffe/mixins.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.mixins` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name) diff --git a/src/griffe/py.typed b/src/griffe/py.typed new file mode 100644 index 00000000..e69de29b diff --git a/src/griffe/stats.py b/src/griffe/stats.py new file mode 100644 index 00000000..ca560fb6 --- /dev/null +++ b/src/griffe/stats.py @@ -0,0 +1,24 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.stats` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + if name == "stats": + warnings.warn( + "The 'stats' function was made into a class and renamed 'Stats'.", + DeprecationWarning, + stacklevel=2, + ) + return griffe.Stats + return getattr(griffe, name) diff --git a/src/griffe/tests.py b/src/griffe/tests.py new file mode 100644 index 00000000..225db1ad --- /dev/null +++ b/src/griffe/tests.py @@ -0,0 +1,17 @@ +"""Deprecated. Import from `griffe` directly.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import griffe + + +def __getattr__(name: str) -> Any: + warnings.warn( + "Importing from `griffe.tests` is deprecated. Import from `griffe` directly instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(griffe, name)