pax_global_header00006660000000000000000000000064147124226200014512gustar00rootroot0000000000000052 comment=cab4ed31335dd7616562969123dff7ff9bdcd62a doxysphinx-3.3.12/000077500000000000000000000000001471242262000140155ustar00rootroot00000000000000doxysphinx-3.3.12/.copyright.tmpl000066400000000000000000000006321471242262000170020ustar00rootroot00000000000000===================================================================================== C O P Y R I G H T ------------------------------------------------------------------------------------- Copyright (c) by . All rights reserved. Author(s): - , ===================================================================================== doxysphinx-3.3.12/.devcontainer/000077500000000000000000000000001471242262000165545ustar00rootroot00000000000000doxysphinx-3.3.12/.devcontainer/Dockerfile000066400000000000000000000072741471242262000205600ustar00rootroot00000000000000## ## ===================================================================================== ## C O P Y R I G H T ## ------------------------------------------------------------------------------------- ## Copyright (c) 2023 by Robert Bosch GmbH. All rights reserved. ## ## Author(s): ## - Markus Braun, :em engineering methods AG (contracted by Robert Bosch GmbH) ## - Stefan Schulz, itemis AG (contracted by Robert Bosch GmbH) ## ===================================================================================== ## ARG VARIANT=3.12 FROM --platform=linux/amd64 mcr.microsoft.com/devcontainers/python:${VARIANT} LABEL maintainer="Bosch Doxysphinx Team " # default shell = zsh SHELL [ "/bin/zsh", "-c" ] # set environment ENV PYTHONUNBUFFERED 1 ENV TZ=Europe/Berlin ENV PATH="/root/.local/bin:/home/vscode/.local/bin:${PATH}" # Install apt dependencies # - default-jre for running plantuml # - graphviz for plantuml/doxygen (however that's already provided by the base image - still we have it here in case we'd switch..) # - doxygen # - imagemagick (sphinx dependency) RUN apt-get update \ && export DEBIAN_FRONTEND=noninteractive \ && apt-get install --no-install-recommends -y \ default-jre \ graphviz \ doxygen \ imagemagick \ && apt-get autoremove \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Update doxygen to latest RUN wget -c https://www.doxygen.nl/files/doxygen-1.11.0.linux.bin.tar.gz -O /tmp/doxygen.tar.gz \ && mkdir -p /tmp/doxygen \ && tar -xzvf /tmp/doxygen.tar.gz --strip-components=1 -C /tmp/doxygen/ \ && mv /tmp/doxygen/bin/* /usr/bin \ && mv /tmp/doxygen/man/man1/* /usr/share/man/man1 \ && rm -rf /tmp/doxygen/ # Install plantUML RUN wget -c https://netcologne.dl.sourceforge.net/project/plantuml/plantuml.jar -O /tmp/plantuml.jar && \ mkdir -p /usr/share/plantuml && \ mv /tmp/plantuml.jar /usr/share/plantuml/plantuml.jar # Switch to vscode user USER vscode # set workspace dir and ensure it's present # set cache home directory to in-repo directory (so it will survive container rebuilds and speed up startup # and dependency resolution) ARG WORKSPACE_DIR WORKDIR ${WORKSPACE_DIR}/ # set cache home directory to in-repo directory (so it will survive container rebuilds and speed up startup # and dependency resolution) ENV XDG_CACHE_HOME=${WORKSPACE_DIR}/.cache # Install poetry (we're not use pipx here because poetry in a virtualenv has it's issues...) RUN curl -sSL https://install.python-poetry.org | python3 - \ && poetry completions bash >> ~/.bash_completion # Install poetry up plugin to update dependencies RUN poetry self add poetry-plugin-up # Install precommit globally in the container (with pipx installation we had error messages during pre-commit # checks like "/usr/local/bin/python: No module named pre_commit" - seems it needs the python module available # in the global python environment RUN pip install pre-commit # Inject + Install QA tooling RUN pipx inject flake8 flake8-bugbear flake8-comprehensions flake8-simplify cohesion pydocstyle \ flake8-docstrings pep8-naming \ && pipx inject mypy lxml-stubs types-PyYAML \ && pipx install isort \ && pipx install safety \ && pipx install commitizen # install pytest RUN pipx install pytest && pipx inject pytest pytest-cov pytest-emoji pytest-md # install pex for packaging RUN pipx install pex # for pylint we would need to install c libs in it's pipx env and also whitelist them in pyproject.toml # thats the reason why we deactivated that for now... #RUN pipx inject pylint lxml mpire # note that installation of dependencies and pre-commit installation will be done after vscode has started # the container. doxysphinx-3.3.12/.devcontainer/devcontainer.json000066400000000000000000000045641471242262000221410ustar00rootroot00000000000000{ "name": "doxysphinx", "build": { "dockerfile": "Dockerfile", "context": "../", "args": { "VARIANT": "3.12", "WORKSPACE_DIR": "${containerWorkspaceFolder}" } }, "customizations": { "vscode": { // Set *default* container specific settings.json values on container create. "settings": { "python.defaultInterpreterPath": "${containerWorkspaceFolder}/.venv/bin/python", "python.linting.banditEnabled": true, "python.linting.banditPath": "/usr/local/py-utils/bin/bandit", "python.linting.mypyEnabled": true, "python.linting.mypyPath": "/usr/local/py-utils/bin/mypy", "python.linting.pylintEnabled": false, "python.linting.flake8Enabled": true, "python.linting.flake8Path": "/usr/local/py-utils/bin/flake8", "python.formatting.provider": "black", "python.formatting.blackPath": "/usr/local/py-utils/bin/black", "python.poetryPath": "/home/vscode/.local/bin/poetry", "python.analysis.extraPaths": [ "${containerWorkspaceFolder}" ], "python.analysis.exclude": [ ".build", ".cache", ".github", ".idea", ".mypy_cache", ".pytest_cache", "build", "demo", "dist", "docs", "external" ], "terminal.integrated.profiles.linux": { "zsh": { "path": "/bin/zsh" } }, "terminal.integrated.defaultProfile.linux": "zsh", "http.proxyStrictSSL": false }, "extensions": [ "ms-python.python", "njpwerner.autodocstring", "KevinRose.vsc-python-indent", "eamodio.gitlens", "ExecutableBookProject.myst-highlight", "DavidAnson.vscode-markdownlint", "tamasfe.even-better-toml", "ryanluker.vscode-coverage-gutters" ] } }, // As a post create command we install the poetry dependencies and also install the pre-commit hooks. // It's necessary to do this here because in Dockerfile we do not have the config files (pyproject.toml + // .pre-commit-config.yaml) available. // "postCreateCommand": "pre-commit install --install-hooks && pre-commit autoupdate", // "onCreateCommand": "poetry install --with sphinx && pre-commit install --install-hooks && pre-commit autoupdate", "remoteUser": "vscode" } doxysphinx-3.3.12/.devcontainer/reset.sh000077500000000000000000000026471471242262000202460ustar00rootroot00000000000000#! /usr/bin/env bash # Script to remove the devcontainer and all caches to simulate clean checkout (or a fresh startover) # Use it at your own risk!! # some color definitions C_GRAY="\e[90m" C_LGRAY="\e[37m" C_CYAN="\e[36m" C_LGREEN="\e[92m" C_RESET="\e[0m" debug() { echo -e "$C_GRAY$1$C_RESET" } info() { echo -e "$C_LGREEN$1$C_RESET" } CWD=$(pwd) WS_ROOT=$CWD DIR_NAME=$(basename $CWD) if [ "$DIR_NAME" = ".devcontainer" ]; then debug "script is called from .devcontainer directory... adjusting paths..." WS_ROOT=$(cd $CWD/..; pwd) fi IMAGE_NAME=$(basename $WS_ROOT) debug "Current directory is $C_LGRAY$CWD" debug "Workspace root directory is $C_LGRAY$WS_ROOT" debug "Image name equals the workspace name: $C_LGRAY$IMAGE_NAME" echo "" info "getting containers of $C_CYAN$IMAGE_NAME$C_LGREEN and removing them.." docker ps -a | grep "$IMAGE_NAME" | awk '{print $1}' | xargs -r docker rm -f info "getting container images of $C_CYAN$IMAGE_NAME$C_LGREEN and removing them..." docker images -a | grep "$IMAGE_NAME" | awk '{print $3}' | xargs -r docker rmi info "cleaning all cached images, layers etc that aren't in use... (docker system prune)" docker system prune -f # remove cache and venv directories info "clearing cache ($C_CYAN$WS_ROOT/.cache)$C_LGREEN directory..." rm -rf $WS_ROOT/.cache info "clearing local ($C_CYAN$WS_ROOT/.venv)$C_LGREEN directory..." rm -rf $WS_ROOT/.venv echo "" info "Done everything cleaned up." doxysphinx-3.3.12/.flake8000066400000000000000000000014151471242262000151710ustar00rootroot00000000000000## ===================================================================================== ## C O P Y R I G H T ## ------------------------------------------------------------------------------------- ## Copyright (c) 2023 by Robert Bosch GmbH. All rights reserved. ## ## Author(s): ## - Markus Braun, :em engineering methods AG (contracted by Robert Bosch GmbH) ## ===================================================================================== [flake8] max-line-length = 120 ignore = D203, D301, W503 exclude = .git, .build, .devcontainer, .github, .idea, .package, .pytest_cache, .venv, .vscode, dist, docs, demo, tests max-complexity = 10 select = D,C,E,F,W,B,B950 extend-ignore = E203, E501 docstring-convention=pep257 doxysphinx-3.3.12/.github/000077500000000000000000000000001471242262000153555ustar00rootroot00000000000000doxysphinx-3.3.12/.github/ISSUE_TEMPLATE/000077500000000000000000000000001471242262000175405ustar00rootroot00000000000000doxysphinx-3.3.12/.github/ISSUE_TEMPLATE/bug_report.md000066400000000000000000000015021471242262000222300ustar00rootroot00000000000000--- name: Bug report about: Create a report to help us improve title: '' labels: '' assignees: '' --- **Describe the bug** A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. iOS] - Browser [e.g. chrome, safari] - Version [e.g. 22] **Smartphone (please complete the following information):** - Device: [e.g. iPhone6] - OS: [e.g. iOS8.1] - Browser [e.g. stock browser, safari] - Version [e.g. 22] **Additional context** Add any other context about the problem here. doxysphinx-3.3.12/.github/ISSUE_TEMPLATE/feature_request.md000066400000000000000000000011231471242262000232620ustar00rootroot00000000000000--- name: Feature request about: Suggest an idea for this project title: '' labels: '' assignees: '' --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. doxysphinx-3.3.12/.github/actions/000077500000000000000000000000001471242262000170155ustar00rootroot00000000000000doxysphinx-3.3.12/.github/actions/init/000077500000000000000000000000001471242262000177605ustar00rootroot00000000000000doxysphinx-3.3.12/.github/actions/init/action.yaml000066400000000000000000000031671471242262000221300ustar00rootroot00000000000000## ## ===================================================================================== ## C O P Y R I G H T ## ------------------------------------------------------------------------------------- ## Copyright (c) 2023 by Robert Bosch GmbH. All rights reserved. ## ## Author(s): ## - Markus Braun, :em engineering methods AG (contracted by Robert Bosch GmbH) ## ===================================================================================== ## name: "Ensure Everything is initialized for build/test etc." description: "Installs python and poetry if necessary" inputs: python-version: description: "The version of python to use (default: 3.9)" required: true default: 3.9 doc-tools: description: "Whether to install the documentation tools (doxygen)" required: true default: true runs: using: "composite" steps: - name: "Ensure doxygen" if: inputs.doc-tools run: sudo apt-get install graphviz doxygen -y # latest doxygen (untested) # run: | # if ! command -v doxygen &> /dev/null # then # echo "doxygen wasn't found... installing now..." # mkdir -p ~/.local/bin # curl -sSL https://www.doxygen.nl/files/doxygen-1.9.4.linux.bin.tar.gz | \ # tar -xzvf - --strip-components=1 -C ~/.local/bin bin/doxygen; # fi shell: bash - name: "Ensure poetry" run: pipx install poetry shell: bash - name: "Ensure python (with poetry caching)" uses: actions/setup-python@v5 with: python-version: ${{ inputs.python-version }} cache: 'poetry' - name: "Install dependencies" run: poetry install --with=ci shell: bash doxysphinx-3.3.12/.github/workflows/000077500000000000000000000000001471242262000174125ustar00rootroot00000000000000doxysphinx-3.3.12/.github/workflows/cd.yml000066400000000000000000000041571471242262000205320ustar00rootroot00000000000000## ## ===================================================================================== ## C O P Y R I G H T ## ------------------------------------------------------------------------------------- ## Copyright (c) 2023 by Robert Bosch GmbH. All rights reserved. ## ## Author(s): ## - Markus Braun, :em engineering methods AG (contracted by Robert Bosch GmbH) ## ===================================================================================== ## name: CD on: release: types: [published] permissions: contents: write env: python-version: 3.9 jobs: release: runs-on: ubuntu-latest steps: - name: "Checkout Code" uses: actions/checkout@v4 with: submodules: false fetch-depth: 0 - name: "Ensure Python Environment" uses: ./.github/actions/init with: python-version: 3.9 - name: "Build documentation" run: | make html - name: "Build pypi package" run: | poetry build - name: "Build pex package" run: | (rm -rf .pex_tmp || true) mkdir .pex_tmp cp -R doxysphinx .pex_tmp poetry export -f requirements.txt --without-hashes -o .requirements.txt poetry run pex --requirement=.requirements.txt --entry-point doxysphinx.cli:cli --sources-directory=.pex_tmp --output-file=dist/doxysphinx.pex - name: "Deploy to pypi repository" env: POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }} run: | poetry publish - name: "Deploy binaries to gh-release" uses: softprops/action-gh-release@v1 with: token: ${{ secrets.GITHUBTOKEN }} files: | dist/*.* - name: "Upload documentation as artifact" uses: actions/upload-artifact@v4 with: name: Project documentation path: ${{ github.workspace }}/.build/html - name: "Publish documentation on gh-pages" uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} # Action doesnt take default working-directory into account publish_dir: ${{ github.workspace }}/.build/html doxysphinx-3.3.12/.github/workflows/ci.yml000066400000000000000000000047641471242262000205430ustar00rootroot00000000000000## ## ===================================================================================== ## C O P Y R I G H T ## ------------------------------------------------------------------------------------- ## Copyright (c) 2023 by Robert Bosch GmbH. All rights reserved. ## ## Author(s): ## - Markus Braun, :em engineering methods AG (contracted by Robert Bosch GmbH) ## ===================================================================================== ## name: CI on: push: branches: - main pull_request: permissions: contents: write env: python-version: 3.9 jobs: ci: runs-on: ubuntu-latest steps: - name: "Checkout Code" uses: actions/checkout@v4 with: submodules: false fetch-depth: 0 - name: "Ensure Python/Build Environment" uses: ./.github/actions/init with: python-version: ${{ env.python-version }} - name: "Run Tests" run: | mkdir -p docs/doxygen poetry run pytest --emoji -v -s --md $GITHUB_STEP_SUMMARY - name: "cache pre-commit" uses: actions/cache@v4 with: path: ~/.cache/pre-commit key: ${{ runner.os }}-py${{ env.python-version }}-precommit-${{ hashFiles('.pre-commit-config.yaml') }} restore-keys: | ${{ runner.os }}-py${{ env.python-version }} - name: "Run quality checks" run: | SKIP=poetry-lock poetry run pre-commit run --all-files - name: "Update version, changelog" if: github.event_name == 'push' && github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, 'chore(release):') id: versionbump run: | git config user.email "actions@github.com" git config user.name "github-actions" poetry run cz bump --changelog git push git push --tags export VERSION=$(poetry version -s) poetry run cz changelog --dry-run $VERSION poetry run cz changelog --file-name RELEASE_NOTES.md $VERSION echo "::set-output name=new_version_tag::v$VERSION" git switch --detach v$VERSION env: GH_TOKEN: ${{ secrets.GITHUBTOKEN }} - name: "Create Release (will be filled in cd)" if: github.event_name == 'push' && github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, 'chore(release):') uses: softprops/action-gh-release@v1 with: body_path: RELEASE_NOTES.md tag_name: ${{ steps.versionbump.outputs.new_version_tag }} token: ${{ secrets.GITHUBTOKEN }} doxysphinx-3.3.12/.github/workflows/qa.yml000066400000000000000000000016221471242262000205370ustar00rootroot00000000000000## ## ===================================================================================== ## C O P Y R I G H T ## ------------------------------------------------------------------------------------- ## Copyright (c) 2023 by Robert Bosch GmbH. All rights reserved. ## ## Author(s): ## - Markus Braun, :em engineering methods AG (contracted by Robert Bosch GmbH) ## ===================================================================================== ## name: QA on: workflow_dispatch: env: python-version: 3.9 jobs: qa: runs-on: ubuntu-latest steps: - name: "init: Checkout Code" uses: actions/checkout@v4 with: submodules: false fetch-depth: 0 - name: "init: Ensure Python Environment" uses: ./.github/actions/init with: python-version: 3.9 - name: "test: Run Tests" run: | poetry run precommit run --all-files doxysphinx-3.3.12/.gitignore000066400000000000000000000066451471242262000160200ustar00rootroot00000000000000# Created by https://www.toptal.com/developers/gitignore/api/python # Edit at https://www.toptal.com/developers/gitignore?templates=python ### Python ### # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover *.py,cover .hypothesis/ .pytest_cache/ cover/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 db.sqlite3-journal # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder .pybuilder/ target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv # For a library or package, you might want to ignore these files since the code is # intended to run in multiple environments; otherwise, check them in: # .python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. #Pipfile.lock # poetry # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. # This is especially recommended for binary packages to ensure reproducibility, and is more # commonly ignored for libraries. # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control #poetry.lock # PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ # Celery stuff celerybeat-schedule celerybeat.pid # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ # pytype static type analyzer .pytype/ # Cython debug symbols cython_debug/ # PyCharm # JetBrains specific template is maintainted in a separate JetBrains.gitignore that can # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ # End of https://www.toptal.com/developers/gitignore/api/python # own additions .pdm.toml .build .testreport.xml requirements.txt .requirements.txt .pex_tmp/ .doxysphinx.prof .package/ .poetryupvenv # merged in ignores from .idea/.gitignore (for hash patching) # Default ignored files .idea/shelf/ .idea/workspace.xml # Editor-based HTTP Client requests .idea/httpRequests/ # Datasource local storage ignored files .idea/dataSources/ .idea/dataSources.local.xml docs/doxygen/graphviz/ demo/ocilib/ demo/graphviz/ tests/toc/*.rst docs/auto_api *pyinstruments.html future/ doxysphinx-3.3.12/.idea/000077500000000000000000000000001471242262000147755ustar00rootroot00000000000000doxysphinx-3.3.12/.idea/codeStyles/000077500000000000000000000000001471242262000171135ustar00rootroot00000000000000doxysphinx-3.3.12/.idea/codeStyles/Project.xml000066400000000000000000000002531471242262000212430ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/codeStyles/codeStyleConfig.xml000066400000000000000000000002171471242262000227160ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/doxysphinx.iml000066400000000000000000000007141471242262000177170ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/inspectionProfiles/000077500000000000000000000000001471242262000206545ustar00rootroot00000000000000doxysphinx-3.3.12/.idea/inspectionProfiles/profiles_settings.xml000066400000000000000000000002571471242262000251450ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/misc.xml000066400000000000000000000003301471242262000164460ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/modules.xml000066400000000000000000000004211471242262000171640ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/runConfigurations/000077500000000000000000000000001471242262000205145ustar00rootroot00000000000000doxysphinx-3.3.12/.idea/runConfigurations/doxysphinx_build.xml000066400000000000000000000021551471242262000246350ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/runConfigurations/make_clean.xml000066400000000000000000000005321471242262000233150ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/runConfigurations/make_doxygen.xml000066400000000000000000000005321471242262000237100ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/runConfigurations/make_html__all_.xml000066400000000000000000000005361471242262000243310ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/runConfigurations/make_sphinx.xml000066400000000000000000000005341471242262000235460ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/runConfigurations/pytest.xml000066400000000000000000000020771471242262000225740ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/scopes/000077500000000000000000000000001471242262000162715ustar00rootroot00000000000000doxysphinx-3.3.12/.idea/scopes/Docs.xml000066400000000000000000000003011471242262000176750ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/scopes/Python_Code.xml000066400000000000000000000003421471242262000212250ustar00rootroot00000000000000 doxysphinx-3.3.12/.idea/vcs.xml000066400000000000000000000002651471242262000163150ustar00rootroot00000000000000 doxysphinx-3.3.12/.pre-commit-config.yaml000066400000000000000000000044351471242262000203040ustar00rootroot00000000000000## ## ===================================================================================== ## C O P Y R I G H T ## ------------------------------------------------------------------------------------- ## Copyright (c) 2023 by Robert Bosch GmbH. All rights reserved. ## ## Author(s): ## - Markus Braun, :em engineering methods AG (contracted by Robert Bosch GmbH) ## ===================================================================================== ## # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks #files: # "(.yaml$)|(^conf.*py$)|doxysphinx/.*py$||pyproject.toml$" exclude: "(^.*tests/.*$)" default_stages: [commit, manual, push] repos: # formatting related - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: check-toml - id: check-case-conflict - id: check-added-large-files args: ["--maxkb=4096"] - repo: https://github.com/psf/black rev: 24.3.0 hooks: - id: black types: [python] - repo: https://github.com/pycqa/isort rev: 5.13.2 hooks: - id: isort args: ["--profile", "black", "--filter-files"] - repo: https://github.com/pycqa/flake8 rev: 7.0.0 hooks: - id: flake8 additional_dependencies: [ "flake8-bugbear", "flake8-comprehensions", "flake8-simplify", "cohesion", "pydocstyle", "flake8-docstrings", "pep8-naming" ] types: [python] - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.9.0 hooks: - id: mypy args: [ "--show-error-codes" ] additional_dependencies: [ "lxml_stubs", "types-PyYAML" ] types: [python] - repo: https://github.com/PyCQA/bandit rev: 1.7.8 hooks: - id: bandit types: [python] # - repo: https://github.com/AleksaC/hadolint-py # rev: v2.10.0 # hooks: # - id: hadolint # args: [ --ignore, SC2035 ] # todo #- repo: https://github.com/pypa/pip-audit # rev: v2.4.10 # hooks: # - id: pip-audit - repo: https://github.com/commitizen-tools/commitizen rev: v3.21.3 hooks: - id: commitizen - id: commitizen-branch stages: [push] - repo: https://github.com/python-poetry/poetry rev: 1.8.0 hooks: - id: poetry-check - id: poetry-lock doxysphinx-3.3.12/.vscode/000077500000000000000000000000001471242262000153565ustar00rootroot00000000000000doxysphinx-3.3.12/.vscode/extensions.json000066400000000000000000000005131471242262000204470ustar00rootroot00000000000000{ "recommendations": [ "ms-python.python", "eamodio.gitlens", "njpwerner.autodocstring", "ExecutableBookProject.myst-highlight", "DavidAnson.vscode-markdownlint", "tamasfe.even-better-toml", "ryanluker.vscode-coverage-gutters", "SanaAjani.taskrunnercode" ] } doxysphinx-3.3.12/.vscode/launch.json000066400000000000000000000040431471242262000175240ustar00rootroot00000000000000{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Debug: Doxysphinx Build Command", "type": "python", "request": "launch", "cwd": "${workspaceFolder}", "module": "doxysphinx", "args": [ "--verbosity=DEBUG", "build", "${workspaceFolder}", "${workspaceFolder}/.build/html", "${workspaceFolder}/docs/doxygen/demo/html" ], "preLaunchTask": "_DEBUG: clean", }, { "name": "Debug: Doxysphinx Build Command Graphviz", "type": "python", "request": "launch", "cwd": "${workspaceFolder}", "module": "doxysphinx", "args": [ "--verbosity=DEBUG", "build", "${workspaceFolder}", "${workspaceFolder}/.build/html", "${workspaceFolder}/docs/doxygen/graphviz" ] }, { "name": "Debug: Doxysphinx Clean Command", "type": "python", "request": "launch", "cwd": "${workspaceFolder}", "module": "doxysphinx", "args": [ "--verbosity=DEBUG", "clean", "${workspaceFolder}", "${workspaceFolder}/.build", "${workspaceFolder}/demo/demo.doxyfile" ] }, { "name": "Python: Test Cases", "type": "python", "request": "launch", "cwd": "${workspaceFolder}", "module": "pytest", "purpose": [ "debug-test" ], "console": "integratedTerminal", "env": { "PYTEST_ADDOPTS": "--no-cov" } } ] } doxysphinx-3.3.12/.vscode/settings.json000066400000000000000000000033401471242262000201110ustar00rootroot00000000000000{ "python.poetryPath": "poetry", "workbench.colorCustomizations": { "activityBar.background": "#0F332F", "titleBar.activeBackground": "#164841", "titleBar.activeForeground": "#F5FCFB" }, "files.exclude": { "**/.git": true, "**/.svn": true, "**/.hg": true, "**/CVS": true, "**/.DS_Store": true, "**/Thumbs.db": true, "**/*.pyc": { "when": "$(basename).py" }, "**/__pycache__": true, "**/__pypackages__": true }, "python.testing.unittestEnabled": false, "python.testing.pytestEnabled": true, "autoDocstring.docstringFormat": "sphinx-notypes", "autoDocstring.guessTypes": true, "files.insertFinalNewline": true, "files.eol": "\n", "python.testing.pytestArgs": [ "--cov=doxysphinx", "--cov-report=xml:coverage.xml" ], "python.linting.flake8Enabled": true, "python.linting.enabled": true, "python.linting.pylintEnabled": false, "python.linting.mypyEnabled": true, "python.formatting.provider": "black", "python.linting.banditEnabled": true, "isort.args": [ "--profile", "black" ], "[python]": { "editor.codeActionsOnSave": { "source.organizeImports": true } }, "[html]": { "editor.formatOnSave": false }, "editor.minimap.maxColumn": 120, "editor.rulers": [ { "column": 110, "color": "#0b8600" }, { "column": 120, "color": "#865100" } ], "editor.formatOnSave": true, "git.alwaysSignOff": true, "python.analysis.extraPaths": [ "./tests/doxygen/doxygen_testfiles" ] } doxysphinx-3.3.12/.vscode/tasks.json000066400000000000000000000031351471242262000174000ustar00rootroot00000000000000{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "run precommit", "type": "shell", "command": "poetry", "args": [ "run", "pre-commit", "run", "--all-files" ] }, { "label": "manual lint with flake8", "type": "shell", "command": "poetry", "args": [ "run", "flake8" ] }, { "label": "manual lint with bandit", "type": "shell", "command": "poetry", "args": [ "run", "bandit", "doxysphinx/", "-r" ] }, { "label": "manual dependency security check with safety", "type": "shell", "command": "poetry", "args": [ "run", "safety", "check", "--help" ] }, // helpers for debugging { "label": "_DEBUG: doxysphinx clean", "type": "shell", "command": "poetry", "args": [ "run", "doxysphinx", "--verbosity=DEBUG", "clean", ".", ".build/html", "demo/demo.doxyfile" ] }, { "label": "_DEBUG: make doxygen", "type": "shell", "command": "make", "args": [ "doxygen", ] }, { "label": "_DEBUG: clean", "dependsOn": [ // comment out the following depending on your needs (e.g. you can skip make doxygen if you ran that once) "_DEBUG: make doxygen", "_DEBUG: doxysphinx clean" ] }, ] } doxysphinx-3.3.12/CHANGELOG.md000066400000000000000000000220671471242262000156350ustar00rootroot00000000000000 # Changelog ## v3.3.12 (2024-11-05) ### Fix - **cd.yml**: Updated the upload-artifact@v4 (https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/) ## v3.3.11 (2024-09-04) ### Fix - upgrade sphinx and sphinx-needs ## v3.3.10 (2024-07-16) ### Fix - **toc.py**: Use UTF-8 encoding for reading files (#148) ## v3.3.9 (2024-06-28) ### Fix - **process.py**: Fix to support Doxygen 1.10 and 1.11 (#141) ## v3.3.8 (2024-04-30) ### Fix - fix broken release of v3.3.8 (try #3) (#128) - fix broken release of v3.3.8 (try #2) (#127) - fix broken release of v3.3.8 (#126) - **python-version**: Updated python to 3.12 and dependencies - **python-version**: Updated python to 3.12 and dependencies - **python-version**: Added numpy to pyproject - **python-version**: Updated python to 3.12 and dependencies ## v3.3.7 (2023-10-20) ### Fix - **doxygen.py**: Fix parsing of Windows newlines when on Posix - **doxygen.py**: Don't fail on forward slashes on Windows ## v3.3.6 (2023-10-12) ### Fix - **docs**: fixed sphinx autoapi issue in docs build - **docs**: upgraded sphinx book theme (and dependencies in general) ## v3.3.5 (2023-10-12) ## v3.3.4 (2023-06-16) ### Fix - **resources**: writing compiled css as utf-8 now ## v3.3.3 (2023-04-27) ### Fix - Encoding issues on windows ## v3.3.2 (2023-04-27) ### Fix - check if doxygen.css exists before pre-processing ## v3.3.1 (2023-04-27) ### Fix - **toc**: Fix illegal characters in structural dummy titles ## v3.3.0 (2023-04-20) ### Feat - **prerequisites**: dartsass isn't needed anymore because we switched to libsass ### Fix - **styling**: fixes doxygen page headings - **parser**: removed annotated.html from parsing exclusion list - **resourceprovision**: fixed caching not working for stylesheets - **devcontainer**: fixed devcontainer which was broken on first run. - **pre-commit**: reactivated conventional commit checking ### Refactor - fix for flake8 error C418 in toc.py ### Perf - improve performance by parallelizing work over available cores - improve performance by better preselection - improved performance of json loading by an order of magnitude ## v3.2.3 (2023-04-06) ### Fix - **doxygen_cwd**: Interpret paths relative to working dir ## v3.2.2 (2023-04-06) ### Fix - **doxygen**: Don't launch doxygen from a shell ## v3.2.1 (2023-02-28) ### Fix - **rst_indent_warning**: Fixed rst indent warning ## v3.2.0 (2023-02-16) ### Feat - **code**: Removed emptyspaces before creating hash - **incremental_behaviour**: added incremental behaviour for doxysphinx ## v3.1.0 (2022-12-09) ### Feat - **parser**: Now rst inline syntax is supported for sphinx roles and domains. ### Fix - **parser**: fixed doxygen comment parsing ## v3.0.0 (2022-11-18) ## v2.3.7 (2022-10-17) ### Fix - **deps**: pyparsing dependency is added correctly now - **doxygen**: solve pre-commit errors by whitespaces - **doxygen**: fix errors in validator pytest - **doxygen**: adapt optional settings for doxyfile and documentation ## v2.3.6 (2022-09-09) ### Fix - **styling**: moved rtd style fixes to doxysphinx ## v2.3.5 (2022-09-09) ### Fix - **doxygen**: fix warning for wrong outdir - **doxygen**: correct the handling of relative paths and adjust pytests - **doxygen**: add parser for doxygen config - **validator**: fix small bug that broke build command - **validator**: adapt error messages of validator - **validator**: switch some settings to optional - **doxygen**: merge current changes from global repo - **doxygen**: respect include-tags in doxyfile ## v2.3.4 (2022-07-29) ### Fix - **validator**: fix small bug that broke build command - **validator**: adapt error messages of validator - **validator**: switch some settings to optional ## v2.3.3 (2022-07-28) ### Fix - **ci**: commit to bump version and force a release ## v2.3.2 (2022-07-27) ### Fix - **ci**: commit to bump version and force a release ## v2.3.1 (2022-07-27) ### Fix - **ci**: commit to bump version and force a release ## v2.3.0 (2022-07-27) ### Fix - **ci**: commit to bump version and force a release - **ci**: python semantic release is now parsing tags instead of commit logs ### Feat - **cli**: direct doxygen output path specification is no possible in addition to the doxyfile ## v2.2.0 (2022-07-18) ### Feature - **validator:** Fixed path issue in pytest ([`cb02e48`](https://github.com/boschglobal/doxysphinx/commit/cb02e489c6f3272930fee4d9d5648e8f70420183)) - **validator:** Fixed path issues in pytest. ([`38aafc9`](https://github.com/boschglobal/doxysphinx/commit/38aafc9b87615dc611b3b2924f688e15468e7533)) - **validator:** Solved errors for PR ([`f2b63bd`](https://github.com/boschglobal/doxysphinx/commit/f2b63bd92fb20842c8c5fe7d0d11cbb1618296d5)) - **validator:** Changed the validator output type. ([`9730b08`](https://github.com/boschglobal/doxysphinx/commit/9730b08a83a3ee92e3f09d4173635179f5b8e982)) - **validator:** Added a validator to check the flags of the doxyfile ([`16cf2ae`](https://github.com/boschglobal/doxysphinx/commit/16cf2ae514c09e2625cff138babfa1d7bc10e76e)) ### Documentation - **validator:** Added note to indicate ([`4a6b7b8`](https://github.com/boschglobal/doxysphinx/commit/4a6b7b82d42fe1345694c9d0f48e29a012bbc163)) ## v2.1.11 (2022-06-29) ### Fix - **styles:** Doxygens section headings and also markdown headings are now shown ([`85c062d`](https://github.com/boschglobal/doxysphinx/commit/85c062dfe34333c90871a30f2fee3d8dc8108a8a)) ### Documentation - Added a table of static doxygen page names ([`7dcdeda`](https://github.com/boschglobal/doxysphinx/commit/7dcdedac38b525d53bf4896f753cf07373d1cbcf)) ## v2.1.10 (2022-06-21) ### Fix - Remove duplicate headline ([`f12a371`](https://github.com/boschglobal/doxysphinx/commit/f12a37127b8635504a7b381a749ec8e6679c70ca)) ### Documentation - Fix sphinx_book_theme config ([`9d59320`](https://github.com/boschglobal/doxysphinx/commit/9d59320389e3cf92927c1b154357dd698695a74b)) ## v2.1.9 (2022-06-01) ### Fix - **pypi:** Pypi publishing is now active ([`86096fc`](https://github.com/boschglobal/doxysphinx/commit/86096fc3b803efeaa6fea12992cce70f4fc9c9f6)) ### Documentation - Add more status badges ([`16927d4`](https://github.com/boschglobal/doxysphinx/commit/16927d4c3192268a35e055a9dd046a30a5db4088)) ## v2.1.8 (2022-06-01) ### Fix - **ci:** Attempt to solve problem of "v" tag ([`632cd60`](https://github.com/boschglobal/doxysphinx/commit/632cd60093522f3785ad28e7dc701698c0fb0291)) ## v2.1.7 (2022-06-01) ## v2.1.6 (2022-05-31) ### Fix - **ci:** Fix typo at pypi secrets ([`77e333b`](https://github.com/boschglobal/doxysphinx/commit/77e333bf2a3eb564e97f210b8320df4d03d32b64)) ## v2.1.5 (2022-05-31) ### Fix - **ci:** Fix for really bad typo ([`aa5022d`](https://github.com/boschglobal/doxysphinx/commit/aa5022dd9c97bff90aa80b9e33c45baae2b48665)) ## v2.1.4 (2022-05-30) ### Fix - **ci:** Added precommit caching ([`5df7088`](https://github.com/boschglobal/doxysphinx/commit/5df70887f6b7dc5e3125c74e0be43d09f152a0c2)) - **ci:** Test commit to test new pypi credentials ([`c98a45a`](https://github.com/boschglobal/doxysphinx/commit/c98a45a7eab2e15a234f194235852dcd97bc7fa2)) ### Documentation - Improve readme ([`4baec67`](https://github.com/boschglobal/doxysphinx/commit/4baec6778148f162640f5b6519a1d87240276368)) ## v2.1.3 (2022-05-30) ### Fix - **ci:** Attempt to fix pypi password escaping issue ([`af5c481`](https://github.com/boschglobal/doxysphinx/commit/af5c481f464697fdaebaef3ba7a64800b58f846c)) ## v2.1.2 (2022-05-30) ### Fix - **ci:** Gitignore structure change ([`92466a3`](https://github.com/boschglobal/doxysphinx/commit/92466a3bd3231f1074408ca5786e056ba6858b8c)) ## v2.1.1 (2022-05-30) ### Fix - **ci:** Activated pypi pushing (dry-run) ([`fbd6fa8`](https://github.com/boschglobal/doxysphinx/commit/fbd6fa812fdfb4c68f87916f1202ea69222d759c)) ## v2.1.0 (2022-05-23) ### Feature - **doxygen:** Env variables in doxygen configs are now supported ([`30a6d58`](https://github.com/boschglobal/doxysphinx/commit/30a6d5869b195ef36df80a1af4dec8e2e0bef530)) - Initial contribution (internal repo hash: cea2505) ([`76dee42`](https://github.com/boschglobal/doxysphinx/commit/76dee4240394d23bf48fe5bba0bebf2f3902104c)) ### Fix - **dependencies:** Fixed missing dependency and updated all ([`27fc21d`](https://github.com/boschglobal/doxysphinx/commit/27fc21d5ef3bb6eadfc600af59d390562f4635e5)) ### Documentation - Add segmentation overview picture to inner workings. ([`05237c3`](https://github.com/boschglobal/doxysphinx/commit/05237c316f402c50c3561cac6948b66a3e046536)) - Some additions to faq on contributing images ([`d41ed11`](https://github.com/boschglobal/doxysphinx/commit/d41ed119d6115d87ec1615932b56bfe5f607671b)) doxysphinx-3.3.12/CODEOWNERS000066400000000000000000000000251471242262000154050ustar00rootroot00000000000000* @twodrops @mb-emag doxysphinx-3.3.12/CONTRIBUTE.md000066400000000000000000000231051471242262000160160ustar00rootroot00000000000000# How to Contribute First of all, thanks for considering contributing to this project!! Your help is highly appreciated!! ## TLDR So this document got quite long... here is the very short summary/checklist: * [ ] don't commit on main - use [pull requests only](#pull-requests-only) * [ ] use this [branch naming convention](#branch-naming-convention): `feature/#39_bring_the_unicorns_back` * [ ] commits must adhere to the [conventional commits](#conventional-commits) spec. * [ ] add copyright header to new file or add yourself as author in existing files. * [ ] sign your commits with a developer certificate of origin (dco) - (`git commit -s -m "MESSAGE"`) or use vscode which is configured for the repo to do this automatically. * [ ] only once: add yourself as a contributor to [NOTICE.md](https://github.com/boschglobal/doxysphinx/blob/main/NOTICE.md). ## Pull requests only Use pull requests to contribute to this repository. Pushes to the `main` branch are automatically rejected. Keep your PRs focussed on a single purpose. For example, do not implement multiple features or fix multiple bugs in a single PR unless they are interconnected. Simply create separate PRs instead. ## Branch naming convention Branches should be named with this scheme: ```text group/short_description ``` The `group` denotes the purpose of the contribution: * **feature**: A new feature * **fix**: A bug fix * **ci**: GitHub workflow only changes * **docs**: Documentation only changes The `short` description should describe the change/feature etc. If you have a bigger change please create an issue here in github and use the number as short description, e.g. `feature/#39_bring_the_unicorns_back` ## Conventional Commits We use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) to automatically calculate the semantic version, create the changelog, and publish the release via [Python-Semantic-Release](https://python-semantic-release.readthedocs.io/en/latest/) tooling. The following is a slightly adapted version (to doxysphinx) of the excellent [Angular commit style](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#commits). ### Commit message format Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**: ```text ():