From 0fbfe8465771dfc4235a52f85ad84855fa0fafd4 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Tue, 22 Sep 2026 17:52:00 +0200 Subject: [PATCH] feat(python-generator)!: do not require specific structure Removed all implicit assumptions of a project structure: - no 'src/' directory is required - top-level modules are no longer ignored --- src/jcloud_docsgen/cli/cli.py | 4 +--- src/jcloud_docsgen/core/python/_core.py | 16 ++++++---------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/src/jcloud_docsgen/cli/cli.py b/src/jcloud_docsgen/cli/cli.py index ae22588..1fae4e0 100644 --- a/src/jcloud_docsgen/cli/cli.py +++ b/src/jcloud_docsgen/cli/cli.py @@ -78,6 +78,7 @@ def create_argument_parser() -> argparse.ArgumentParser: '-o', '--output-dir', type=pathlib.Path, + default='docs/reference', help='the output directory the documentation will be written to', ) @@ -138,9 +139,6 @@ def main(argv=None) -> int: argument_parser = create_argument_parser() args = argument_parser.parse_args(argv) - if args.output_dir is None: - args.output_dir = args.project_directory / 'docs/reference' - try: if args.language == _LANG_PYTHON: from .languages.python import generate diff --git a/src/jcloud_docsgen/core/python/_core.py b/src/jcloud_docsgen/core/python/_core.py index f28fc10..73b6b26 100644 --- a/src/jcloud_docsgen/core/python/_core.py +++ b/src/jcloud_docsgen/core/python/_core.py @@ -1104,19 +1104,15 @@ class PythonDocumentationGenerator: return namespace - def namespace(self) -> list[PythonPackageNamespace]: + def namespace(self) -> PythonPackageNamespace: """ Returns the project as a namespace. :return: The project as a namespace. - :rtype: list[PythonPackageNamespace] + :rtype: PythonPackageNamespace: """ - src_dir = self.project_directory / 'src' - - return [ - self._namespace(dir) for dir in src_dir.iterdir() if dir.is_dir() - ] + return self._namespace(self.project_directory) def generate_documentation(self) -> None: """ @@ -1127,10 +1123,10 @@ class PythonDocumentationGenerator: self.docs_directory.mkdir(parents=True, exist_ok=True) _generate_package_namespace_documentation( - PythonPackageNamespace('src', self.namespace()), + self.namespace(), self.docs_directory, - self.project_directory / 'src', - self.project_directory / 'src', + self.project_directory, + self.project_directory, self.include_sections, self.kwargs, )