Skip to content

Commit 4772456

Browse files
committed
refactor: Make griffe imports lazy in CLI
1 parent c869c97 commit 4772456

File tree

1 file changed

+23
-10
lines changed
  • packages/griffecli/src/griffecli/_internal

1 file changed

+23
-10
lines changed

packages/griffecli/src/griffecli/_internal/cli.py

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,13 @@
2424

2525
import colorama
2626

27-
from griffe._internal import debug
28-
from griffe._internal.diff import find_breaking_changes
29-
from griffe._internal.encoders import JSONEncoder
30-
from griffe._internal.enumerations import ExplanationStyle, Parser
31-
from griffe._internal.exceptions import ExtensionError, GitError
32-
from griffe._internal.extensions.base import load_extensions
33-
from griffe._internal.git import _get_latest_tag, _get_repo_root
34-
from griffe._internal.loader import GriffeLoader, load, load_git, load_pypi
35-
from griffe._internal.logger import logger
36-
3727
if TYPE_CHECKING:
3828
from collections.abc import Sequence
3929

4030
from griffe._internal.docstrings.parsers import DocstringOptions, DocstringStyle
31+
from griffe._internal.enumerations import ExplanationStyle, Parser
4132
from griffe._internal.extensions.base import Extension, Extensions
33+
from griffe._internal.loader import GriffeLoader
4234

4335

4436
DEFAULT_LOG_LEVEL = os.getenv("GRIFFE_LOG_LEVEL", "INFO").upper()
@@ -53,6 +45,8 @@ def __init__(self, nargs: int | str | None = 0, **kwargs: Any) -> None:
5345
super().__init__(nargs=nargs, **kwargs)
5446

5547
def __call__(self, *args: Any, **kwargs: Any) -> None: # noqa: ARG002
48+
from griffe._internal import debug # noqa: PLC0415
49+
5650
debug._print_debug_info()
5751
sys.exit(0)
5852

@@ -82,6 +76,9 @@ def _load_packages(
8276
store_source: bool = True,
8377
find_stubs_package: bool = False,
8478
) -> GriffeLoader:
79+
from griffe._internal.loader import GriffeLoader # noqa: PLC0415
80+
from griffe._internal.logger import logger # noqa: PLC0415
81+
8582
# Create a single loader.
8683
loader = GriffeLoader(
8784
extensions=extensions,
@@ -134,6 +131,9 @@ def get_parser() -> argparse.ArgumentParser:
134131
Returns:
135132
An argparse parser.
136133
"""
134+
from griffe._internal import debug # noqa: PLC0415
135+
from griffe._internal.enumerations import ExplanationStyle, Parser # noqa: PLC0415
136+
137137
usage = "%(prog)s [GLOBAL_OPTS...] COMMAND [COMMAND_OPTS...]"
138138
description = "Signatures for entire Python programs. "
139139
"Extract the structure, the frame, the skeleton of your project, "
@@ -372,6 +372,11 @@ def dump(
372372
Returns:
373373
`0` for success, `1` for failure.
374374
"""
375+
from griffe._internal.encoders import JSONEncoder # noqa: PLC0415
376+
from griffe._internal.exceptions import ExtensionError # noqa: PLC0415
377+
from griffe._internal.extensions.base import load_extensions # noqa: PLC0415
378+
from griffe._internal.logger import logger # noqa: PLC0415
379+
375380
# Prepare options.
376381
per_package_output = False
377382
if isinstance(output, str) and output.format(package="package") != output:
@@ -456,6 +461,14 @@ def check(
456461
Returns:
457462
`0` for success, `1` for failure.
458463
"""
464+
from griffe._internal.diff import find_breaking_changes # noqa: PLC0415
465+
from griffe._internal.enumerations import ExplanationStyle # noqa: PLC0415
466+
from griffe._internal.exceptions import ExtensionError, GitError # noqa: PLC0415
467+
from griffe._internal.extensions.base import load_extensions # noqa: PLC0415
468+
from griffe._internal.git import _get_latest_tag, _get_repo_root # noqa: PLC0415
469+
from griffe._internal.loader import load, load_git, load_pypi # noqa: PLC0415
470+
from griffe._internal.logger import logger # noqa: PLC0415
471+
459472
# Prepare options.
460473
search_paths = list(search_paths) if search_paths else []
461474
if append_sys_path:

0 commit comments

Comments
 (0)