diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
deleted file mode 100644
index 39a6cb8..0000000
--- a/.github/CODEOWNERS
+++ /dev/null
@@ -1 +0,0 @@
-* @febus982
\ No newline at end of file
diff --git a/.github/workflows/github-pages-dev.yml b/.github/workflows/github-pages-dev.yml
deleted file mode 100644
index 83e3053..0000000
--- a/.github/workflows/github-pages-dev.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-name: Deploy static content to Pages
-
-on:
- push:
- branches: ["main"]
- # Allows you to run this workflow manually from the Actions tab
- workflow_dispatch:
-
-
-jobs:
- site:
- permissions:
- contents: write
- uses: ./.github/workflows/reusable-github-pages.yml
- with:
- site-version: "dev"
diff --git a/.github/workflows/python-code-style.yml b/.github/workflows/python-code-style.yml
deleted file mode 100644
index 6a89df3..0000000
--- a/.github/workflows/python-code-style.yml
+++ /dev/null
@@ -1,31 +0,0 @@
- # This workflow will install Python dependencies, run tests and lint with a variety of Python versions
-# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
-
-name: Python code style
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
- # Allows you to run this workflow manually from the Actions tab
- workflow_dispatch:
-
-jobs:
- format:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v5
- - name: Set up Python 3.13
- uses: actions/setup-python@v6
- with:
- python-version: "3.13"
- - name: Install uv
- uses: astral-sh/setup-uv@v7
- - name: Install dependencies
- run: |
- make dev-dependencies
- - name: Check code style with black
- run: |
- make format
diff --git a/.github/workflows/python-lint.yml b/.github/workflows/python-lint.yml
deleted file mode 100644
index 6558977..0000000
--- a/.github/workflows/python-lint.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
-# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
-
-name: Python lint
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
- # Allows you to run this workflow manually from the Actions tab
- workflow_dispatch:
-
-jobs:
- lint:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v5
- - name: Set up Python 3.13
- uses: actions/setup-python@v6
- with:
- python-version: "3.13"
- - name: Install uv
- uses: astral-sh/setup-uv@v7
- - name: Install dependencies
- run: |
- make dev-dependencies
- - name: Lint with ruff
- run: make lint
diff --git a/.github/workflows/python-quality.yml b/.github/workflows/python-quality.yml
deleted file mode 100644
index d84818a..0000000
--- a/.github/workflows/python-quality.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
-# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
-
-name: Python code quality
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
- # Allows you to run this workflow manually from the Actions tab
- workflow_dispatch:
-
-jobs:
- quality:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v5
- - name: Set up Python 3.13
- uses: actions/setup-python@v6
- with:
- python-version: "3.13"
- - name: Install uv
- uses: astral-sh/setup-uv@v7
- - name: Install dependencies
- run: |
- make dev-dependencies
- - name: Install dependencies
- run: make dev-dependencies
- - name: Run coverage
- run: make ci-coverage
- - uses: qltysh/qlty-action/coverage@v2
- with:
- token: ${{secrets.QLTY_COVERAGE_TOKEN}}
- files: ${{github.workspace}}/coverage.lcov
diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml
deleted file mode 100644
index 7bc7180..0000000
--- a/.github/workflows/python-tests.yml
+++ /dev/null
@@ -1,82 +0,0 @@
-# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
-# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
-
-name: Python tests
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
- # Run tests on Friday to check if tests pass with updated dependencies
- schedule:
- - cron: '0 0 * * 5'
- # Allows you to run this workflow manually from the Actions tab
- workflow_dispatch:
-
-jobs:
- test:
- strategy:
- fail-fast: false
- matrix:
- version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
- os: [ubuntu-latest]
- runs-on: ${{ matrix.os }}
- steps:
- - uses: actions/checkout@v5
- - name: Set up Python ${{ matrix.version }}
- uses: actions/setup-python@v6
- with:
- python-version: "${{ matrix.version }}"
- - name: Install uv
- uses: astral-sh/setup-uv@v7
- - name: Install dependencies
- run: |
- make dev-dependencies
- - name: Test with pytest
- id: citest
- run: |
- make ci-test
-
- failure-notification:
- runs-on: ubuntu-latest
- needs: test
- if: failure() && github.event.schedule == '0 0 * * 5'
- permissions:
- issues: write
- steps:
- - uses: actions/checkout@v5
- - name: Create label if not exists
- run: |
- gh label create scheduled-failure --force --color B60205
- env:
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Opens an issue if not already existing and open
- run: |
- previous_issue_number=$(gh issue list \
- --label "$LABELS" \
- --json number \
- --jq '.[0].number')
- if [[ -n $previous_issue_number ]]; then
- gh issue edit "$previous_issue_number" --body "$BODY"
- else
- new_issue_url=$(gh issue create \
- --title "$TITLE" \
- --label "$LABELS" \
- --body "$BODY")
- if [[ $PINNED == true ]]; then
- gh issue pin "$new_issue_url"
- fi
- fi
- env:
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- GH_REPO: ${{ github.repository }}
- TITLE: Scheduled automated test failure
- LABELS: scheduled-failure
- BODY: |
- ### Test suite failed during scheduled run
-
- [Link to failing run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
-
- PINNED: false
diff --git a/.github/workflows/python-typing.yml b/.github/workflows/python-typing.yml
deleted file mode 100644
index 4458b00..0000000
--- a/.github/workflows/python-typing.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
-# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
-
-name: Python typing
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
- # Allows you to run this workflow manually from the Actions tab
- workflow_dispatch:
-
-jobs:
- typing:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v5
- - name: Set up Python 3.13
- uses: actions/setup-python@v6
- with:
- python-version: "3.13"
- - name: Install uv
- uses: astral-sh/setup-uv@v7
- - name: Install dependencies
- run: |
- make dev-dependencies
- - name: Check typing
- run: make typing
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
deleted file mode 100644
index efa02b1..0000000
--- a/.github/workflows/release.yml
+++ /dev/null
@@ -1,87 +0,0 @@
-# This workflow will publish a python package on pypi, when a release is created
-
-name: release
-
-on:
- release:
- types: [ published ]
-
-jobs:
- build:
- outputs:
- version: ${{ steps.docs-version-step.outputs.version }}
- runs-on: ubuntu-latest
- permissions:
- contents: read
- steps:
- - name: Checkout repository
- uses: actions/checkout@v5
-
- - name: Set up Python 3.13
- uses: actions/setup-python@v6
- with:
- python-version: "3.13"
-
- - name: Install uv
- uses: astral-sh/setup-uv@v7
- - name: Install dependencies
- run: |
- make dev-dependencies
-
- - name: Build package
- run: |
- uv build
-
- - name: Archive the dist folder
- uses: actions/upload-artifact@v4
- with:
- name: dist
- path: dist
- retention-days: 1
-
- - name: Export version for site docs
- id: docs-version-step
- run: |
- ./scripts/docs-version.sh
- echo "Identified version: $(./scripts/docs-version.sh)"
- echo "version=$(./scripts/docs-version.sh)"
- echo "version=$(./scripts/docs-version.sh)" >> $GITHUB_OUTPUT
-
- publish:
- runs-on: ubuntu-latest
- needs: build
- permissions:
- contents: write
- id-token: write
-
- steps:
- - name: Download the dist folder from the build job
- uses: actions/download-artifact@v5
- with:
- name: dist
- path: dist
-
- - name: Upload binaries to release
- uses: shogo82148/actions-upload-release-asset@v1
- with:
- upload_url: ${{ github.event.release.upload_url }}
- asset_path: dist/*
-
- - name: Publish package distributions to TestPyPI
- uses: pypa/gh-action-pypi-publish@release/v1
- ################################
- # REMOVE CUSTOM REPOSITORY TO #
- # PUBLISH ON OFFICIAL PYPI #
- ################################
- with:
- repository-url: https://test.pypi.org/legacy/
-
- site:
- needs: build
- uses: ./.github/workflows/reusable-github-pages.yml
- permissions:
- contents: write
- with:
- site-version: ${{ needs.build.outputs.version }}
- version-alias: "stable"
- set-default: true
diff --git a/.github/workflows/reusable-github-pages.yml b/.github/workflows/reusable-github-pages.yml
deleted file mode 100644
index 6278b7f..0000000
--- a/.github/workflows/reusable-github-pages.yml
+++ /dev/null
@@ -1,83 +0,0 @@
-on:
- workflow_call:
- inputs:
- site-version:
- required: true
- type: string
- version-alias:
- required: false
- type: string
- default: ""
- branch:
- required: false
- type: string
- default: "gh-pages"
- set-default:
- required: false
- type: boolean
- default: false
-
-# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
-# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
-# NOTE: There's no option to not cancel pending jobs, but we should be able to avoid race conditions on
-# the published gh-pages branch anyway. The expectation is to have at maximum one running process
-# (after merging to main) and one release process waiting.
-concurrency:
- group: "pages"
- cancel-in-progress: false
-
-jobs:
- build_deploy_pages:
- runs-on: ubuntu-latest
- environment:
- name: github-pages
-
- permissions:
- contents: write
-
- steps:
- - name: Checkout
- uses: actions/checkout@v5
-
- - name: Set up Python 3.13
- uses: actions/setup-python@v6
- with:
- python-version: "3.13"
-
- # Here we want to install the current package in editable mode,
- # in case mkdocs needs the package (i.e. we are building a mkdocs plugin).
- - name: Install uv
- uses: astral-sh/setup-uv@v7
- - name: Install dependencies
- run: |
- make dev-dependencies
-
- - name: Configure Git user
- run: |
- git config --local user.email "github-actions[bot]@users.noreply.github.com"
- git config --local user.name "github-actions[bot]"
-
- - name: Make sure previous versions are available to mike
- run: |
- git fetch origin gh-pages --depth=1
-
- - name: Build and deploy static pages
- run: |
- uv run mike deploy ${{ inputs.site-version }} ${{ inputs.version-alias }} --update-aliases --push --branch ${{ inputs.branch }}
-
- - name: Set default site version
- if: ${{ inputs.set-default }}
- run: |
- uv run mike set-default ${{ inputs.site-version }} --push --branch ${{ inputs.branch }}
-
- # `mike` is specifically built to be used together with GitHub pages.
- # To upload the website to another service (i.e. AWS S3) uncomment
- # the following step to download the rendered HTML documentation to ./site directory.
- # You'll need to implement the upload steps for your provider.
-
-# - name: Download artifact to ./site
-# run: |
-# rm -rf ./site
-# git archive -o site.tar ${{ inputs.branch }}
-# mkdir -p ./site
-# tar xf site.tar -C ./site
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 5f825d9..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,286 +0,0 @@
-### JetBrains template
-# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
-# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
-
-# SQlite DBs
-*.db
-
-# User-specific stuff
-.idea/**/workspace.xml
-.idea/**/tasks.xml
-.idea/**/usage.statistics.xml
-.idea/**/dictionaries
-.idea/**/shelf
-
-# Generated files
-.idea/**/contentModel.xml
-
-# Sensitive or high-churn files
-.idea/**/dataSources/
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/sqlDataSources.xml
-.idea/**/dynamic.xml
-.idea/**/uiDesigner.xml
-.idea/**/dbnavigator.xml
-
-# Gradle
-.idea/**/gradle.xml
-.idea/**/libraries
-
-# Gradle and Maven with auto-import
-# When using Gradle or Maven with auto-import, you should exclude module files,
-# since they will be recreated, and may cause churn. Uncomment if using
-# auto-import.
-# .idea/artifacts
-# .idea/compiler.xml
-# .idea/jarRepositories.xml
-# .idea/modules.xml
-# .idea/*.iml
-# .idea/modules
-# *.iml
-# *.ipr
-
-# CMake
-cmake-build-*/
-
-# Mongo Explorer plugin
-.idea/**/mongoSettings.xml
-
-# File-based project format
-*.iws
-
-# IntelliJ
-out/
-
-# mpeltonen/sbt-idea plugin
-.idea_modules/
-
-# JIRA plugin
-atlassian-ide-plugin.xml
-
-# Cursive Clojure plugin
-.idea/replstate.xml
-
-# Crashlytics plugin (for Android Studio and IntelliJ)
-com_crashlytics_export_strings.xml
-crashlytics.properties
-crashlytics-build.properties
-fabric.properties
-
-# Editor-based Rest Client
-.idea/httpRequests
-
-# Android studio 3.1+ serialized cache file
-.idea/caches/build_file_checksums.ser
-
-### Linux template
-*~
-
-# temporary files which can be created if a process still has a handle open of a deleted file
-.fuse_hidden*
-
-# KDE directory preferences
-.directory
-
-# Linux trash folder which might appear on any partition or disk
-.Trash-*
-
-# .nfs files are created when an open file is removed but is still being accessed
-.nfs*
-
-### Windows template
-# Windows thumbnail cache files
-Thumbs.db
-Thumbs.db:encryptable
-ehthumbs.db
-ehthumbs_vista.db
-
-# Dump file
-*.stackdump
-
-# Folder config file
-[Dd]esktop.ini
-
-# Recycle Bin used on file shares
-$RECYCLE.BIN/
-
-# Windows Installer files
-*.cab
-*.msi
-*.msix
-*.msm
-*.msp
-
-# Windows shortcuts
-*.lnk
-
-### macOS template
-# General
-.DS_Store
-.AppleDouble
-.LSOverride
-
-# Icon must end with two \r
-Icon
-
-# Thumbnails
-._*
-
-# Files that might appear in the root of a volume
-.DocumentRevisions-V100
-.fseventsd
-.Spotlight-V100
-.TemporaryItems
-.Trashes
-.VolumeIcon.icns
-.com.apple.timemachine.donotpresent
-
-# Directories potentially created on remote AFP share
-.AppleDB
-.AppleDesktop
-Network Trash Folder
-Temporary Items
-.apdisk
-
-### Python template
-# 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
-
-# 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/
-uv.lock
-version.py
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 13566b8..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git a/.idea/bootstrap-python-package.iml b/.idea/bootstrap-python-package.iml
deleted file mode 100644
index 9f1eb92..0000000
--- a/.idea/bootstrap-python-package.iml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
some_function()
+
+Some function docstring
+ + +| RETURNS | +DESCRIPTION | +
|---|---|
+
+ str
+
+ |
+
+
+
+ Some string + |
+
bootstrap_python_package/__init__.py25 +26 +27 +28 +29 +30 +31 +32 | |
We want to record any decisions made in this project independent whether decisions concern the architecture ("architectural decision record"), the code, or other fields. +Which format and structure should these records follow?
+Chosen option: "MADR 3.0.0", because
+status: {proposed | rejected | accepted | deprecated | … | superseded by ADR-0005} +date: {YYYY-MM-DD when the decision was last updated} +deciders: {list everyone involved in the decision} +consulted: {list everyone whose opinions are sought (typically subject-matter experts); and with whom there is a two-way communication} +informed: {list everyone who is kept up-to-date on progress; and with whom there is a one-way communication}
+{Describe the context and problem statement, e.g., in free form using two to three sentences or in the form of an illustrative story. + You may want to articulate the problem in form of a question and add links to collaboration boards or issue management systems.}
+ +Chosen option: "{title of option 1}", because +{justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force {force} | … | comes out best (see below)}.
+ +{describe how the implementation of/compliance with the ADR is validated. E.g., by a review or an ArchUnit test}
+ +{example | description | pointer to more information | …}
+{example | description | pointer to more information | …}
+{You might want to provide additional evidence/confidence for the decision outcome here and/or + document the team agreement on the decision and/or + define when this decision when and how the decision should be realized and if/when it should be re-visited and/or + how the decision is validated. + Links to other decisions and resources might here appear as well.}
+ + + + + + + + + + + + + +| ID | +Date | +Decision | +Status | +
|---|---|---|---|
| 1 | +03-02-2024 | +Use Markdown Any Decision Records V3 | +Accepted | +