From 11292f7aba4333ff0885ed94251985fbeef5bd9f Mon Sep 17 00:00:00 2001 From: Benoit Chevallier-Mames Date: Tue, 28 May 2024 09:49:45 +0200 Subject: [PATCH] feat: adding support for python3.12 --- .github/workflows/continuous-integration.yaml | 51 ++++++++- README.md | 2 +- deps_licenses/licenses_linux_user.txt | 2 +- deps_licenses/licenses_linux_user.txt.md5 | 16 +++ deps_licenses/licenses_mac_intel_user.txt | 2 +- deps_licenses/licenses_mac_intel_user.txt.md5 | 16 +++ deps_licenses/licenses_mac_silicon_user.txt | 2 +- .../licenses_mac_silicon_user.txt.md5 | 16 +++ docs/getting-started/pip_installing.md | 2 +- poetry.lock | 108 +++++++++++++++++- pyproject.toml | 7 +- script/actions_utils/generate_test_matrix.py | 1 + .../check_installation_with_all_python.sh | 4 +- script/make_utils/licenses.sh | 2 + 14 files changed, 216 insertions(+), 15 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 193255874..9de827fd4 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -21,13 +21,13 @@ on: - pr linux_python_versions: - description: "Space separated list of python versions (3.8, 3.9, 3.10, 3.11 are supported) to launch on linux" + description: "Space separated list of python versions (3.8, 3.9, 3.10, 3.11, 3.12 are supported) to launch on linux" required: false type: string default: "3.8" macos_python_versions: - description: "Space separated list of python versions (3.8, 3.9, 3.10, 3.11 are supported) to launch on macos (intel)" + description: "Space separated list of python versions (3.8, 3.9, 3.10, 3.11, 3.12 are supported) to launch on macos (intel)" required: false type: string default: "3.8" @@ -110,6 +110,7 @@ jobs: needs-39-linux-runner: ${{ steps.set-matrix.outputs.needs-39-linux-runner }} needs-310-linux-runner: ${{ steps.set-matrix.outputs.needs-310-linux-runner }} needs-311-linux-runner: ${{ steps.set-matrix.outputs.needs-311-linux-runner }} + needs-312-linux-runner: ${{ steps.set-matrix.outputs.needs-312-linux-runner }} instance-type: ${{ steps.set-matrix.outputs.instance-type }} linux-python-versions: ${{ steps.set-matrix.outputs.linux-python-versions }} macos-python-versions: ${{ steps.set-matrix.outputs.macos-python-versions }} @@ -158,10 +159,10 @@ jobs: LINUX_PYTHON_VERSIONS="3.8" MACOS_PYTHON_VERSIONS="" elif [[ "${BUILD_TYPE}" == "weekly" ]]; then - LINUX_PYTHON_VERSIONS="3.8 3.9 3.10 3.11" + LINUX_PYTHON_VERSIONS="3.8 3.9 3.10 3.11 3.12" MACOS_PYTHON_VERSIONS="3.9" elif [[ "${BUILD_TYPE}" == "release" ]] || [[ "${BUILD_TYPE}" == "published_release" ]]; then - LINUX_PYTHON_VERSIONS="3.8 3.9 3.10 3.11" + LINUX_PYTHON_VERSIONS="3.8 3.9 3.10 3.11 3.12" MACOS_PYTHON_VERSIONS="" elif [[ "${BUILD_TYPE}" == "push_to_main" ]]; then LINUX_PYTHON_VERSIONS="3.8" @@ -211,6 +212,8 @@ jobs: jq -rc '. | map(select(.os_kind=="linux" and .python_version=="3.10")) | length > 0') NEEDS_LINUX_311_RUNNER=$(echo "${LINUX_MATRIX}" | \ jq -rc '. | map(select(.os_kind=="linux" and .python_version=="3.11")) | length > 0') + NEEDS_LINUX_312_RUNNER=$(echo "${LINUX_MATRIX}" | \ + jq -rc '. | map(select(.os_kind=="linux" and .python_version=="3.12")) | length > 0') echo "Needs Linux 3.8 runner:" echo "${NEEDS_LINUX_38_RUNNER}" @@ -224,10 +227,14 @@ jobs: echo "Needs Linux 3.11 runner:" echo "${NEEDS_LINUX_311_RUNNER}" + echo "Needs Linux 3.12 runner:" + echo "${NEEDS_LINUX_312_RUNNER}" + echo "needs-38-linux-runner=${NEEDS_LINUX_38_RUNNER}" >> $GITHUB_OUTPUT echo "needs-39-linux-runner=${NEEDS_LINUX_39_RUNNER}" >> $GITHUB_OUTPUT echo "needs-310-linux-runner=${NEEDS_LINUX_310_RUNNER}" >> $GITHUB_OUTPUT echo "needs-311-linux-runner=${NEEDS_LINUX_311_RUNNER}" >> $GITHUB_OUTPUT + echo "needs-312-linux-runner=${NEEDS_LINUX_312_RUNNER}" >> $GITHUB_OUTPUT echo "instance-type=${INSTANCE_TYPE}" >> $GITHUB_OUTPUT start-runner-linux: @@ -244,6 +251,8 @@ jobs: ec2-instance-id-310: ${{ steps.start-ec2-runner-310.outputs.ec2-instance-id || '' }} label-311: ${{ steps.start-ec2-runner-311.outputs.label }} ec2-instance-id-311: ${{ steps.start-ec2-runner-311.outputs.ec2-instance-id || '' }} + label-312: ${{ steps.start-ec2-runner-312.outputs.label }} + ec2-instance-id-312: ${{ steps.start-ec2-runner-312.outputs.ec2-instance-id || '' }} matrix: ${{ steps.update-linux-matrix.outputs.linux-matrix }} steps: - name: Checkout Code @@ -352,6 +361,29 @@ jobs: {"Key": "Team", "Value": "CML"} ] + - name: Start EC2 runner python 3.12 + id: start-ec2-runner-312 + if: ${{ !cancelled() && fromJSON(needs.matrix-preparation.outputs.needs-312-linux-runner) }} + uses: machulav/ec2-github-runner@fcfb31a5760dad1314a64a0e172b78ec6fc8a17e + with: + mode: start + github-token: ${{ secrets.EC2_RUNNER_BOT_TOKEN }} + ec2-image-id: ${{ secrets.AWS_EC2_AMI }} + ec2-instance-type: ${{ needs.matrix-preparation.outputs.instance-type }} + subnet-id: ${{ secrets.AWS_EC2_SUBNET_ID }} + security-group-id: ${{ secrets.AWS_EC2_SECURITY_GROUP_ID }} + aws-resource-tags: > + [ + {"Key": "Name", "Value": "cml-ci-ec2-github-runner-py312"}, + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, + {"Key": "Python version", "Value": "3.12"}, + {"Key": "Actor", "Value": "${{ github.actor }}"}, + {"Key": "Action", "Value": "${{ github.action }}"}, + {"Key": "GitHash", "Value": "${{ github.sha }}"}, + {"Key": "RefName", "Value": "${{ github.ref_name }}"}, + {"Key": "RunId", "Value": "${{ github.run_id }}"}, + {"Key": "Team", "Value": "CML"} + ] - name: Update Linux runs_on Matrix id: update-linux-matrix @@ -366,6 +398,8 @@ jobs: '(. | map(select(.os_kind=="linux" and .python_version=="3.10") |= . + {"runs_on": "${{ steps.start-ec2-runner-310.outputs.label }}"}) )') MATRIX=$(echo "${MATRIX}" | jq -rc \ '(. | map(select(.os_kind=="linux" and .python_version=="3.11") |= . + {"runs_on": "${{ steps.start-ec2-runner-311.outputs.label }}"}) )') + MATRIX=$(echo "${MATRIX}" | jq -rc \ + '(. | map(select(.os_kind=="linux" and .python_version=="3.12") |= . + {"runs_on": "${{ steps.start-ec2-runner-312.outputs.label }}"}) )') echo "Updated matrix:" echo "${MATRIX}" @@ -1046,6 +1080,15 @@ jobs: ec2-instance-id: ${{ needs.start-runner-linux.outputs.ec2-instance-id-311 }} mode: stop + - name: Stop EC2 runner python 3.12 + uses: machulav/ec2-github-runner@fcfb31a5760dad1314a64a0e172b78ec6fc8a17e + if: ${{ always() && needs.start-runner-linux.outputs.ec2-instance-id-312 }} + with: + github-token: ${{ secrets.EC2_RUNNER_BOT_TOKEN }} + label: ${{ needs.start-runner-linux.outputs.label-312 }} + ec2-instance-id: ${{ needs.start-runner-linux.outputs.ec2-instance-id-312 }} + mode: stop + build-macos-intel: name: Python ${{ matrix.python_version }} (macOS, intel) needs: [matrix-preparation] diff --git a/README.md b/README.md index e650f0973..d38105750 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ Depending on your OS, Concrete ML may be installed with Docker or with pip: | macOS 11+ (Intel) | Yes | Yes | | macOS 11+ (Apple Silicon: M1, M2, etc.) | Coming soon | Yes | -Note: Concrete ML only supports Python `3.8`, `3.9`, `3.10` and `3.11`. +Note: Concrete ML only supports Python `3.8`, `3.9`, `3.10`, `3.11` and `3.12`. Concrete ML can be installed on Kaggle ([see this question on the community for more details](https://community.zama.ai/t/how-do-we-use-concrete-ml-on-kaggle/332)) and on Google Colab. #### Docker diff --git a/deps_licenses/licenses_linux_user.txt b/deps_licenses/licenses_linux_user.txt index 746f931bb..d4759074a 100644 --- a/deps_licenses/licenses_linux_user.txt +++ b/deps_licenses/licenses_linux_user.txt @@ -47,7 +47,7 @@ python-dateutil, 2.9.0.post0, Apache Software License; BSD License pytz, 2024.1, MIT License requests, 2.32.3, Apache Software License scikit-learn, 1.1.3, BSD License -scipy, 1.10.1, BSD License +scipy, 1.13.1, BSD License six, 1.16.0, MIT License skl2onnx, 1.12, Apache Software License skops, 0.5.0, MIT diff --git a/deps_licenses/licenses_linux_user.txt.md5 b/deps_licenses/licenses_linux_user.txt.md5 index 5b11d0eab..86ceb4ff6 100644 --- a/deps_licenses/licenses_linux_user.txt.md5 +++ b/deps_licenses/licenses_linux_user.txt.md5 @@ -1 +1,17 @@ +<<<<<<< HEAD +<<<<<<< HEAD +<<<<<<< HEAD eb83b0f0acb879e882947f38f5d0c8aa +======= +<<<<<<< HEAD +f07036c8072f32a26aa79e5e4bbd9c32 +======= +ead3663b936227b3d224dc480933b084 +>>>>>>> 8de97ea7 (feat: adding support for python3.11) +>>>>>>> bc2393ee (feat: adding support for python3.11) +======= +eb83b0f0acb879e882947f38f5d0c8aa +>>>>>>> ea6f0812 (chore: update licenses) +======= +e3848db8eda62bc7a88db65909ae3602 +>>>>>>> 70e0e1f8 (chore: update licenses) diff --git a/deps_licenses/licenses_mac_intel_user.txt b/deps_licenses/licenses_mac_intel_user.txt index 822e58c8f..4b6baf544 100644 --- a/deps_licenses/licenses_mac_intel_user.txt +++ b/deps_licenses/licenses_mac_intel_user.txt @@ -35,7 +35,7 @@ python-dateutil, 2.9.0.post0, Apache Software License; BSD License pytz, 2024.1, MIT License requests, 2.32.3, Apache Software License scikit-learn, 1.1.3, BSD License -scipy, 1.10.1, BSD License +scipy, 1.13.1, BSD License six, 1.16.0, MIT License skl2onnx, 1.12, Apache Software License skops, 0.5.0, MIT diff --git a/deps_licenses/licenses_mac_intel_user.txt.md5 b/deps_licenses/licenses_mac_intel_user.txt.md5 index 5b11d0eab..86ceb4ff6 100644 --- a/deps_licenses/licenses_mac_intel_user.txt.md5 +++ b/deps_licenses/licenses_mac_intel_user.txt.md5 @@ -1 +1,17 @@ +<<<<<<< HEAD +<<<<<<< HEAD +<<<<<<< HEAD eb83b0f0acb879e882947f38f5d0c8aa +======= +<<<<<<< HEAD +f07036c8072f32a26aa79e5e4bbd9c32 +======= +ead3663b936227b3d224dc480933b084 +>>>>>>> 8de97ea7 (feat: adding support for python3.11) +>>>>>>> bc2393ee (feat: adding support for python3.11) +======= +eb83b0f0acb879e882947f38f5d0c8aa +>>>>>>> ea6f0812 (chore: update licenses) +======= +e3848db8eda62bc7a88db65909ae3602 +>>>>>>> 70e0e1f8 (chore: update licenses) diff --git a/deps_licenses/licenses_mac_silicon_user.txt b/deps_licenses/licenses_mac_silicon_user.txt index a60e4ae52..b772ebb05 100644 --- a/deps_licenses/licenses_mac_silicon_user.txt +++ b/deps_licenses/licenses_mac_silicon_user.txt @@ -35,7 +35,7 @@ python-dateutil, 2.9.0.post0, Apache Software License; BSD License pytz, 2024.1, MIT License requests, 2.32.3, Apache Software License scikit-learn, 1.1.3, BSD License -scipy, 1.10.1, BSD License +scipy, 1.13.1, BSD License six, 1.16.0, MIT License skl2onnx, 1.12, Apache Software License skops, 0.5.0, MIT diff --git a/deps_licenses/licenses_mac_silicon_user.txt.md5 b/deps_licenses/licenses_mac_silicon_user.txt.md5 index 5b11d0eab..86ceb4ff6 100644 --- a/deps_licenses/licenses_mac_silicon_user.txt.md5 +++ b/deps_licenses/licenses_mac_silicon_user.txt.md5 @@ -1 +1,17 @@ +<<<<<<< HEAD +<<<<<<< HEAD +<<<<<<< HEAD eb83b0f0acb879e882947f38f5d0c8aa +======= +<<<<<<< HEAD +f07036c8072f32a26aa79e5e4bbd9c32 +======= +ead3663b936227b3d224dc480933b084 +>>>>>>> 8de97ea7 (feat: adding support for python3.11) +>>>>>>> bc2393ee (feat: adding support for python3.11) +======= +eb83b0f0acb879e882947f38f5d0c8aa +>>>>>>> ea6f0812 (chore: update licenses) +======= +e3848db8eda62bc7a88db65909ae3602 +>>>>>>> 70e0e1f8 (chore: update licenses) diff --git a/docs/getting-started/pip_installing.md b/docs/getting-started/pip_installing.md index 433be6f9d..5425e9bd5 100644 --- a/docs/getting-started/pip_installing.md +++ b/docs/getting-started/pip_installing.md @@ -24,7 +24,7 @@ Depending on your OS/HW, Concrete ML may be installed with Docker or with pip: ### Python support -- **Version**: In the current release, Concrete ML supports only `3.8`, `3.9`, `3.10` and `3.11` versions of `python`. +- **Version**: In the current release, Concrete ML supports only `3.8`, `3.9`, `3.10`, `3.11` and `3.12` versions of `python`. - **Linux requirement**: The Concrete ML Python package requires `glibc >= 2.28`. On Linux, you can check your `glibc` version by running `ldd --version`. - **Kaggle installation**: Concrete ML can be installed on Kaggle ([see question on community for more details](https://community.zama.ai/t/how-do-we-use-concrete-ml-on-kaggle/332)) and on Google Colab. diff --git a/poetry.lock b/poetry.lock index f6e0be3b2..6716f4e30 100644 --- a/poetry.lock +++ b/poetry.lock @@ -803,6 +803,68 @@ type = "legacy" url = "https://pypi.zama.ai/cpu" reference = "zama-pypi-cpu" +[[package]] +name = "contourpy" +version = "1.1.0" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.8" +files = [ + {file = "contourpy-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:89f06eff3ce2f4b3eb24c1055a26981bffe4e7264acd86f15b97e40530b794bc"}, + {file = "contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dffcc2ddec1782dd2f2ce1ef16f070861af4fb78c69862ce0aab801495dda6a3"}, + {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25ae46595e22f93592d39a7eac3d638cda552c3e1160255258b695f7b58e5655"}, + {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:17cfaf5ec9862bc93af1ec1f302457371c34e688fbd381f4035a06cd47324f48"}, + {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18a64814ae7bce73925131381603fff0116e2df25230dfc80d6d690aa6e20b37"}, + {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90c81f22b4f572f8a2110b0b741bb64e5a6427e0a198b2cdc1fbaf85f352a3aa"}, + {file = "contourpy-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53cc3a40635abedbec7f1bde60f8c189c49e84ac180c665f2cd7c162cc454baa"}, + {file = "contourpy-1.1.0-cp310-cp310-win32.whl", hash = "sha256:9b2dd2ca3ac561aceef4c7c13ba654aaa404cf885b187427760d7f7d4c57cff8"}, + {file = "contourpy-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:1f795597073b09d631782e7245016a4323cf1cf0b4e06eef7ea6627e06a37ff2"}, + {file = "contourpy-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0b7b04ed0961647691cfe5d82115dd072af7ce8846d31a5fac6c142dcce8b882"}, + {file = "contourpy-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27bc79200c742f9746d7dd51a734ee326a292d77e7d94c8af6e08d1e6c15d545"}, + {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:052cc634bf903c604ef1a00a5aa093c54f81a2612faedaa43295809ffdde885e"}, + {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9382a1c0bc46230fb881c36229bfa23d8c303b889b788b939365578d762b5c18"}, + {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5cec36c5090e75a9ac9dbd0ff4a8cf7cecd60f1b6dc23a374c7d980a1cd710e"}, + {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f0cbd657e9bde94cd0e33aa7df94fb73c1ab7799378d3b3f902eb8eb2e04a3a"}, + {file = "contourpy-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:181cbace49874f4358e2929aaf7ba84006acb76694102e88dd15af861996c16e"}, + {file = "contourpy-1.1.0-cp311-cp311-win32.whl", hash = "sha256:edb989d31065b1acef3828a3688f88b2abb799a7db891c9e282df5ec7e46221b"}, + {file = "contourpy-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fb3b7d9e6243bfa1efb93ccfe64ec610d85cfe5aec2c25f97fbbd2e58b531256"}, + {file = "contourpy-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bcb41692aa09aeb19c7c213411854402f29f6613845ad2453d30bf421fe68fed"}, + {file = "contourpy-1.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5d123a5bc63cd34c27ff9c7ac1cd978909e9c71da12e05be0231c608048bb2ae"}, + {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62013a2cf68abc80dadfd2307299bfa8f5aa0dcaec5b2954caeb5fa094171103"}, + {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0b6616375d7de55797d7a66ee7d087efe27f03d336c27cf1f32c02b8c1a5ac70"}, + {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:317267d915490d1e84577924bd61ba71bf8681a30e0d6c545f577363157e5e94"}, + {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d551f3a442655f3dcc1285723f9acd646ca5858834efeab4598d706206b09c9f"}, + {file = "contourpy-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7a117ce7df5a938fe035cad481b0189049e8d92433b4b33aa7fc609344aafa1"}, + {file = "contourpy-1.1.0-cp38-cp38-win32.whl", hash = "sha256:108dfb5b3e731046a96c60bdc46a1a0ebee0760418951abecbe0fc07b5b93b27"}, + {file = "contourpy-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:d4f26b25b4f86087e7d75e63212756c38546e70f2a92d2be44f80114826e1cd4"}, + {file = "contourpy-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc00bb4225d57bff7ebb634646c0ee2a1298402ec10a5fe7af79df9a51c1bfd9"}, + {file = "contourpy-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:189ceb1525eb0655ab8487a9a9c41f42a73ba52d6789754788d1883fb06b2d8a"}, + {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f2931ed4741f98f74b410b16e5213f71dcccee67518970c42f64153ea9313b9"}, + {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30f511c05fab7f12e0b1b7730ebdc2ec8deedcfb505bc27eb570ff47c51a8f15"}, + {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:143dde50520a9f90e4a2703f367cf8ec96a73042b72e68fcd184e1279962eb6f"}, + {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e94bef2580e25b5fdb183bf98a2faa2adc5b638736b2c0a4da98691da641316a"}, + {file = "contourpy-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ed614aea8462735e7d70141374bd7650afd1c3f3cb0c2dbbcbe44e14331bf002"}, + {file = "contourpy-1.1.0-cp39-cp39-win32.whl", hash = "sha256:71551f9520f008b2950bef5f16b0e3587506ef4f23c734b71ffb7b89f8721999"}, + {file = "contourpy-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:438ba416d02f82b692e371858143970ed2eb6337d9cdbbede0d8ad9f3d7dd17d"}, + {file = "contourpy-1.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a698c6a7a432789e587168573a864a7ea374c6be8d4f31f9d87c001d5a843493"}, + {file = "contourpy-1.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:397b0ac8a12880412da3551a8cb5a187d3298a72802b45a3bd1805e204ad8439"}, + {file = "contourpy-1.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:a67259c2b493b00e5a4d0f7bfae51fb4b3371395e47d079a4446e9b0f4d70e76"}, + {file = "contourpy-1.1.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2b836d22bd2c7bb2700348e4521b25e077255ebb6ab68e351ab5aa91ca27e027"}, + {file = "contourpy-1.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084eaa568400cfaf7179b847ac871582199b1b44d5699198e9602ecbbb5f6104"}, + {file = "contourpy-1.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:911ff4fd53e26b019f898f32db0d4956c9d227d51338fb3b03ec72ff0084ee5f"}, + {file = "contourpy-1.1.0.tar.gz", hash = "sha256:e53046c3863828d21d531cc3b53786e6580eb1ba02477e8681009b6aa0870b21"}, +] + +[package.dependencies] +numpy = ">=1.16" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.2.0)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "wurlitzer"] + [[package]] name = "contourpy" version = "1.1.1" @@ -5636,6 +5698,48 @@ dev = ["click", "doit (>=0.36.0)", "flake8", "mypy", "pycodestyle", "pydevtool", doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +[[package]] +name = "scipy" +version = "1.13.1" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, + {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, + {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, + {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, + {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, + {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, + {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, + {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, + {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, + {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, + {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<2.3" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + [[package]] name = "seaborn" version = "0.12.2" @@ -7070,5 +7174,5 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" -python-versions = ">=3.8.1,<3.12" -content-hash = "2a37109db34ea85621294cef66e418855e749d257d1d7f4492a1b6cf8dddb390" +python-versions = ">=3.8.1,<3.13" +content-hash = "6a4f865736307a8a10c08150be422155de8cb80c3ff352e2736922e01932a981" diff --git a/pyproject.toml b/pyproject.toml index 2dfb83baf..3b3ab646b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,7 +33,7 @@ readme = "README.md" [tool.poetry.dependencies] # Investigate if it is better to fix specific versions or use lower and upper bounds # FIXME: https://github.com/zama-ai/concrete-ml-internal/issues/2665 -python = ">=3.8.1,<3.12" +python = ">=3.8.1,<3.13" # Based on the following link, explicitly indicating the source makes poetry only look for that # source, so we should only use this for Concrete Python's non-public releases # https://python-poetry.org/docs/1.7/repositories#project-configuration @@ -57,7 +57,10 @@ onnxoptimizer = "0.3.13" onnxruntime = "1.18" hummingbird-ml = {version="0.4.11", extras = ["onnx"]} scikit-learn = "1.1.3" -scipy = "1.10.1" +scipy = [ + {version = "1.10.1", python = "3.8"}, + {version = ">=1.10.1", python = ">3.8"} + ] numpy = "1.23.5" protobuf = "3.20.3" pandas = "2.0.3" diff --git a/script/actions_utils/generate_test_matrix.py b/script/actions_utils/generate_test_matrix.py index 9810c91b7..53a6f5d55 100644 --- a/script/actions_utils/generate_test_matrix.py +++ b/script/actions_utils/generate_test_matrix.py @@ -22,6 +22,7 @@ class PythonVersion(enum.Enum): V_3_9 = "3.9" V_3_10 = "3.10" V_3_11 = "3.11" + V_3_12 = "3.12" class OS(enum.Enum): diff --git a/script/make_utils/check_installation_with_all_python.sh b/script/make_utils/check_installation_with_all_python.sh index 8aca76dfe..b20ab6ca3 100755 --- a/script/make_utils/check_installation_with_all_python.sh +++ b/script/make_utils/check_installation_with_all_python.sh @@ -25,7 +25,7 @@ do ;; "--all" ) - VERSION_LIST="3.8 3.9 3.10 3.11" + VERSION_LIST="3.8 3.9 3.10 3.11 3.12" ;; "--version" ) @@ -44,7 +44,7 @@ done if [ "${VERSION_LIST}" == "" ] then - VERSION_LIST="3.8 3.9 3.10 3.11" + VERSION_LIST="3.8 3.9 3.10 3.11 3.12" fi for VERSION in $VERSION_LIST diff --git a/script/make_utils/licenses.sh b/script/make_utils/licenses.sh index a334cbe8a..53e5c596b 100755 --- a/script/make_utils/licenses.sh +++ b/script/make_utils/licenses.sh @@ -98,6 +98,8 @@ then IS_CORRECT_PYTHON=1 elif [[ "${CHECK_VERSION}" == *"3.11"* ]]; then IS_CORRECT_PYTHON=1 + elif [[ "${CHECK_VERSION}" == *"3.12"* ]]; then + IS_CORRECT_PYTHON=1 fi if [ $IS_CORRECT_PYTHON -eq 0 ]