diff --git a/.github/workflows/build-golang-macos.yaml b/.github/workflows/build-golang-macos.yaml index 626de1d..f3b97bb 100644 --- a/.github/workflows/build-golang-macos.yaml +++ b/.github/workflows/build-golang-macos.yaml @@ -20,7 +20,7 @@ jobs: fail-fast: true matrix: go-version: [1.24.x] - python3_version: [ "3.11", "3.12" ] + python3_version: [ "3.10", "3.11", "3.12" ] steps: - uses: actions/checkout@v4 @@ -47,4 +47,4 @@ jobs: # - uses: ./.github/workflows/platform-integration-test.yaml # with: - # wheel: dist/otdf_python-0.2.14-py3-none-any.whl + # wheel: dist/otdf_python-0.2.16-py3-none-any.whl diff --git a/.github/workflows/build-golang-ubuntu.yaml b/.github/workflows/build-golang-ubuntu.yaml index 282a1d0..399c8b6 100644 --- a/.github/workflows/build-golang-ubuntu.yaml +++ b/.github/workflows/build-golang-ubuntu.yaml @@ -16,7 +16,7 @@ jobs: fail-fast: true matrix: go-version: [1.24.x] - python3_version: [ "3.11", "3.12" ] + python3_version: [ "3.10", "3.11", "3.12" ] steps: - uses: actions/checkout@v4 @@ -43,12 +43,12 @@ jobs: - uses: actions/cache/restore@v4 with: - path: dist/otdf_python-0.2.14-py3-none-any.whl + path: dist/otdf_python-0.2.16-py3-none-any.whl key: ${{ runner.os }}${{ matrix.python3_version }}-data-${{ github.sha }} - uses: actions/cache/save@v4 with: - path: dist/otdf_python-0.2.14-py3-none-any.whl + path: dist/otdf_python-0.2.16-py3-none-any.whl key: ${{ runner.os }}${{ matrix.python3_version }}-data-${{ github.sha }} restore-keys: | ${{ runner.os }}${{ matrix.python3_version }}-data- @@ -57,9 +57,9 @@ jobs: strategy: fail-fast: true matrix: - python3_version: [ "3.11", "3.12" ] + python3_version: [ "3.10", "3.11", "3.12" ] needs: build uses: ./.github/workflows/platform-integration-test.yaml with: - wheel: dist/otdf_python-0.2.14-py3-none-any.whl + wheel: dist/otdf_python-0.2.16-py3-none-any.whl python_version: ${{ matrix.python3_version }} diff --git a/.github/workflows/platform-integration-test.yaml b/.github/workflows/platform-integration-test.yaml index b9aee0e..af19b5d 100644 --- a/.github/workflows/platform-integration-test.yaml +++ b/.github/workflows/platform-integration-test.yaml @@ -29,7 +29,7 @@ jobs: - uses: actions/cache/restore@v4 with: - path: dist/otdf_python-0.2.14-py3-none-any.whl + path: dist/otdf_python-0.2.16-py3-none-any.whl key: ${{ runner.os }}${{ inputs.python_version }}-data-${{ github.sha }} - name: Prove that the input file is available diff --git a/.github/workflows/publish-test.yaml b/.github/workflows/publish-test.yaml index 3566c47..2147507 100644 --- a/.github/workflows/publish-test.yaml +++ b/.github/workflows/publish-test.yaml @@ -19,7 +19,7 @@ jobs: fail-fast: false matrix: os_version: [ 13 ] - python3_version: [ 11, 12 ] + python3_version: [ 10, 11, 12 ] arch_cibw_go: - [ "x86_64", "amd64" ] - [ "arm64", "arm64" ] @@ -60,7 +60,7 @@ jobs: CIBW_REPAIR_WHEEL_COMMAND_MACOS: "" PYTHON_BINARY_PATH: /usr/local/bin/python_for_build CIBW_BUILD: "cp3${{ matrix.python3_version }}-*" - CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp310-* cp313-* *-musllinux_x86_64" + CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp313-* *-musllinux_x86_64" CIBW_ENVIRONMENT: > PATH=$PATH:/usr/local/go/bin GOARCH=${{ matrix.arch_cibw_go[1] }} @@ -98,7 +98,7 @@ jobs: uses: pypa/cibuildwheel@v2.21.3 env: CIBW_BUILD: "cp3*_x86_64 cp3*_aarch64" - CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp310-* cp313-* *-musllinux_x86_64" + CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp313-* *-musllinux_x86_64" CIBW_ARCHS: "native" CIBW_ENVIRONMENT: > PATH=$PATH:/usr/local/go/bin @@ -149,7 +149,7 @@ jobs: uses: pypa/cibuildwheel@v2.21.3 env: CIBW_BUILD: "cp3*_aarch64" - CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp310-* cp313-* *-musllinux_x86_64" + CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp313-* *-musllinux_x86_64" CIBW_ARCHS: "aarch64" CIBW_ENVIRONMENT: > PATH=$PATH:/usr/local/go/bin @@ -194,7 +194,7 @@ jobs: # env: # # CGO_ENABLED: 1 # CIBW_BUILD: "cp3*" -# CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp310-* cp313-* *-musllinux_x86_64" +# CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp313-* *-musllinux_x86_64" # CIBW_ARCHS: "native" # CIBW_ENVIRONMENT: > # GOARCH=amd64 diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 09f174f..8866a7a 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -19,7 +19,7 @@ jobs: fail-fast: false matrix: os_version: [ 13 ] - python3_version: [ 11, 12 ] + python3_version: [ 10, 11, 12 ] arch_cibw_go: - [ "x86_64", "amd64" ] - [ "arm64", "arm64" ] @@ -60,7 +60,7 @@ jobs: CIBW_REPAIR_WHEEL_COMMAND_MACOS: "" PYTHON_BINARY_PATH: /usr/local/bin/python_for_build CIBW_BUILD: "cp3${{ matrix.python3_version }}-*" - CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp310-* cp313-* *-musllinux_x86_64" + CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp313-* *-musllinux_x86_64" CIBW_ENVIRONMENT: > PATH=$PATH:/usr/local/go/bin GOARCH=${{ matrix.arch_cibw_go[1] }} @@ -98,7 +98,7 @@ jobs: uses: pypa/cibuildwheel@v2.21.3 env: CIBW_BUILD: "cp3*_x86_64 cp3*_aarch64" - CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp310-* cp313-* *-musllinux_x86_64" + CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp313-* *-musllinux_x86_64" CIBW_ARCHS: "native" CIBW_ENVIRONMENT: > PATH=$PATH:/usr/local/go/bin @@ -149,7 +149,7 @@ jobs: uses: pypa/cibuildwheel@v2.21.3 env: CIBW_BUILD: "cp3*_aarch64" - CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp310-* cp313-* *-musllinux_x86_64" + CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp313-* *-musllinux_x86_64" CIBW_ARCHS: "aarch64" CIBW_ENVIRONMENT: > PATH=$PATH:/usr/local/go/bin @@ -194,7 +194,7 @@ jobs: # env: # # CGO_ENABLED: 1 # CIBW_BUILD: "cp3*" -# CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp310-* cp313-* *-musllinux_x86_64" +# CIBW_SKIP: "cp36-* cp37-* cp38-* cp39-* cp313-* *-musllinux_x86_64" # CIBW_ARCHS: "native" # CIBW_ENVIRONMENT: > # GOARCH=amd64 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e412843..3c4974e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -40,7 +40,7 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.11.6 + rev: v0.12.5 hooks: # Run the linter. - id: ruff diff --git a/LICENSE b/LICENSE index 81140f1..d8d5e1b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 b-long +Copyright (c) 2024 to present b-long Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 685ebc1..c2a8ecb 100644 --- a/README.md +++ b/README.md @@ -27,10 +27,10 @@ Install from the [Python Package Index (PyPI)](https://pypi.org): pip install otdf_python # Install a pinned version -pip install otdf-python==0.2.14 +pip install otdf-python==0.2.16 # Install a pinned version, from test.pypi.org -pip install -i https://test.pypi.org/simple/ otdf-python==0.2.14 +pip install -i https://test.pypi.org/simple/ otdf-python==0.2.16 ``` ## Usage diff --git a/build-scripts/ci-build.sh b/build-scripts/ci-build.sh index 3263ff0..305c8ab 100755 --- a/build-scripts/ci-build.sh +++ b/build-scripts/ci-build.sh @@ -72,4 +72,4 @@ echo "✨✨✨ Build wheel" poetry run python3 setup.py bdist_wheel echo "✨✨✨ Install wheel" -pip install dist/otdf_python-0.2.14-py3-none-any.whl +pip install dist/otdf_python-0.2.16-py3-none-any.whl diff --git a/build-scripts/make_and_validate_script.sh b/build-scripts/make_and_validate_script.sh index 2a232a2..53940d5 100755 --- a/build-scripts/make_and_validate_script.sh +++ b/build-scripts/make_and_validate_script.sh @@ -47,7 +47,7 @@ python3 -m pip install --upgrade setuptools wheel python3 setup.py bdist_wheel # Prove that the wheel can be installed -pip install dist/otdf_python-0.2.14-py3-none-any.whl +pip install dist/otdf_python-0.2.16-py3-none-any.whl if [[ "$SKIP_TESTS" == "-s" || "$SKIP_TESTS" == "--skip-tests" ]]; then echo "Build is complete, skipping tests." diff --git a/build-scripts/uv_make_and_validate_script.sh b/build-scripts/uv_make_and_validate_script.sh index 8263d37..8dd4da7 100755 --- a/build-scripts/uv_make_and_validate_script.sh +++ b/build-scripts/uv_make_and_validate_script.sh @@ -70,7 +70,7 @@ loud_print "Installing wheel" uv venv .venv-wheel --python 3.12 "$PY_TYPE" source "${BUILD_ROOT}/.venv-wheel/bin/activate" pip install pybindgen -pip install dist/otdf_python-0.2.14-py3-none-any.whl +pip install dist/otdf_python-0.2.16-py3-none-any.whl if [[ "$SKIP_TESTS" == "-s" || "$SKIP_TESTS" == "--skip-tests" ]]; then echo "Build is complete, skipping tests." diff --git a/poetry.lock b/poetry.lock index 6002809..0da1c39 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. [[package]] name = "colorama" @@ -13,6 +13,25 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +[[package]] +name = "exceptiongroup" +version = "1.3.0" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version == \"3.10\"" +files = [ + {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"}, + {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} + +[package.extras] +test = ["pytest (>=6)"] + [[package]] name = "iniconfig" version = "2.0.0" @@ -79,13 +98,71 @@ files = [ [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +[[package]] +name = "tomli" +version = "2.2.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version == \"3.10\"" +files = [ + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, +] + +[[package]] +name = "typing-extensions" +version = "4.14.1" +description = "Backported and Experimental Type Hints for Python 3.9+" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version == \"3.10\"" +files = [ + {file = "typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76"}, + {file = "typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36"}, +] + [[package]] name = "wheel" version = "0.45.1" @@ -103,5 +180,5 @@ test = ["pytest (>=6.0.0)", "setuptools (>=65)"] [metadata] lock-version = "2.1" -python-versions = ">=3.11,<3.14" -content-hash = "6bbe14f2edb0469e90b8acaffbc2061a108122c58e6cee30f7b9f28387107be0" +python-versions = ">=3.10,<3.14" +content-hash = "f925fadc99f0a1eff5364ea9d6f104c2b431a5ac9cb76e2c707d4c344d1e9935" diff --git a/pyproject.toml b/pyproject.toml index ecb63a0..6abe122 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,13 +1,13 @@ [project] name = "otdf-python" # Should match 'setup.py' version number (used for gopy/pybindgen) -version = "0.2.14" +version = "0.2.16" description = "Unofficial OpenTDF SDK for Python." authors = [ {name="b-long", email="b-long@users.noreply.github.com"} ] readme = "README.md" -requires-python = ">=3.11" +requires-python = ">=3.10" [build-system] requires = ["hatchling"] @@ -19,10 +19,10 @@ pybindgen = "^0.22.1" [tool.poetry] package-mode = false -version = "0.2.14" +version = "0.2.16" [tool.poetry.dependencies] -python = ">=3.11,<3.14" +python = ">=3.10,<3.14" wheel = "^0.45.0" pybindgen = "^0.22.1" diff --git a/setup.py b/setup.py index 5015a6d..ca72efe 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ url="https://github.com/b-long/opentdf-python-sdk", package_data={"otdf_python": ["*.so"]}, # Should match 'pyproject.toml' version number - version="0.2.14", + version="0.2.16", author_email="b-long@users.noreply.github.com", include_package_data=True, ) diff --git a/setup_ci.py b/setup_ci.py index 3ad6da4..a0610bd 100644 --- a/setup_ci.py +++ b/setup_ci.py @@ -81,7 +81,7 @@ def build_extension(self, ext: Extension): setuptools.setup( name="otdf_python", - version="0.2.14", + version="0.2.16", author="b-long", description="Unofficial OpenTDF SDK for Python.", long_description_content_type="text/markdown", diff --git a/uv.lock b/uv.lock index 7385017..ed0bce7 100644 --- a/uv.lock +++ b/uv.lock @@ -1,7 +1,7 @@ version = 1 -requires-python = ">=3.11" +requires-python = ">=3.10" [[package]] name = "otdf-python" -version = "0.2.14" +version = "0.2.16" source = { editable = "." }