diff --git a/desloppify/languages/_framework/treesitter/__init__.py b/desloppify/languages/_framework/treesitter/__init__.py index 0f5dad64e..03aecc0d3 100644 --- a/desloppify/languages/_framework/treesitter/__init__.py +++ b/desloppify/languages/_framework/treesitter/__init__.py @@ -16,6 +16,7 @@ import logging from desloppify.base.output.fallbacks import log_best_effort_failure + from .types import TreeSitterLangSpec logger = logging.getLogger(__name__) @@ -69,12 +70,18 @@ def reset_script_import_caches(scan_path: str | None = None) -> None: RuntimeError, ) +from .phases import ( # noqa: E402 + all_treesitter_phases, + make_ast_smells_phase, + make_cohesion_phase, + make_unused_imports_phase, +) from .specs.specs import ( # noqa: E402 BASH_SPEC, + C_SPEC, CLOJURE_SPEC, CPP_SPEC, CSHARP_SPEC, - C_SPEC, DART_SPEC, ELIXIR_SPEC, ERLANG_SPEC, @@ -101,12 +108,6 @@ def reset_script_import_caches(scan_path: str | None = None) -> None: TYPESCRIPT_SPEC, ZIG_SPEC, ) -from .phases import ( # noqa: E402 - all_treesitter_phases, - make_ast_smells_phase, - make_cohesion_phase, - make_unused_imports_phase, -) def get_spec(language: str) -> TreeSitterLangSpec | None: diff --git a/desloppify/languages/_framework/treesitter/_compat_bridge.py b/desloppify/languages/_framework/treesitter/_compat_bridge.py deleted file mode 100644 index bb9485aa4..000000000 --- a/desloppify/languages/_framework/treesitter/_compat_bridge.py +++ /dev/null @@ -1,20 +0,0 @@ -"""Shared compatibility bridge helpers for legacy tree-sitter wrapper modules.""" - -from __future__ import annotations - -from importlib import import_module -from types import ModuleType - - -def load_compat_exports(namespace: dict[str, object], module_path: str) -> tuple[ModuleType, list[str]]: - """Populate a wrapper module namespace from its canonical implementation.""" - impl = import_module(module_path) - exports = [name for name in dir(impl) if not name.startswith("__")] - namespace.update({name: getattr(impl, name) for name in exports}) - public = getattr(impl, "__all__", None) - if public is None: - public = [name for name in exports if not name.startswith("_")] - return impl, list(public) - - -__all__ = ["load_compat_exports"] diff --git a/desloppify/languages/_framework/treesitter/_complexity_function_metrics.py b/desloppify/languages/_framework/treesitter/_complexity_function_metrics.py deleted file mode 100644 index 5529aab2c..000000000 --- a/desloppify/languages/_framework/treesitter/_complexity_function_metrics.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.analysis.complexity_function_metrics. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.analysis.complexity_function_metrics") diff --git a/desloppify/languages/_framework/treesitter/_complexity_nesting.py b/desloppify/languages/_framework/treesitter/_complexity_nesting.py deleted file mode 100644 index 2d5888cfe..000000000 --- a/desloppify/languages/_framework/treesitter/_complexity_nesting.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.analysis.complexity_nesting. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.analysis.complexity_nesting") diff --git a/desloppify/languages/_framework/treesitter/_extractors.py b/desloppify/languages/_framework/treesitter/_extractors.py deleted file mode 100644 index 66c5d590e..000000000 --- a/desloppify/languages/_framework/treesitter/_extractors.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.analysis.extractors. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.analysis.extractors") diff --git a/desloppify/languages/_framework/treesitter/_import_cache.py b/desloppify/languages/_framework/treesitter/_import_cache.py deleted file mode 100644 index 2c513b817..000000000 --- a/desloppify/languages/_framework/treesitter/_import_cache.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.imports.resolver_cache. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.imports.resolver_cache") diff --git a/desloppify/languages/_framework/treesitter/_import_graph.py b/desloppify/languages/_framework/treesitter/_import_graph.py deleted file mode 100644 index e505d28b8..000000000 --- a/desloppify/languages/_framework/treesitter/_import_graph.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.imports.graph. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.imports.graph") diff --git a/desloppify/languages/_framework/treesitter/_import_resolvers_backend.py b/desloppify/languages/_framework/treesitter/_import_resolvers_backend.py deleted file mode 100644 index 19a4ec2a5..000000000 --- a/desloppify/languages/_framework/treesitter/_import_resolvers_backend.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.imports.resolvers_backend. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.imports.resolvers_backend") diff --git a/desloppify/languages/_framework/treesitter/_import_resolvers_functional.py b/desloppify/languages/_framework/treesitter/_import_resolvers_functional.py deleted file mode 100644 index 7ad33fd97..000000000 --- a/desloppify/languages/_framework/treesitter/_import_resolvers_functional.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.imports.resolvers_functional. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.imports.resolvers_functional") diff --git a/desloppify/languages/_framework/treesitter/_import_resolvers_scripts.py b/desloppify/languages/_framework/treesitter/_import_resolvers_scripts.py deleted file mode 100644 index 0c69b58a2..000000000 --- a/desloppify/languages/_framework/treesitter/_import_resolvers_scripts.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.imports.resolvers_scripts. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.imports.resolvers_scripts") diff --git a/desloppify/languages/_framework/treesitter/_normalize.py b/desloppify/languages/_framework/treesitter/_normalize.py deleted file mode 100644 index b4f8e3469..000000000 --- a/desloppify/languages/_framework/treesitter/_normalize.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.imports.normalize. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.imports.normalize") diff --git a/desloppify/languages/_framework/treesitter/_smells.py b/desloppify/languages/_framework/treesitter/_smells.py deleted file mode 100644 index b32256c11..000000000 --- a/desloppify/languages/_framework/treesitter/_smells.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.analysis.smells. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.analysis.smells") diff --git a/desloppify/languages/_framework/treesitter/_specs.py b/desloppify/languages/_framework/treesitter/_specs.py index 2bf3a4bbf..636eea814 100644 --- a/desloppify/languages/_framework/treesitter/_specs.py +++ b/desloppify/languages/_framework/treesitter/_specs.py @@ -1,10 +1,30 @@ """Compatibility bridge to grouped tree-sitter namespace module. -Canonical implementation now lives in desloppify.languages._framework.treesitter.specs.specs. +Canonical implementation lives in +desloppify.languages._framework.treesitter.specs.specs. """ from __future__ import annotations -from ._compat_bridge import load_compat_exports +from importlib import import_module +from types import ModuleType -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.specs.specs") + +def load_compat_exports( + namespace: dict[str, object], + module_path: str, +) -> tuple[ModuleType, list[str]]: + """Populate a wrapper module namespace from its canonical implementation.""" + impl = import_module(module_path) + exports = [name for name in dir(impl) if not name.startswith("__")] + namespace.update({name: getattr(impl, name) for name in exports}) + public = getattr(impl, "__all__", None) + if public is None: + public = [name for name in exports if not name.startswith("_")] + return impl, list(public) + + +_IMPL, __all__ = load_compat_exports( + globals(), + "desloppify.languages._framework.treesitter.specs.specs", +) diff --git a/desloppify/languages/_framework/treesitter/_specs_compiled.py b/desloppify/languages/_framework/treesitter/_specs_compiled.py deleted file mode 100644 index 71400b248..000000000 --- a/desloppify/languages/_framework/treesitter/_specs_compiled.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.specs.compiled. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.specs.compiled") diff --git a/desloppify/languages/_framework/treesitter/_specs_functional.py b/desloppify/languages/_framework/treesitter/_specs_functional.py deleted file mode 100644 index 134c3220f..000000000 --- a/desloppify/languages/_framework/treesitter/_specs_functional.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.specs.functional. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.specs.functional") diff --git a/desloppify/languages/_framework/treesitter/_specs_scripting.py b/desloppify/languages/_framework/treesitter/_specs_scripting.py deleted file mode 100644 index 26c4db4f6..000000000 --- a/desloppify/languages/_framework/treesitter/_specs_scripting.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.specs.scripting. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.specs.scripting") diff --git a/desloppify/languages/_framework/treesitter/_unused_imports.py b/desloppify/languages/_framework/treesitter/_unused_imports.py deleted file mode 100644 index a506af5e7..000000000 --- a/desloppify/languages/_framework/treesitter/_unused_imports.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Compatibility bridge to grouped tree-sitter namespace module. - -Canonical implementation now lives in desloppify.languages._framework.treesitter.analysis.unused_imports. -""" - -from __future__ import annotations - -from ._compat_bridge import load_compat_exports - -_IMPL, __all__ = load_compat_exports(globals(), "desloppify.languages._framework.treesitter.analysis.unused_imports")