Commit Graph
88 Commits
Author SHA1 Message Date
jakob.scheid 8881f2d46a docs(changelog): add namespace error fix entry
Added a changelog entry for the namespace name error of the Python
project documentation generator.
2026-09-28 22:35:31 +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 6f2c0871c8 fix(ci): fix API reference configuration error
Fixed a spelling error.
2026-09-28 01:25:16 +02:00
jakob.scheid 773294f3d9 docs(changelog): move unreleased section to 0.2.0 2026-09-28 00:35:43 +02:00
jakob.scheid 200221e324 chore: update version in pyproject.toml to 0.2.0 2026-09-28 00:34:39 +02:00
jakob.scheid ff3bddd366 fix(ci): fix spelling in API reference workflow
Replaced '--chached' with '--cached' and replaced '--quit' with
'--quiet'.
2026-09-28 00:29:11 +02:00
jakob.scheid 95da53898c chore(ci): adapt API reference workflow to new API
Adapted the API reference generation workflow to the new API, which no
longer requires the src/ structure.
2026-09-28 00:18:44 +02:00
jakob.scheid 4d2e63d560 refactor(ci): use force overwriting feature 2026-09-28 00:17:30 +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 b2a7c9a0e3 style: fix lines which exceed the line length limit 2026-09-28 00:04:44 +02:00
jakob.scheid ac72eb283c style: organize imports
Organized imports according to Ruff (I001).
2026-09-27 22:23:58 +02:00
jakob.scheid 3865db7919 test(python-generator): add test cases for package namespace comparision
Added test cases with different types for Python package namespace
comparision test.
2026-09-27 22:16:15 +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 f102fa80ce test(python-generator): add test cases for module namespace comparision
Added test cases with different types for Python module namespace
comparision test.
2026-09-27 22:15:55 +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 b043a4ea17 docs(changelog): add accidental overwriting protection entry
Added a changelog entry for the protection against accidental
overwriting of the output directory.
2026-09-27 17:37:51 +02:00
jakob.scheid f2b9f47e09 test(cli): add tests for Python force overwriting
Added a test to the CLI test file for the documentation generation
error.
2026-09-27 17:36:04 +02:00
jakob.scheid f0c271f8fd feat(cli): add Python generator force argument 2026-09-27 15:09:35 +02:00
jakob.scheid d8508e0fa3 test(python-generator): add tests for force overwriting
Added tests to test new output directory deletion behavior:
  - output directory overwriting (not empty; force)
  - error (not empty; not force)
  - nothing (empty; force)
  - nothing (empty; not force)
One test was adapted to output directory emptiness check because the
.gitkeep file which is required for Git to track the directory makes it
non-empty.
2026-09-27 15:09:17 +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 53ab0e3829 docs(changelog): add project directory structure entry
Added an entry that the implicit Python project directory
structure assumptions have been removed to the changelog.
2026-09-22 19:28:34 +02:00
jakob.scheid c40e965d8d test(python-generator): update tests to do not assume src/ directories
Updated tests to do not implicitly assume a 'src/' directory structure
and removed all 'src/' subdirectory structures in test project
directories (if possible).
2026-09-22 19:26:55 +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 717a8c446e docs(changelog): add docs directory creation entry
Added a changelog entry for the creation of the documentation directory
at the Python documentation generator.
2026-09-22 17:08:15 +02:00
jakob.scheid ec156a538e test(python-generator): add test for directory creation
Added a testing function which tests whether the documentation directory
is created when the documentation is generated.
2026-09-22 17:04:56 +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 b6d2fa7db8 test(python-generator): name testing function correctly 2026-09-22 16:47:18 +02:00
jakob.scheid 06802c96f6 docs(changelog): add Python signatures PEP 8 compliance entry
Added a changelog entry for the PEP 8 compliance of Python function
signatures default values.
2026-09-22 16:13:43 +02:00
jakob.scheid 17c5e4938f test(python-generator): update tests for PEP 8 compliance
Updated test cases to the new default value PEP 8 compliance and added
new test cases to test the new behavior.
2026-09-22 16:13:23 +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 62206db574 docs(changelog): add entry for API reference pipeline
Added a changelog entry for the CI pipeline which generated the API
reference.
2026-09-22 13:16:35 +02:00
jakob.scheid 89451c34e3 chore(ci): add workflow to generate API reference
Added a workflow which generates the API reference and commits and
pushes it.
2026-09-22 13:15:47 +02:00
jakob.scheid 1a230abf02 docs(changelog): add package registry reference entry
Added an entry for the installation instructions update in README to the
changelog.
2026-09-22 12:43:19 +02:00
jakob.scheid 14d6a8984a docs(readme): update installation instructions
Previously, there were instructions how to install the package (over the
old registry) in README.md. They were replaced with a reference to the
Gitea Package Registry.
2026-09-22 12:37:10 +02:00
jakob.scheid 25a92d710e chore: add setup script
Added a setup script in scripts/ to configure Git to use the commit
message template and added a reference to it to README.md.
2026-09-21 22:27:28 +02:00
jakob.scheid a55d4d4f79 chore: add commit message template
Added a commit message template for conventional commits line
length limits.
2026-09-21 22:21:40 +02:00
jakob.scheid 0e81d0b9ca refactor(python-generator): rename misnamed testing function
Renamed 'test_PythonPackageNamespace___getitem__' to
'test_PythonPackageNamespace_add'.
2026-09-21 22:12:00 +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 d9887f34c9 chore(ruff): add Ruff configuration 2026-09-18 22:40:39 +02:00
jakob.scheid 178e6b0bd8 chore(deps): add Ruff dependency 2026-09-18 22:31:09 +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 56588e6c78 fix: jcloud_docsgen.cli instead of jcloud_docsgen.cli.cli in pyproject.toml 2026-09-13 20:09:02 +02:00
jakob.scheid bd7780f112 test(cli): add tests for Python sections list parser 2026-09-13 19:04:55 +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 e2e6a59d13 docs(changelog): update CLI entry 2026-09-13 19:04:53 +02:00
jakob.scheid 84fe67230f test(cli): add tests for the CLI 2026-09-13 19:04:41 +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 a8513a78e2 docs(changelog): add CLI entry to changelog 2026-09-10 09:51:55 +02:00
jakob.scheid 34457f0b9f chore: add project script
Added the script 'jcloud-docsgen' to pyproject.toml so that jCloud Docsgen can
be run directly without using 'python3 -m ...'.
2026-09-10 09:50:19 +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 d54c0fb208 refactor: remove or update all instances of ExistingFile and ExistingDirectory in tests 2026-09-05 14:29:31 +02:00
jakob.scheid 5d8dbd659d chore(utils): mark ExistingDirectory and ExistingFile as deprecated 2026-09-05 14:24:19 +02:00
jakob.scheid 3daff2ba13 chore: add VS Code directory to gitignore 2026-09-05 13:47:11 +02:00
jakob.scheid 20fe7c5605 chore: use Gitea's python .gitignore template 2026-09-05 13:46:09 +02:00
jakob.scheid 75a13527a9 chore: add .venv to .gitignore 2026-09-05 13:37:10 +02:00
jakob.scheid c47aa0738a chore(deps): add used development dependencies 2026-09-04 19:54:46 +02:00
jakob.scheid c4212320a2 chore: Add Poetry lock 2026-09-04 19:14:10 +02:00
jakob.scheid 324ffcd4eb chore: update dependency management 2026-09-04 19:13:55 +02:00
jakob.scheid aa702ca9f9 chore: migrate manifest to Poetry 2026-09-04 19:13:32 +02:00
jakob.scheid ef5605ced1 hotfix(cd): fix job label
Release package / Publish package to package registry (release) Successful in 15s
Release package / Upload release asset (${{ fromJSON(needs.prepare_upload_release_asset.outputs.files) }}) (release) Successful in 23s
Release package / Build package (release) Successful in 24s
Release package / Prepare release asset upload (release) Successful in 14s
2026-09-03 19:42:05 +02:00
jakob.scheid eac5fb0ffc hotfix(cd): add build dependency to release asset upload preparation
Release package / Build package (release) Successful in 40s
Release package / Prepare release asset upload (release) Canceled after 0s
Release package / Upload release asset (${{ fromJSON(needs.prepare_upload_release_asset.outputs.files) }}) (release) Canceled after 0s
Release package / Publish package to package registry (release) Canceled after 0s
2026-09-03 19:14:10 +02:00
jakob.scheid 5c036e60a1 hotfix(cd): download artifact before uploading release assets
Release package / Build package (release) Successful in 24s
Release package / Publish package to package registry (release) Skipped
Release package / Prepare release asset upload (release) Successful in 14s
Release package / Upload release asset (${{ fromJSON(needs.prepare_upload_release_asset.outputs.files) }}) (release) Successful in 25s
2026-09-03 19:11:36 +02:00
jakob.scheid 9b49de336b hotfix(cd): fix workflow job label
Release package / Build package (release) Successful in 29s
Release package / Prepare release asset upload (release) Successful in 14s
Release package / Publish package to package registry (release) Skipped
Release package / Upload release asset (${{ fromJSON(needs.prepare_upload_release_asset.outputs.files) }}) (release) Failing after 21s
2026-09-03 18:07:04 +02:00
jakob.scheid 2ef362b7c0 docs(changelog): mark unreleased section as version 0.1.0 2026-09-01 16:55:44 +02:00
jakob.scheid 3428c54d99 style: ensure trailing newlines 2026-09-01 16:54:03 +02:00
jakob.scheid 3a05718612 docs(changelog): make changelog clearer
Removed internal implementation details from changelog and rephrased and reordered
some entries.
2026-09-01 16:39:42 +02:00
jakob.scheid 44de48ef9d chore: update version information to 0.1.0 2026-09-01 16:33:22 +02:00
jakob.scheid c167fcf803 feat(cd): add workflow to publish package 2026-09-01 16:19:51 +02:00