Skip to content

Commit 2659a65

Browse files
committed
refactor(integrations): co-locate integration commands in integrations/ domain dir
- Remove commands/ stubs (handlers will live in domain dirs) - Move all integration CLI handlers out of __init__.py into integrations/ - Split into focused modules under integrations/: _helpers.py (340 lines) — domain helpers _install_commands.py (306 lines) — install / uninstall _migrate_commands.py (487 lines) — switch / upgrade _query_commands.py (442 lines) — list / use / search / info / catalog _commands.py (34 lines) — app objects + register() - __init__.py reduced by ~1400 lines; integration block replaced with register() call - Fix patch paths in tests to new module locations
1 parent 5372dcb commit 2659a65

13 files changed

Lines changed: 1644 additions & 1473 deletions

src/specify_cli/__init__.py

Lines changed: 3 additions & 1450 deletions
Large diffs are not rendered by default.

src/specify_cli/commands/extension.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/specify_cli/commands/init.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,12 +151,14 @@ def init(
151151
# Lazy imports to avoid circular dependency — __init__.py imports this module
152152
from .. import (
153153
_install_shared_infra_or_exit,
154-
_parse_integration_options,
155154
_print_cli_warning,
156-
_write_integration_json,
157155
ensure_executable_scripts,
158156
save_init_options,
159157
)
158+
from ..integrations._commands import (
159+
_parse_integration_options,
160+
_write_integration_json,
161+
)
160162
from ..integration_runtime import with_integration_setting as _with_integration_setting
161163

162164
show_banner()

src/specify_cli/commands/integration.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/specify_cli/commands/preset.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/specify_cli/commands/workflow.py

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
"""specify integration * commands — app objects and register() entry point."""
2+
from __future__ import annotations
3+
4+
import typer
5+
6+
from .._assets import get_speckit_version # noqa: F401 — re-exported for monkeypatching in tests
7+
8+
# Re-export helpers used by commands/init.py and tests
9+
from ._helpers import ( # noqa: F401
10+
_cli_error_detail,
11+
_cli_phase_label,
12+
_parse_integration_options,
13+
_write_integration_json,
14+
)
15+
16+
integration_app = typer.Typer(
17+
name="integration",
18+
help="Manage coding agent integrations",
19+
add_completion=False,
20+
)
21+
22+
integration_catalog_app = typer.Typer(
23+
name="catalog",
24+
help="Manage integration catalog sources",
25+
add_completion=False,
26+
)
27+
integration_app.add_typer(integration_catalog_app, name="catalog")
28+
29+
30+
def register(app: typer.Typer) -> None:
31+
from . import _install_commands # noqa: F401 — registers handlers via decorators
32+
from . import _migrate_commands # noqa: F401
33+
from . import _query_commands # noqa: F401
34+
app.add_typer(integration_app, name="integration")

0 commit comments

Comments
 (0)