From 88f9c9829f1df70e379d570232f3db6da994d2b0 Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Thu, 24 Jul 2025 16:27:24 +0200 Subject: [PATCH 01/16] Add github actions --- .github/build/action.yml | 20 ++++++ .github/publish/action.yml | 12 ++++ .github/workflows/CD.yml | 39 +++++++++++ .github/workflows/CI.yml | 69 ++++++++++++++++++++ .gitignore | 4 +- README.md | 2 +- enfig/__init__.py | 3 +- enfig/errors.py | 7 +- pyproject.toml | 5 +- tests/conftest.py | 4 +- uv.lock | 130 ++++++++++++++++++++++++++++++++++++- 11 files changed, 283 insertions(+), 12 deletions(-) create mode 100644 .github/build/action.yml create mode 100644 .github/publish/action.yml create mode 100644 .github/workflows/CD.yml create mode 100644 .github/workflows/CI.yml diff --git a/.github/build/action.yml b/.github/build/action.yml new file mode 100644 index 0000000..d99a96c --- /dev/null +++ b/.github/build/action.yml @@ -0,0 +1,20 @@ +name: build +inputs: + package-version: + required: true + description: The python package version +runs: + using: "composite" + steps: + - uses: astral-sh/setup-uv@v5 + + - name: Build + shell: bash + run: | + uvx --from=toml-cli toml set --toml-path=pyproject.toml project.version ${{ inputs.package-version }} + uv build + + - name: Upload package + uses: actions/upload-artifact@v4 + with: + path: ./dist \ No newline at end of file diff --git a/.github/publish/action.yml b/.github/publish/action.yml new file mode 100644 index 0000000..2ab2afc --- /dev/null +++ b/.github/publish/action.yml @@ -0,0 +1,12 @@ +name: publish +inputs: + repository-url: + required: true + description: The destination package repository URL +runs: + using: "composite" + steps: + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: ${REPOSITORY_URL} diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml new file mode 100644 index 0000000..cdbd8ed --- /dev/null +++ b/.github/workflows/CD.yml @@ -0,0 +1,39 @@ +name: CD Pipeline + +on: + create: + +jobs: + build: + runs-on: ubuntu-latest + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + steps: + - name: Load version into env + shell: bash + run: | + [[ $GITHUB_REF =~ refs/tags/(.*) ]] + version="${BASH_REMATCH[1]}" + [ -z "${version}" ] && exit 1 + echo "RELEASE_VERSION=${version}" >> $GITHUB_ENV + + - uses: actions/checkout@v4 + + - uses: ./.github/build + with: + package-version: ${RELEASE_VERSION} + + pypi-publish: + needs: build + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + runs-on: ubuntu-latest + # Specifying a GitHub environment is optional, but strongly encouraged + environment: pypi + permissions: + # IMPORTANT: this permission is mandatory for Trusted Publishing + id-token: write + steps: + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + - uses: ./.github/publish + with: + repository-url: ${REPOSITORY_URL} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..6b0b207 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,69 @@ +on: + pull_request: + branches: + - master + +name: CI + +jobs: + test: + strategy: + matrix: + python-version: ["3.13", "3.12", "3.11", "3.10", "3.9"] + runs-on: ubuntu-latest + environment: pypi-test + steps: + - uses: actions/checkout@v4 + - uses: astral-sh/setup-uv@v5 + - uses: extractions/setup-just@v2 + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: "Install python venv" + run: "uv sync" + + - name: "Lint and test" + run: | + source .venv/bin/activate + just lint + just test + coverage xml + + - uses: codecov/codecov-action@v5 + if: ${{ contains(matrix.python-version, '3.13') }} + with: + fail_ci_if_error: true + token: ${{ secrets.CODECOV_TOKEN }} + + build: + needs: test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Load version into env + shell: bash + run: | + commit_nr=$(git rev-list --all --count) + echo "Commit Nr.: ${commit_nr}" + echo "RELEASE_VERSION=0.1.0${{ github.head_ref }}${commit_nr}" >> $GITHUB_ENV + + - uses: ./.github/build + with: + package-version: ${RELEASE_VERSION} + + pypi-publish: + needs: [test, build] + runs-on: ubuntu-latest + # Specifying a GitHub environment is optional, but strongly encouraged + environment: pypi-test + permissions: + # IMPORTANT: this permission is mandatory for Trusted Publishing + id-token: write + steps: + - uses: actions/download-artifact@v4 + - uses: actions/checkout@v4 + - uses: ./.github/publish + with: + repository-url: ${REPOSITORY_URL} \ No newline at end of file diff --git a/.gitignore b/.gitignore index afa56c1..4237867 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,8 @@ __pycache__/ .mypy_cache/ .ruff_cache/ *.py[oc] -build/ -dist/ +./build/ +./dist/ wheels/ *.egg-info .coverage diff --git a/README.md b/README.md index 3a22fed..bbba911 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![codecov](https://codecov.io/gh/DAtek/datek-app-utils/graph/badge.svg?token=UR0G0I41LD)](https://codecov.io/gh/DAtek/datek-app-utils) +[![codecov](https://codecov.io/gh/DAtek/enfig/graph/badge.svg?token=IJOcBg0LZ8)](https://codecov.io/gh/DAtek/enfig) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) License: MIT diff --git a/enfig/__init__.py b/enfig/__init__.py index b3fcd29..813bd5c 100644 --- a/enfig/__init__.py +++ b/enfig/__init__.py @@ -1,9 +1,8 @@ from enfig.base import BaseConfig -from enfig.errors import ValidationError, ConfigAttributeError +from enfig.errors import ConfigAttributeError, ValidationError __all__ = [ BaseConfig.__name__, ValidationError.__name__, ConfigAttributeError.__name__, ] - diff --git a/enfig/errors.py b/enfig/errors.py index 93d4a82..ef9c754 100644 --- a/enfig/errors.py +++ b/enfig/errors.py @@ -1,4 +1,4 @@ -from enum import Enum, StrEnum +from enum import Enum from enfig.bool_type import _Bool @@ -11,7 +11,7 @@ class InstantiationForbiddenError(EnfigError): pass -class ConfigAttributeErrorType(StrEnum): +class ConfigAttributeErrorType(str, Enum): NOT_SET = "Not set" INVALID_VALUE = "Invalid value" @@ -35,7 +35,8 @@ def __repr__(self): def __str__(self) -> str: required_type = bool if self.required_type is _Bool else self.required_type return ( - f"{self.attribute_name}: {self.error_type}, required type: `{required_type.__name__}`" + f"{self.attribute_name}: {self.error_type}, " + f"required type: `{required_type.__name__}`" ) diff --git a/pyproject.toml b/pyproject.toml index 7970ba3..0335124 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,10 @@ name = "enfig" version = "0.1.0" description = "Add your description here" readme = "README.md" -requires-python = "^3.8" +requires-python = ">=3.9" +GitHub = "https://github.com/DAtek/enfig" +license = "MIT" + dependencies = [] [dependency-groups] diff --git a/tests/conftest.py b/tests/conftest.py index e9a4987..046f530 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,3 +1,5 @@ +from typing import Optional + from pytest import fixture from enfig.base import BaseConfig @@ -9,7 +11,7 @@ class VolumeConfig(BaseConfig): VOLUME: int FIELD_WITH_DEFAULT_VALUE: str = "C" NON_MANDATORY_FIELD: str = None # type: ignore - TYPED_NON_MANDATORY_FIELD: str | None = None + TYPED_NON_MANDATORY_FIELD: Optional[str] = None return VolumeConfig diff --git a/uv.lock b/uv.lock index a828be7..bf4f3a9 100644 --- a/uv.lock +++ b/uv.lock @@ -1,6 +1,6 @@ version = 1 revision = 1 -requires-python = ">=3.13" +requires-python = ">=3.9" [[package]] name = "colorama" @@ -17,6 +17,38 @@ version = "7.9.2" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/04/b7/c0465ca253df10a9e8dae0692a4ae6e9726d245390aaef92360e1d6d3832/coverage-7.9.2.tar.gz", hash = "sha256:997024fa51e3290264ffd7492ec97d0690293ccd2b45a6cd7d82d945a4a80c8b", size = 813556 } wheels = [ + { url = "https://files.pythonhosted.org/packages/a1/0d/5c2114fd776c207bd55068ae8dc1bef63ecd1b767b3389984a8e58f2b926/coverage-7.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:66283a192a14a3854b2e7f3418d7db05cdf411012ab7ff5db98ff3b181e1f912", size = 212039 }, + { url = "https://files.pythonhosted.org/packages/cf/ad/dc51f40492dc2d5fcd31bb44577bc0cc8920757d6bc5d3e4293146524ef9/coverage-7.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4e01d138540ef34fcf35c1aa24d06c3de2a4cffa349e29a10056544f35cca15f", size = 212428 }, + { url = "https://files.pythonhosted.org/packages/a2/a3/55cb3ff1b36f00df04439c3993d8529193cdf165a2467bf1402539070f16/coverage-7.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f22627c1fe2745ee98d3ab87679ca73a97e75ca75eb5faee48660d060875465f", size = 241534 }, + { url = "https://files.pythonhosted.org/packages/eb/c9/a8410b91b6be4f6e9c2e9f0dce93749b6b40b751d7065b4410bf89cb654b/coverage-7.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b1c2d8363247b46bd51f393f86c94096e64a1cf6906803fa8d5a9d03784bdbf", size = 239408 }, + { url = "https://files.pythonhosted.org/packages/ff/c4/6f3e56d467c612b9070ae71d5d3b114c0b899b5788e1ca3c93068ccb7018/coverage-7.9.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c10c882b114faf82dbd33e876d0cbd5e1d1ebc0d2a74ceef642c6152f3f4d547", size = 240552 }, + { url = "https://files.pythonhosted.org/packages/fd/20/04eda789d15af1ce79bce5cc5fd64057c3a0ac08fd0576377a3096c24663/coverage-7.9.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:de3c0378bdf7066c3988d66cd5232d161e933b87103b014ab1b0b4676098fa45", size = 240464 }, + { url = "https://files.pythonhosted.org/packages/a9/5a/217b32c94cc1a0b90f253514815332d08ec0812194a1ce9cca97dda1cd20/coverage-7.9.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1e2f097eae0e5991e7623958a24ced3282676c93c013dde41399ff63e230fcf2", size = 239134 }, + { url = "https://files.pythonhosted.org/packages/34/73/1d019c48f413465eb5d3b6898b6279e87141c80049f7dbf73fd020138549/coverage-7.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28dc1f67e83a14e7079b6cea4d314bc8b24d1aed42d3582ff89c0295f09b181e", size = 239405 }, + { url = "https://files.pythonhosted.org/packages/49/6c/a2beca7aa2595dad0c0d3f350382c381c92400efe5261e2631f734a0e3fe/coverage-7.9.2-cp310-cp310-win32.whl", hash = "sha256:bf7d773da6af9e10dbddacbf4e5cab13d06d0ed93561d44dae0188a42c65be7e", size = 214519 }, + { url = "https://files.pythonhosted.org/packages/fc/c8/91e5e4a21f9a51e2c7cdd86e587ae01a4fcff06fc3fa8cde4d6f7cf68df4/coverage-7.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:0c0378ba787681ab1897f7c89b415bd56b0b2d9a47e5a3d8dc0ea55aac118d6c", size = 215400 }, + { url = "https://files.pythonhosted.org/packages/39/40/916786453bcfafa4c788abee4ccd6f592b5b5eca0cd61a32a4e5a7ef6e02/coverage-7.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a7a56a2964a9687b6aba5b5ced6971af308ef6f79a91043c05dd4ee3ebc3e9ba", size = 212152 }, + { url = "https://files.pythonhosted.org/packages/9f/66/cc13bae303284b546a030762957322bbbff1ee6b6cb8dc70a40f8a78512f/coverage-7.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:123d589f32c11d9be7fe2e66d823a236fe759b0096f5db3fb1b75b2fa414a4fa", size = 212540 }, + { url = "https://files.pythonhosted.org/packages/0f/3c/d56a764b2e5a3d43257c36af4a62c379df44636817bb5f89265de4bf8bd7/coverage-7.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:333b2e0ca576a7dbd66e85ab402e35c03b0b22f525eed82681c4b866e2e2653a", size = 245097 }, + { url = "https://files.pythonhosted.org/packages/b1/46/bd064ea8b3c94eb4ca5d90e34d15b806cba091ffb2b8e89a0d7066c45791/coverage-7.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:326802760da234baf9f2f85a39e4a4b5861b94f6c8d95251f699e4f73b1835dc", size = 242812 }, + { url = "https://files.pythonhosted.org/packages/43/02/d91992c2b29bc7afb729463bc918ebe5f361be7f1daae93375a5759d1e28/coverage-7.9.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19e7be4cfec248df38ce40968c95d3952fbffd57b400d4b9bb580f28179556d2", size = 244617 }, + { url = "https://files.pythonhosted.org/packages/b7/4f/8fadff6bf56595a16d2d6e33415841b0163ac660873ed9a4e9046194f779/coverage-7.9.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0b4a4cb73b9f2b891c1788711408ef9707666501ba23684387277ededab1097c", size = 244263 }, + { url = "https://files.pythonhosted.org/packages/9b/d2/e0be7446a2bba11739edb9f9ba4eff30b30d8257370e237418eb44a14d11/coverage-7.9.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2c8937fa16c8c9fbbd9f118588756e7bcdc7e16a470766a9aef912dd3f117dbd", size = 242314 }, + { url = "https://files.pythonhosted.org/packages/9d/7d/dcbac9345000121b8b57a3094c2dfcf1ccc52d8a14a40c1d4bc89f936f80/coverage-7.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:42da2280c4d30c57a9b578bafd1d4494fa6c056d4c419d9689e66d775539be74", size = 242904 }, + { url = "https://files.pythonhosted.org/packages/41/58/11e8db0a0c0510cf31bbbdc8caf5d74a358b696302a45948d7c768dfd1cf/coverage-7.9.2-cp311-cp311-win32.whl", hash = "sha256:14fa8d3da147f5fdf9d298cacc18791818f3f1a9f542c8958b80c228320e90c6", size = 214553 }, + { url = "https://files.pythonhosted.org/packages/3a/7d/751794ec8907a15e257136e48dc1021b1f671220ecccfd6c4eaf30802714/coverage-7.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:549cab4892fc82004f9739963163fd3aac7a7b0df430669b75b86d293d2df2a7", size = 215441 }, + { url = "https://files.pythonhosted.org/packages/62/5b/34abcedf7b946c1c9e15b44f326cb5b0da852885312b30e916f674913428/coverage-7.9.2-cp311-cp311-win_arm64.whl", hash = "sha256:c2667a2b913e307f06aa4e5677f01a9746cd08e4b35e14ebcde6420a9ebb4c62", size = 213873 }, + { url = "https://files.pythonhosted.org/packages/53/d7/7deefc6fd4f0f1d4c58051f4004e366afc9e7ab60217ac393f247a1de70a/coverage-7.9.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae9eb07f1cfacd9cfe8eaee6f4ff4b8a289a668c39c165cd0c8548484920ffc0", size = 212344 }, + { url = "https://files.pythonhosted.org/packages/95/0c/ee03c95d32be4d519e6a02e601267769ce2e9a91fc8faa1b540e3626c680/coverage-7.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9ce85551f9a1119f02adc46d3014b5ee3f765deac166acf20dbb851ceb79b6f3", size = 212580 }, + { url = "https://files.pythonhosted.org/packages/8b/9f/826fa4b544b27620086211b87a52ca67592622e1f3af9e0a62c87aea153a/coverage-7.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8f6389ac977c5fb322e0e38885fbbf901743f79d47f50db706e7644dcdcb6e1", size = 246383 }, + { url = "https://files.pythonhosted.org/packages/7f/b3/4477aafe2a546427b58b9c540665feff874f4db651f4d3cb21b308b3a6d2/coverage-7.9.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d9eae8cdfcd58fe7893b88993723583a6ce4dfbfd9f29e001922544f95615", size = 243400 }, + { url = "https://files.pythonhosted.org/packages/f8/c2/efffa43778490c226d9d434827702f2dfbc8041d79101a795f11cbb2cf1e/coverage-7.9.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fae939811e14e53ed8a9818dad51d434a41ee09df9305663735f2e2d2d7d959b", size = 245591 }, + { url = "https://files.pythonhosted.org/packages/c6/e7/a59888e882c9a5f0192d8627a30ae57910d5d449c80229b55e7643c078c4/coverage-7.9.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:31991156251ec202c798501e0a42bbdf2169dcb0f137b1f5c0f4267f3fc68ef9", size = 245402 }, + { url = "https://files.pythonhosted.org/packages/92/a5/72fcd653ae3d214927edc100ce67440ed8a0a1e3576b8d5e6d066ed239db/coverage-7.9.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d0d67963f9cbfc7c7f96d4ac74ed60ecbebd2ea6eeb51887af0f8dce205e545f", size = 243583 }, + { url = "https://files.pythonhosted.org/packages/5c/f5/84e70e4df28f4a131d580d7d510aa1ffd95037293da66fd20d446090a13b/coverage-7.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49b752a2858b10580969ec6af6f090a9a440a64a301ac1528d7ca5f7ed497f4d", size = 244815 }, + { url = "https://files.pythonhosted.org/packages/39/e7/d73d7cbdbd09fdcf4642655ae843ad403d9cbda55d725721965f3580a314/coverage-7.9.2-cp312-cp312-win32.whl", hash = "sha256:88d7598b8ee130f32f8a43198ee02edd16d7f77692fa056cb779616bbea1b355", size = 214719 }, + { url = "https://files.pythonhosted.org/packages/9f/d6/7486dcc3474e2e6ad26a2af2db7e7c162ccd889c4c68fa14ea8ec189c9e9/coverage-7.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:9dfb070f830739ee49d7c83e4941cc767e503e4394fdecb3b54bfdac1d7662c0", size = 215509 }, + { url = "https://files.pythonhosted.org/packages/b7/34/0439f1ae2593b0346164d907cdf96a529b40b7721a45fdcf8b03c95fcd90/coverage-7.9.2-cp312-cp312-win_arm64.whl", hash = "sha256:4e2c058aef613e79df00e86b6d42a641c877211384ce5bd07585ed7ba71ab31b", size = 213910 }, { url = "https://files.pythonhosted.org/packages/94/9d/7a8edf7acbcaa5e5c489a646226bed9591ee1c5e6a84733c0140e9ce1ae1/coverage-7.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:985abe7f242e0d7bba228ab01070fde1d6c8fa12f142e43debe9ed1dde686038", size = 212367 }, { url = "https://files.pythonhosted.org/packages/e8/9e/5cd6f130150712301f7e40fb5865c1bc27b97689ec57297e568d972eec3c/coverage-7.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82c3939264a76d44fde7f213924021ed31f55ef28111a19649fec90c0f109e6d", size = 212632 }, { url = "https://files.pythonhosted.org/packages/a8/de/6287a2c2036f9fd991c61cefa8c64e57390e30c894ad3aa52fac4c1e14a8/coverage-7.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae5d563e970dbe04382f736ec214ef48103d1b875967c89d83c6e3f21706d5b3", size = 245793 }, @@ -39,9 +71,25 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/da/2e/af6b86f7c95441ce82f035b3affe1cd147f727bbd92f563be35e2d585683/coverage-7.9.2-cp313-cp313t-win32.whl", hash = "sha256:1df6b76e737c6a92210eebcb2390af59a141f9e9430210595251fbaf02d46926", size = 215440 }, { url = "https://files.pythonhosted.org/packages/4d/bb/8a785d91b308867f6b2e36e41c569b367c00b70c17f54b13ac29bcd2d8c8/coverage-7.9.2-cp313-cp313t-win_amd64.whl", hash = "sha256:f5fd54310b92741ebe00d9c0d1d7b2b27463952c022da6d47c175d246a98d1bd", size = 216537 }, { url = "https://files.pythonhosted.org/packages/1d/a0/a6bffb5e0f41a47279fd45a8f3155bf193f77990ae1c30f9c224b61cacb0/coverage-7.9.2-cp313-cp313t-win_arm64.whl", hash = "sha256:c48c2375287108c887ee87d13b4070a381c6537d30e8487b24ec721bf2a781cb", size = 214398 }, + { url = "https://files.pythonhosted.org/packages/62/ab/b4b06662ccaa00ca7bbee967b7035a33a58b41efb92d8c89a6c523a2ccd5/coverage-7.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ddc39510ac922a5c4c27849b739f875d3e1d9e590d1e7b64c98dadf037a16cce", size = 212037 }, + { url = "https://files.pythonhosted.org/packages/bb/5e/04619995657acc898d15bfad42b510344b3a74d4d5bc34f2e279d46c781c/coverage-7.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a535c0c7364acd55229749c2b3e5eebf141865de3a8f697076a3291985f02d30", size = 212412 }, + { url = "https://files.pythonhosted.org/packages/14/e7/1465710224dc6d31c534e7714cbd907210622a044adc81c810e72eea873f/coverage-7.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df0f9ef28e0f20c767ccdccfc5ae5f83a6f4a2fbdfbcbcc8487a8a78771168c8", size = 241164 }, + { url = "https://files.pythonhosted.org/packages/ab/f2/44c6fbd2794afeb9ab6c0a14d3c088ab1dae3dff3df2624609981237bbb4/coverage-7.9.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f3da12e0ccbcb348969221d29441ac714bbddc4d74e13923d3d5a7a0bebef7a", size = 239032 }, + { url = "https://files.pythonhosted.org/packages/6a/d2/7a79845429c0aa2e6788bc45c26a2e3052fa91082c9ea1dea56fb531952c/coverage-7.9.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a17eaf46f56ae0f870f14a3cbc2e4632fe3771eab7f687eda1ee59b73d09fe4", size = 240148 }, + { url = "https://files.pythonhosted.org/packages/9c/7d/2731d1b4c9c672d82d30d218224dfc62939cf3800bc8aba0258fefb191f5/coverage-7.9.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:669135a9d25df55d1ed56a11bf555f37c922cf08d80799d4f65d77d7d6123fcf", size = 239875 }, + { url = "https://files.pythonhosted.org/packages/1b/83/685958715429a9da09cf172c15750ca5c795dd7259466f2645403696557b/coverage-7.9.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:9d3a700304d01a627df9db4322dc082a0ce1e8fc74ac238e2af39ced4c083193", size = 238127 }, + { url = "https://files.pythonhosted.org/packages/34/ff/161a4313308b3783126790adfae1970adbe4886fda8788792e435249910a/coverage-7.9.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:71ae8b53855644a0b1579d4041304ddc9995c7b21c8a1f16753c4d8903b4dfed", size = 239064 }, + { url = "https://files.pythonhosted.org/packages/17/14/fe33f41b2e80811021de059621f44c01ebe4d6b08bdb82d54a514488e933/coverage-7.9.2-cp39-cp39-win32.whl", hash = "sha256:dd7a57b33b5cf27acb491e890720af45db05589a80c1ffc798462a765be6d4d7", size = 214522 }, + { url = "https://files.pythonhosted.org/packages/6e/30/63d850ec31b5c6f6a7b4e853016375b846258300320eda29376e2786ceeb/coverage-7.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:f65bb452e579d5540c8b37ec105dd54d8b9307b07bcaa186818c104ffda22441", size = 215419 }, + { url = "https://files.pythonhosted.org/packages/d7/85/f8bbefac27d286386961c25515431482a425967e23d3698b75a250872924/coverage-7.9.2-pp39.pp310.pp311-none-any.whl", hash = "sha256:8a1166db2fb62473285bcb092f586e081e92656c7dfa8e9f62b4d39d7e6b5050", size = 204013 }, { url = "https://files.pythonhosted.org/packages/3c/38/bbe2e63902847cf79036ecc75550d0698af31c91c7575352eb25190d0fb3/coverage-7.9.2-py3-none-any.whl", hash = "sha256:e425cd5b00f6fc0ed7cdbd766c70be8baab4b7839e4d4fe5fac48581dd968ea4", size = 204005 }, ] +[package.optional-dependencies] +toml = [ + { name = "tomli", marker = "python_full_version <= '3.11'" }, +] + [[package]] name = "enfig" version = "0.1.0" @@ -65,6 +113,18 @@ dev = [ { name = "ruff", specifier = ">=0.12.4" }, ] +[[package]] +name = "exceptiongroup" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10", size = 16674 }, +] + [[package]] name = "iniconfig" version = "2.1.0" @@ -81,16 +141,41 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mypy-extensions" }, { name = "pathspec" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/1e/e3/034322d5a779685218ed69286c32faa505247f1f096251ef66c8fd203b08/mypy-1.17.0.tar.gz", hash = "sha256:e5d7ccc08ba089c06e2f5629c660388ef1fee708444f1dee0b9203fa031dee03", size = 3352114 } wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/31/e762baa3b73905c856d45ab77b4af850e8159dffffd86a52879539a08c6b/mypy-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8e08de6138043108b3b18f09d3f817a4783912e48828ab397ecf183135d84d6", size = 10998313 }, + { url = "https://files.pythonhosted.org/packages/1c/c1/25b2f0d46fb7e0b5e2bee61ec3a47fe13eff9e3c2f2234f144858bbe6485/mypy-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce4a17920ec144647d448fc43725b5873548b1aae6c603225626747ededf582d", size = 10128922 }, + { url = "https://files.pythonhosted.org/packages/02/78/6d646603a57aa8a2886df1b8881fe777ea60f28098790c1089230cd9c61d/mypy-1.17.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6ff25d151cc057fdddb1cb1881ef36e9c41fa2a5e78d8dd71bee6e4dcd2bc05b", size = 11913524 }, + { url = "https://files.pythonhosted.org/packages/4f/19/dae6c55e87ee426fb76980f7e78484450cad1c01c55a1dc4e91c930bea01/mypy-1.17.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93468cf29aa9a132bceb103bd8475f78cacde2b1b9a94fd978d50d4bdf616c9a", size = 12650527 }, + { url = "https://files.pythonhosted.org/packages/86/e1/f916845a235235a6c1e4d4d065a3930113767001d491b8b2e1b61ca56647/mypy-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:98189382b310f16343151f65dd7e6867386d3e35f7878c45cfa11383d175d91f", size = 12897284 }, + { url = "https://files.pythonhosted.org/packages/ae/dc/414760708a4ea1b096bd214d26a24e30ac5e917ef293bc33cdb6fe22d2da/mypy-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:c004135a300ab06a045c1c0d8e3f10215e71d7b4f5bb9a42ab80236364429937", size = 9506493 }, + { url = "https://files.pythonhosted.org/packages/d4/24/82efb502b0b0f661c49aa21cfe3e1999ddf64bf5500fc03b5a1536a39d39/mypy-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9d4fe5c72fd262d9c2c91c1117d16aac555e05f5beb2bae6a755274c6eec42be", size = 10914150 }, + { url = "https://files.pythonhosted.org/packages/03/96/8ef9a6ff8cedadff4400e2254689ca1dc4b420b92c55255b44573de10c54/mypy-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d96b196e5c16f41b4f7736840e8455958e832871990c7ba26bf58175e357ed61", size = 10039845 }, + { url = "https://files.pythonhosted.org/packages/df/32/7ce359a56be779d38021d07941cfbb099b41411d72d827230a36203dbb81/mypy-1.17.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:73a0ff2dd10337ceb521c080d4147755ee302dcde6e1a913babd59473904615f", size = 11837246 }, + { url = "https://files.pythonhosted.org/packages/82/16/b775047054de4d8dbd668df9137707e54b07fe18c7923839cd1e524bf756/mypy-1.17.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:24cfcc1179c4447854e9e406d3af0f77736d631ec87d31c6281ecd5025df625d", size = 12571106 }, + { url = "https://files.pythonhosted.org/packages/a1/cf/fa33eaf29a606102c8d9ffa45a386a04c2203d9ad18bf4eef3e20c43ebc8/mypy-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c56f180ff6430e6373db7a1d569317675b0a451caf5fef6ce4ab365f5f2f6c3", size = 12759960 }, + { url = "https://files.pythonhosted.org/packages/94/75/3f5a29209f27e739ca57e6350bc6b783a38c7621bdf9cac3ab8a08665801/mypy-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:eafaf8b9252734400f9b77df98b4eee3d2eecab16104680d51341c75702cad70", size = 9503888 }, + { url = "https://files.pythonhosted.org/packages/12/e9/e6824ed620bbf51d3bf4d6cbbe4953e83eaf31a448d1b3cfb3620ccb641c/mypy-1.17.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f986f1cab8dbec39ba6e0eaa42d4d3ac6686516a5d3dccd64be095db05ebc6bb", size = 11086395 }, + { url = "https://files.pythonhosted.org/packages/ba/51/a4afd1ae279707953be175d303f04a5a7bd7e28dc62463ad29c1c857927e/mypy-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:51e455a54d199dd6e931cd7ea987d061c2afbaf0960f7f66deef47c90d1b304d", size = 10120052 }, + { url = "https://files.pythonhosted.org/packages/8a/71/19adfeac926ba8205f1d1466d0d360d07b46486bf64360c54cb5a2bd86a8/mypy-1.17.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3204d773bab5ff4ebbd1f8efa11b498027cd57017c003ae970f310e5b96be8d8", size = 11861806 }, + { url = "https://files.pythonhosted.org/packages/0b/64/d6120eca3835baf7179e6797a0b61d6c47e0bc2324b1f6819d8428d5b9ba/mypy-1.17.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1051df7ec0886fa246a530ae917c473491e9a0ba6938cfd0ec2abc1076495c3e", size = 12744371 }, + { url = "https://files.pythonhosted.org/packages/1f/dc/56f53b5255a166f5bd0f137eed960e5065f2744509dfe69474ff0ba772a5/mypy-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f773c6d14dcc108a5b141b4456b0871df638eb411a89cd1c0c001fc4a9d08fc8", size = 12914558 }, + { url = "https://files.pythonhosted.org/packages/69/ac/070bad311171badc9add2910e7f89271695a25c136de24bbafc7eded56d5/mypy-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:1619a485fd0e9c959b943c7b519ed26b712de3002d7de43154a489a2d0fd817d", size = 9585447 }, { url = "https://files.pythonhosted.org/packages/be/7b/5f8ab461369b9e62157072156935cec9d272196556bdc7c2ff5f4c7c0f9b/mypy-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c41aa59211e49d717d92b3bb1238c06d387c9325d3122085113c79118bebb06", size = 11070019 }, { url = "https://files.pythonhosted.org/packages/9c/f8/c49c9e5a2ac0badcc54beb24e774d2499748302c9568f7f09e8730e953fa/mypy-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e69db1fb65b3114f98c753e3930a00514f5b68794ba80590eb02090d54a5d4a", size = 10114457 }, { url = "https://files.pythonhosted.org/packages/89/0c/fb3f9c939ad9beed3e328008b3fb90b20fda2cddc0f7e4c20dbefefc3b33/mypy-1.17.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:03ba330b76710f83d6ac500053f7727270b6b8553b0423348ffb3af6f2f7b889", size = 11857838 }, { url = "https://files.pythonhosted.org/packages/4c/66/85607ab5137d65e4f54d9797b77d5a038ef34f714929cf8ad30b03f628df/mypy-1.17.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:037bc0f0b124ce46bfde955c647f3e395c6174476a968c0f22c95a8d2f589bba", size = 12731358 }, { url = "https://files.pythonhosted.org/packages/73/d0/341dbbfb35ce53d01f8f2969facbb66486cee9804048bf6c01b048127501/mypy-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c38876106cb6132259683632b287238858bd58de267d80defb6f418e9ee50658", size = 12917480 }, { url = "https://files.pythonhosted.org/packages/64/63/70c8b7dbfc520089ac48d01367a97e8acd734f65bd07813081f508a8c94c/mypy-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:d30ba01c0f151998f367506fab31c2ac4527e6a7b2690107c7a7f9e3cb419a9c", size = 9589666 }, + { url = "https://files.pythonhosted.org/packages/9f/a0/6263dd11941231f688f0a8f2faf90ceac1dc243d148d314a089d2fe25108/mypy-1.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:63e751f1b5ab51d6f3d219fe3a2fe4523eaa387d854ad06906c63883fde5b1ab", size = 10988185 }, + { url = "https://files.pythonhosted.org/packages/02/13/b8f16d6b0dc80277129559c8e7dbc9011241a0da8f60d031edb0e6e9ac8f/mypy-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f7fb09d05e0f1c329a36dcd30e27564a3555717cde87301fae4fb542402ddfad", size = 10120169 }, + { url = "https://files.pythonhosted.org/packages/14/ef/978ba79df0d65af680e20d43121363cf643eb79b04bf3880d01fc8afeb6f/mypy-1.17.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b72c34ce05ac3a1361ae2ebb50757fb6e3624032d91488d93544e9f82db0ed6c", size = 11918121 }, + { url = "https://files.pythonhosted.org/packages/f4/10/55ef70b104151a0d8280474f05268ff0a2a79be8d788d5e647257d121309/mypy-1.17.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:434ad499ad8dde8b2f6391ddfa982f41cb07ccda8e3c67781b1bfd4e5f9450a8", size = 12648821 }, + { url = "https://files.pythonhosted.org/packages/26/8c/7781fcd2e1eef48fbedd3a422c21fe300a8e03ed5be2eb4bd10246a77f4e/mypy-1.17.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f105f61a5eff52e137fd73bee32958b2add9d9f0a856f17314018646af838e97", size = 12896955 }, + { url = "https://files.pythonhosted.org/packages/78/13/03ac759dabe86e98ca7b6681f114f90ee03f3ff8365a57049d311bd4a4e3/mypy-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:ba06254a5a22729853209550d80f94e28690d5530c661f9416a68ac097b13fc4", size = 9512957 }, { url = "https://files.pythonhosted.org/packages/e3/fc/ee058cc4316f219078464555873e99d170bde1d9569abd833300dbeb484a/mypy-1.17.0-py3-none-any.whl", hash = "sha256:15d9d0018237ab058e5de3d8fce61b6fa72cc59cc78fd91f1b474bce12abf496", size = 2283195 }, ] @@ -145,10 +230,12 @@ version = "8.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, { name = "iniconfig" }, { name = "packaging" }, { name = "pluggy" }, { name = "pygments" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714 } wheels = [ @@ -160,7 +247,7 @@ name = "pytest-cov" version = "6.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "coverage" }, + { name = "coverage", extra = ["toml"] }, { name = "pluggy" }, { name = "pytest" }, ] @@ -194,6 +281,45 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/11/02/8857d0dfb8f44ef299a5dfd898f673edefb71e3b533b3b9d2db4c832dd13/ruff-0.12.4-py3-none-win_arm64.whl", hash = "sha256:0618ec4442a83ab545e5b71202a5c0ed7791e8471435b94e655b570a5031a98e", size = 10469336 }, ] +[[package]] +name = "tomli" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", size = 131077 }, + { url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", size = 123429 }, + { url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", size = 226067 }, + { url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", size = 236030 }, + { url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", size = 240898 }, + { url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894 }, + { url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319 }, + { url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273 }, + { url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", size = 98310 }, + { url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", size = 108309 }, + { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762 }, + { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453 }, + { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486 }, + { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349 }, + { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159 }, + { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243 }, + { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645 }, + { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584 }, + { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875 }, + { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418 }, + { url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", size = 132708 }, + { url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", size = 123582 }, + { url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", size = 232543 }, + { url = "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", size = 241691 }, + { url = "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", size = 251170 }, + { url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", size = 236530 }, + { url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", size = 258666 }, + { url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", size = 243954 }, + { url = "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", size = 98724 }, + { url = "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", size = 109383 }, + { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 }, +] + [[package]] name = "typing-extensions" version = "4.14.1" From 76d3966ed5a38c4f9f8a0d62bf2cc291be9043ad Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Thu, 24 Jul 2025 17:48:34 +0200 Subject: [PATCH 02/16] Trigger CI --- .github/workflows/CD.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index cdbd8ed..d7b16b4 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -36,4 +36,4 @@ jobs: - uses: actions/download-artifact@v4 - uses: ./.github/publish with: - repository-url: ${REPOSITORY_URL} + repository-url: ${REPOSITORY_URL} \ No newline at end of file From 56c3da86b67d407d0bd676170ae1eb18e5ad28d1 Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Thu, 24 Jul 2025 17:52:20 +0200 Subject: [PATCH 03/16] Trigger CI --- .github/workflows/CD.yml | 2 +- .github/workflows/CI.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index d7b16b4..cdbd8ed 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -36,4 +36,4 @@ jobs: - uses: actions/download-artifact@v4 - uses: ./.github/publish with: - repository-url: ${REPOSITORY_URL} \ No newline at end of file + repository-url: ${REPOSITORY_URL} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 6b0b207..9839168 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -62,8 +62,8 @@ jobs: # IMPORTANT: this permission is mandatory for Trusted Publishing id-token: write steps: - - uses: actions/download-artifact@v4 - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 - uses: ./.github/publish with: repository-url: ${REPOSITORY_URL} \ No newline at end of file From 80e21de8d645cface0fd971e0dad1ed5325a21e7 Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Thu, 24 Jul 2025 18:02:00 +0200 Subject: [PATCH 04/16] Trigger CI --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9839168..ddd3142 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -66,4 +66,4 @@ jobs: - uses: actions/download-artifact@v4 - uses: ./.github/publish with: - repository-url: ${REPOSITORY_URL} \ No newline at end of file + repository-url: ${REPOSITORY_URL} From d7af89b97090d479f3884a4bb8e40df527cd2b41 Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Thu, 24 Jul 2025 18:08:38 +0200 Subject: [PATCH 05/16] Try older pypi-publish action --- .github/publish/action.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/publish/action.yml b/.github/publish/action.yml index 2ab2afc..097104e 100644 --- a/.github/publish/action.yml +++ b/.github/publish/action.yml @@ -7,6 +7,7 @@ runs: using: "composite" steps: - name: Publish package distributions to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 + # https://github.com/pypa/gh-action-pypi-publish/issues/290 + uses: pypa/gh-action-pypi-publish@v1.11.0 with: repository-url: ${REPOSITORY_URL} From 705ebab0b991ff2a0f98608dfcb30f97d4be3007 Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Thu, 24 Jul 2025 18:17:07 +0200 Subject: [PATCH 06/16] Fix artifact downloading --- .github/publish/action.yml | 3 +++ .github/workflows/CD.yml | 1 - .github/workflows/CI.yml | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/publish/action.yml b/.github/publish/action.yml index 097104e..8a97b3b 100644 --- a/.github/publish/action.yml +++ b/.github/publish/action.yml @@ -6,6 +6,9 @@ inputs: runs: using: "composite" steps: + - uses: actions/download-artifact@v4 + with: + path: ./dist - name: Publish package distributions to PyPI # https://github.com/pypa/gh-action-pypi-publish/issues/290 uses: pypa/gh-action-pypi-publish@v1.11.0 diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index cdbd8ed..a2a6282 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -33,7 +33,6 @@ jobs: id-token: write steps: - uses: actions/checkout@v4 - - uses: actions/download-artifact@v4 - uses: ./.github/publish with: repository-url: ${REPOSITORY_URL} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index ddd3142..30db199 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -63,7 +63,6 @@ jobs: id-token: write steps: - uses: actions/checkout@v4 - - uses: actions/download-artifact@v4 - uses: ./.github/publish with: repository-url: ${REPOSITORY_URL} From de1418d11867a2ee9a0e6ac8f959d10a3f936015 Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Thu, 24 Jul 2025 20:52:10 +0200 Subject: [PATCH 07/16] Fix providing repository URL --- .github/publish/action.yml | 4 ++-- .github/workflows/CD.yml | 2 +- .github/workflows/CI.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/publish/action.yml b/.github/publish/action.yml index 8a97b3b..ba2f796 100644 --- a/.github/publish/action.yml +++ b/.github/publish/action.yml @@ -11,6 +11,6 @@ runs: path: ./dist - name: Publish package distributions to PyPI # https://github.com/pypa/gh-action-pypi-publish/issues/290 - uses: pypa/gh-action-pypi-publish@v1.11.0 + uses: pypa/gh-action-pypi-publish@release/v1 with: - repository-url: ${REPOSITORY_URL} + repository-url: ${{ inputs.repository-url }} diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index a2a6282..79afa62 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -35,4 +35,4 @@ jobs: - uses: actions/checkout@v4 - uses: ./.github/publish with: - repository-url: ${REPOSITORY_URL} + repository-url: ${{ env.REPOSITORY_URL }} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 30db199..c3c7ab6 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -65,4 +65,4 @@ jobs: - uses: actions/checkout@v4 - uses: ./.github/publish with: - repository-url: ${REPOSITORY_URL} + repository-url: ${{ env.REPOSITORY_URL }} From d97d496a45ee25f89147489ebae0d6e5500cbd26 Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Thu, 24 Jul 2025 20:57:13 +0200 Subject: [PATCH 08/16] Use top-level publishing --- .github/publish/action.yml | 16 ---------------- .github/workflows/CD.yml | 6 ++++-- .github/workflows/CI.yml | 6 ++++-- 3 files changed, 8 insertions(+), 20 deletions(-) delete mode 100644 .github/publish/action.yml diff --git a/.github/publish/action.yml b/.github/publish/action.yml deleted file mode 100644 index ba2f796..0000000 --- a/.github/publish/action.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: publish -inputs: - repository-url: - required: true - description: The destination package repository URL -runs: - using: "composite" - steps: - - uses: actions/download-artifact@v4 - with: - path: ./dist - - name: Publish package distributions to PyPI - # https://github.com/pypa/gh-action-pypi-publish/issues/290 - uses: pypa/gh-action-pypi-publish@release/v1 - with: - repository-url: ${{ inputs.repository-url }} diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index 79afa62..1ee92d8 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -32,7 +32,9 @@ jobs: # IMPORTANT: this permission is mandatory for Trusted Publishing id-token: write steps: - - uses: actions/checkout@v4 - - uses: ./.github/publish + - uses: actions/download-artifact@v4 + with: + path: ./dist + - uses: pypa/gh-action-pypi-publish@release/v1 with: repository-url: ${{ env.REPOSITORY_URL }} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c3c7ab6..b75e7fd 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -62,7 +62,9 @@ jobs: # IMPORTANT: this permission is mandatory for Trusted Publishing id-token: write steps: - - uses: actions/checkout@v4 - - uses: ./.github/publish + - uses: actions/download-artifact@v4 + with: + path: ./dist + - uses: pypa/gh-action-pypi-publish@release/v1 with: repository-url: ${{ env.REPOSITORY_URL }} From 64b9044a559c6df3304bd23dfd52f411472de4a3 Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Thu, 24 Jul 2025 20:59:06 +0200 Subject: [PATCH 09/16] Fix repository url --- .github/workflows/CD.yml | 2 +- .github/workflows/CI.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index 1ee92d8..6a71606 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -37,4 +37,4 @@ jobs: path: ./dist - uses: pypa/gh-action-pypi-publish@release/v1 with: - repository-url: ${{ env.REPOSITORY_URL }} + repository-url: ${{ vars.REPOSITORY_URL }} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index b75e7fd..c1a95a4 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -67,4 +67,4 @@ jobs: path: ./dist - uses: pypa/gh-action-pypi-publish@release/v1 with: - repository-url: ${{ env.REPOSITORY_URL }} + repository-url: ${{ vars.REPOSITORY_URL }} From 20bc9ccbe0d4396566715ca3a97f39a101a9735c Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Thu, 24 Jul 2025 21:02:26 +0200 Subject: [PATCH 10/16] Build artifact --- .github/build/action.yml | 3 ++- .github/workflows/CD.yml | 2 +- .github/workflows/CI.yml | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/build/action.yml b/.github/build/action.yml index d99a96c..349d84a 100644 --- a/.github/build/action.yml +++ b/.github/build/action.yml @@ -17,4 +17,5 @@ runs: - name: Upload package uses: actions/upload-artifact@v4 with: - path: ./dist \ No newline at end of file + path: dist/ + name: dist \ No newline at end of file diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index 6a71606..ddf49c5 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -34,7 +34,7 @@ jobs: steps: - uses: actions/download-artifact@v4 with: - path: ./dist + path: dist/ - uses: pypa/gh-action-pypi-publish@release/v1 with: repository-url: ${{ vars.REPOSITORY_URL }} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c1a95a4..018492a 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -64,7 +64,7 @@ jobs: steps: - uses: actions/download-artifact@v4 with: - path: ./dist + path: dist/ - uses: pypa/gh-action-pypi-publish@release/v1 with: repository-url: ${{ vars.REPOSITORY_URL }} From a6493bdf5108f5195a5ab364c0b412768bdaa4b5 Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Thu, 24 Jul 2025 21:04:48 +0200 Subject: [PATCH 11/16] Fix artifact --- .github/workflows/CI.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 018492a..4c2b138 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -63,8 +63,6 @@ jobs: id-token: write steps: - uses: actions/download-artifact@v4 - with: - path: dist/ - uses: pypa/gh-action-pypi-publish@release/v1 with: repository-url: ${{ vars.REPOSITORY_URL }} From 57066b30ee0b9194c97281eff21c90b0d2e791cf Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Fri, 25 Jul 2025 08:30:28 +0200 Subject: [PATCH 12/16] Run tests on pushing to master --- .github/build/action.yml | 1 - .github/workflows/CD.yml | 2 ++ .github/workflows/CI.yml | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/build/action.yml b/.github/build/action.yml index 349d84a..a424d29 100644 --- a/.github/build/action.yml +++ b/.github/build/action.yml @@ -18,4 +18,3 @@ runs: uses: actions/upload-artifact@v4 with: path: dist/ - name: dist \ No newline at end of file diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index ddf49c5..8b5133b 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -5,6 +5,7 @@ on: jobs: build: + name: Build runs-on: ubuntu-latest if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') steps: @@ -23,6 +24,7 @@ jobs: package-version: ${RELEASE_VERSION} pypi-publish: + name: Publish to pypi needs: build if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') runs-on: ubuntu-latest diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 4c2b138..25903dd 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -3,10 +3,15 @@ on: branches: - master + push: + branches: + - master + name: CI jobs: test: + name: Test strategy: matrix: python-version: ["3.13", "3.12", "3.11", "3.10", "3.9"] @@ -37,6 +42,8 @@ jobs: token: ${{ secrets.CODECOV_TOKEN }} build: + name: Build + if: ${{ github.event_name == 'pull_request' }} needs: test runs-on: ubuntu-latest steps: @@ -54,6 +61,8 @@ jobs: package-version: ${RELEASE_VERSION} pypi-publish: + name: Publish to test-pypi + if: ${{ github.event_name == 'pull_request' }} needs: [test, build] runs-on: ubuntu-latest # Specifying a GitHub environment is optional, but strongly encouraged From fc13e4345115fa59c38b7bcfee0e531a4c76822f Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Fri, 25 Jul 2025 08:37:49 +0200 Subject: [PATCH 13/16] Fix GHA and readme --- .github/build/action.yml | 1 + .github/workflows/CD.yml | 2 +- .github/workflows/CI.yml | 2 ++ LICENSE.md => LICENSE | 0 pyproject.toml | 8 +++++--- 5 files changed, 9 insertions(+), 4 deletions(-) rename LICENSE.md => LICENSE (100%) diff --git a/.github/build/action.yml b/.github/build/action.yml index a424d29..3d0ea98 100644 --- a/.github/build/action.yml +++ b/.github/build/action.yml @@ -18,3 +18,4 @@ runs: uses: actions/upload-artifact@v4 with: path: dist/ + name: dist diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index 8b5133b..288ff95 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -36,7 +36,7 @@ jobs: steps: - uses: actions/download-artifact@v4 with: - path: dist/ + name: dist - uses: pypa/gh-action-pypi-publish@release/v1 with: repository-url: ${{ vars.REPOSITORY_URL }} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 25903dd..9bee98c 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -72,6 +72,8 @@ jobs: id-token: write steps: - uses: actions/download-artifact@v4 + with: + name: dist - uses: pypa/gh-action-pypi-publish@release/v1 with: repository-url: ${{ vars.REPOSITORY_URL }} diff --git a/LICENSE.md b/LICENSE similarity index 100% rename from LICENSE.md rename to LICENSE diff --git a/pyproject.toml b/pyproject.toml index 0335124..3c64b67 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,12 +1,14 @@ +[project.urls] +Source = "https://github.com/datek/enfig" + [project] name = "enfig" version = "0.1.0" -description = "Add your description here" +description = "Lean, zero dependency environment parsing library." readme = "README.md" requires-python = ">=3.9" -GitHub = "https://github.com/DAtek/enfig" license = "MIT" - +license-files = ["LICENSE"] dependencies = [] [dependency-groups] From 1128207a4f5881a8a9aaee594f0b8335afa2771c Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Fri, 25 Jul 2025 08:42:14 +0200 Subject: [PATCH 14/16] Fix readme --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 3c64b67..a43aa29 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,6 +2,9 @@ Source = "https://github.com/datek/enfig" [project] +authors = [ + {name = "Attila Dudás", email = "attila.dudas@protonmail.com"}, +] name = "enfig" version = "0.1.0" description = "Lean, zero dependency environment parsing library." From d12e69d158bf02520f308367803330ae92d88d0d Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Fri, 25 Jul 2025 08:44:08 +0200 Subject: [PATCH 15/16] Artifact downloading --- .github/workflows/CD.yml | 1 + .github/workflows/CI.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index 288ff95..384c189 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -37,6 +37,7 @@ jobs: - uses: actions/download-artifact@v4 with: name: dist + path: dist/ - uses: pypa/gh-action-pypi-publish@release/v1 with: repository-url: ${{ vars.REPOSITORY_URL }} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9bee98c..ef32546 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -74,6 +74,7 @@ jobs: - uses: actions/download-artifact@v4 with: name: dist + path: dist/ - uses: pypa/gh-action-pypi-publish@release/v1 with: repository-url: ${{ vars.REPOSITORY_URL }} From 31424da6924076107a1bc774864bf23631df65a0 Mon Sep 17 00:00:00 2001 From: Attila Dudas Date: Fri, 25 Jul 2025 08:53:20 +0200 Subject: [PATCH 16/16] Fix versioning --- .github/workflows/CI.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index ef32546..66794cd 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -52,9 +52,8 @@ jobs: - name: Load version into env shell: bash run: | - commit_nr=$(git rev-list --all --count) - echo "Commit Nr.: ${commit_nr}" - echo "RELEASE_VERSION=0.1.0${{ github.head_ref }}${commit_nr}" >> $GITHUB_ENV + dev_version=$(date '+%Y%m%d%H%M%S') + echo "RELEASE_VERSION=0.1.0${{ github.head_ref }}${dev_version}" >> $GITHUB_ENV - uses: ./.github/build with: