Commit Graph
83 Commits
Author SHA1 Message Date
jakob.scheid 908e299fa0 fix(python-generator): check for module namespace
Added a check whether a module namespace with the name off a directory
already exists before adding a package namespace for the directory.
2026-09-29 18:02:15 +02:00
jakob.scheid 6a4b5187e7 fix(python-generator): resolve directory path
The path to the directory is now completely resolved in
PythonDocumentationGenerator._namespace to prevent from empty path names
if the path is '.'. A fallback was also added for the case that the path
is '/'; the fallback value is irrelevant as the root namespace name is
not included in the output and only the root package path can be '/'.
2026-09-28 22:35:26 +02:00
jakob.scheid 37308227d9 chore: add noqa comments to wildcard imports
Added noqa comments to suppress linting warnings for wildcard imports.
2026-09-28 00:04:53 +02:00
jakob.scheid f796263c0e fix: fix syntax errors (target version)
Fixed all lines which were syntax errors in the target version (only
multi-line f-strings).
2026-09-28 00:04:53 +02:00
jakob.scheid 896bfcc2dd style: use target version practices 2026-09-28 00:04:53 +02:00
jakob.scheid ac72eb283c style: organize imports
Organized imports according to Ruff (I001).
2026-09-27 22:23:58 +02:00
jakob.scheid ec262ef99e feat(python-generator): check type at package namespace comparision
Added type check to the Python package namespace comparision function.
2026-09-27 22:15:57 +02:00
jakob.scheid 6d2b32a736 feat(python-generator): check type at module namespace comparision
Added type check to the Python module namespace comparision function.
2026-09-27 22:01:19 +02:00
jakob.scheid f0c271f8fd feat(cli): add Python generator force argument 2026-09-27 15:09:35 +02:00
jakob.scheid 5791358b41 feat(python-generator): add force argument to generator
Added a force argument to
PythonDocumentationGenerator.generate_documentation to control whether
the content of the output directory should be overwritten or not, if it
is not empty. If the force argument is True, the output directory
content will first be deleted recursively. If it is False and the output
directory is not empty, a DirectoryNotEmptyError will be raised.
2026-09-27 14:59:28 +02:00
jakob.scheid 0261a7b3a6 feat(exceptions): add DirectoryNotEmptyError
Added an OSError subclass for indicating that the directory is not
empty. This exception is explicitly handled by the CLI now.
2026-09-26 16:28:40 +02:00
jakob.scheid 0fbfe84657 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
2026-09-22 18:28:35 +02:00
jakob.scheid e2264696e8 feat(python-generator): create output directory
Now, the output directory and its parents are created when generating
the documentation.
2026-09-22 17:00:34 +02:00
jakob.scheid cc786a6c69 fix(python-generator): make signatures compliant with PEP 8
The '=' character at a parameter in the signature was surrounded with
spaces previously. That is no longer the case, unless there is a type
hint.
2026-09-22 15:55:57 +02:00
jakob.scheid de3eac3bb1 chore: lint source code using Ruff 2026-09-21 20:10:09 +02:00
jakob.scheid aa4a139878 style: format source code using Ruff 2026-09-21 20:10:04 +02:00
jakob.scheid 475775eb7e style: ensure trailing commas in multi-line statements 2026-09-18 22:18:13 +02:00
jakob.scheid 23e450e9df style: remove trailing whitespace
Removed all trailing whitespace.
2026-09-18 17:02:09 +02:00
jakob.scheid caa8e04047 style: limit line length to 79 characters
Limited the lengths of all lines to 79 characters (if possible).
Additionally, some other lines were breaked for consistence.
2026-09-18 16:57:45 +02:00
jakob.scheid 1ce3d8f9d1 refactor(cli): remove unnecessary, redundant __all__ 2026-09-13 20:10:22 +02:00
jakob.scheid 5e84156e01 fix(cli): copy VALID_SECTIONS when parsing sections list 2026-09-13 19:04:54 +02:00
jakob.scheid 089cf5f2ff refactor(cli): move sections list parsing to function 2026-09-13 19:04:54 +02:00
jakob.scheid 8644232a00 feat: add __main__ module
Added a __main__ module that calls the CLI main function.
2026-09-13 19:04:54 +02:00
jakob.scheid 2cb99d4ca9 feat(cli): add cli module to cli package __init__ module 2026-09-13 19:04:54 +02:00
jakob.scheid 8f5dc33369 feat(cli): import languages package 2026-09-13 19:04:54 +02:00
jakob.scheid 348be4f07f refactor(cli): rename 'parsers' package to 'languages' 2026-09-10 15:52:05 +02:00
jakob.scheid db0d36f956 feat(cli): add __all__ to cli.cli module 2026-09-10 13:37:45 +02:00
jakob.scheid 29d1c5bced refactor(cli): move parser creation to a function 2026-09-10 13:36:06 +02:00
jakob.scheid 3ab9884be0 feat(cli): add error handling
The CLI now handles error that may result from user input and prints an
error message. Following error types are handled:
 - file not found
 - not a directory
 - directory instead of file
 - file exists
 - permission error
 - general operating system errors
 - Unicode errors
 - errors parsing project source code

Additionally, KeyboardInterrupt and BrokenPipeError are catched and an
appropriate exit code is returned.
2026-09-10 13:36:03 +02:00
jakob.scheid 60a097f0cc feat(cli): allow to pass command line arguments to function 2026-09-10 09:58:18 +02:00
jakob.scheid bce073746e feat(cli): add Python CLI handling
Added a subparser for Python documentation and a function to generate
Python documentation.
2026-09-10 09:46:04 +02:00
jakob.scheid 350f8f9941 refactor(cli)!: make CLI a package 2026-09-05 20:38:59 +02:00
jakob.scheid 2d6de2028f feat(cli): add output directory option 2026-09-05 20:38:58 +02:00
jakob.scheid 436dacf806 feat(cli): make project_directory argument optional 2026-09-05 20:38:19 +02:00
jakob.scheid 78e3e020be fix(cli): check whether project directory exists and is a directory 2026-09-05 14:42:19 +02:00
jakob.scheid 36cedb390b refactor: update all instances of ExistingFile and ExistingDirectory in source code 2026-09-05 14:31:00 +02:00
jakob.scheid 5d8dbd659d chore(utils): mark ExistingDirectory and ExistingFile as deprecated 2026-09-05 14:24:19 +02:00
jakob.scheid 3428c54d99 style: ensure trailing newlines 2026-09-01 16:54:03 +02:00
jakob.scheid 44f80dbb6a Update licenses 2026-04-30 19:28:53 +02:00
jakob.scheid 14380b6515 Update licenses 2026-04-30 19:27:32 +02:00
jakob.scheid ce244df494 Add Python project documentation generator 2026-04-27 22:15:40 +02:00
jakob.scheid 22f3233381 Add internal function to generate the documentation of a package namespace 2026-04-26 22:23:18 +02:00
jakob.scheid a17e56fb3d Add Python module documentation generator 2026-04-25 19:34:34 +02:00
jakob.scheid f581774649 Add function to get the path segments of a path relative to another 2026-04-19 19:38:30 +02:00
jakob.scheid 3fd51d126f Add Python definition documentation generator 2026-04-19 19:12:33 +02:00
jakob.scheid 3b45c1a8ed Add function to ensure a non-empty string. 2026-04-19 19:10:45 +02:00
jakob.scheid b71b93000e Add feature to parse Python docstrings 2026-04-13 14:44:04 +02:00
jakob.scheid 16852f3d68 Add class for Python docstrings 2026-04-13 14:15:49 +02:00
jakob.scheid a8626418da Add feature to get the signature representation of a Python function argument 2026-04-13 12:19:08 +02:00
jakob.scheid a79b538de8 Add class for Python modules 2026-04-13 09:24:36 +02:00