Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SNOW-1763673 Python 3.13 support #2105

Open
wants to merge 57 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 48 commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
195908a
deprecate python 3.8
sfc-gh-mkeller Nov 11, 2024
859db24
adding Python 3.13 builds
sfc-gh-mkeller Nov 13, 2024
0f3e6a4
pre-commit autoupdate
sfc-gh-mkeller Nov 13, 2024
8db96c5
fixing all files with pre-commit
sfc-gh-mkeller Nov 13, 2024
a707ef4
bump cibuildwheel used
sfc-gh-mkeller Nov 13, 2024
40e555d
changelog entry
sfc-gh-mkeller Nov 13, 2024
01384a6
update numpy.nan usage
sfc-gh-mkeller Nov 13, 2024
92ee331
fix olddriver tests
sfc-gh-mkeller Nov 14, 2024
7390bd9
update windows image used for builds and tests
sfc-gh-mkeller Nov 14, 2024
fb4b1a8
use already built wheels
sfc-gh-mkeller Nov 18, 2024
c0c1df2
pre-commit fixes
sfc-gh-mkeller Jan 29, 2025
1ea64c6
bump numpy to <2.1.0
sfc-gh-mkeller Jan 29, 2025
a5fd0dc
adding Python 3.13 Dockerfile
sfc-gh-mkeller Jan 29, 2025
580db9d
fix numpy issues
sfc-gh-mkeller Feb 5, 2025
e1faded
SNOW-1763673: Merged main
sfc-gh-fpawlowski Mar 4, 2025
0536a8e
Merge branch 'main' into mkeller/SNOW-1763673/python3.13-support
sfc-gh-fpawlowski Mar 5, 2025
bdc2956
SNOW-1763673: Added running python 313 tests on Jenkins and depricate…
sfc-gh-fpawlowski Mar 5, 2025
ffdf66b
Merge remote-tracking branch 'origin/mkeller/SNOW-1763673/python3.13-…
sfc-gh-fpawlowski Mar 5, 2025
fffc947
Merge branch 'main' into mkeller/SNOW-1763673/python3.13-support
sfc-gh-fpawlowski Mar 11, 2025
e8655b8
SNOW-1763673: Added python 313 to tox dependencies
sfc-gh-fpawlowski Mar 11, 2025
c8a5aab
Merge remote-tracking branch 'origin/mkeller/SNOW-1763673/python3.13-…
sfc-gh-fpawlowski Mar 11, 2025
f37ad7e
SNOW-1763673: Reverted path env settinh
sfc-gh-fpawlowski Mar 11, 2025
1d3e227
Merge branch 'main' into mkeller/SNOW-1763673/python3.13-support
sfc-gh-fpawlowski Mar 17, 2025
15527f7
SNOW-1763673: Fixed failing old test with ubuntu downgrade
sfc-gh-fpawlowski Mar 17, 2025
b843cbb
SNOW-1763673: Fixed fips dockerfile to include the new python version…
sfc-gh-fpawlowski Mar 17, 2025
a3876d8
Merge branch 'main' into mkeller/SNOW-1763673/python3.13-support
sfc-gh-fpawlowski Mar 17, 2025
8651faa
Merge branch 'main' into mkeller/SNOW-1763673/python3.13-support
sfc-gh-fpawlowski Mar 18, 2025
b8fa4ad
SNOW-1763673: Hardcoded list of versions of python supported fixed in…
sfc-gh-fpawlowski Mar 18, 2025
6132c8b
SNOW-1763673: Build darwin cleanup
sfc-gh-fpawlowski Mar 18, 2025
f5aea74
SNOW-1763673: Added Jenkins builds
sfc-gh-fpawlowski Mar 18, 2025
985108d
SNOW-1763673: Added Jenkins builds
sfc-gh-fpawlowski Mar 18, 2025
13dd00c
SNOW-1763673: Added Jenkins builds
sfc-gh-fpawlowski Mar 18, 2025
86c839c
SNOW-1763673: Removed installpkg dist/*.whl to run tox tests command …
sfc-gh-fpawlowski Mar 18, 2025
66cbee6
SNOW-1763673: Upgraded windows image version to make it capable of co…
sfc-gh-fpawlowski Mar 18, 2025
19787f1
Merge branch 'main' into mkeller/SNOW-1763673/python3.13-support
sfc-gh-fpawlowski Mar 18, 2025
d2afbf3
SNOW-1763673: Dockerfile moved forward to allow building numpy for 3.13
sfc-gh-fpawlowski Mar 19, 2025
14f4c22
SNOW-1763673: Dockerfile tools added to allow building numpy for 3.13
sfc-gh-fpawlowski Mar 25, 2025
573f975
Merge branch 'main' into mkeller/SNOW-1763673/python3.13-support
sfc-gh-fpawlowski Mar 25, 2025
f1f61b2
SNOW-1763673: Dockerfile tools added to allow building numpy for 3.13
sfc-gh-fpawlowski Mar 25, 2025
0aa1c03
SNOW-1763673: Printing logs of fail
sfc-gh-fpawlowski Mar 26, 2025
f992afe
SNOW-1763673: Printing logs of fail
sfc-gh-fpawlowski Mar 26, 2025
6bf6074
SNOW-1763673: Dockerfile tools added to allow building numpy for 3.13
sfc-gh-fpawlowski Mar 26, 2025
a5872d1
SNOW-1763673: Dockerfile tools added to allow building numpy for 3.13
sfc-gh-fpawlowski Mar 26, 2025
2800609
SNOW-1763673: rust added cargo
sfc-gh-fpawlowski Mar 26, 2025
a132aab
SNOW-1763673: Cleaned up and added release notes
sfc-gh-fpawlowski Mar 26, 2025
33bd968
Merge branch 'refs/heads/main' into mkeller/SNOW-1763673/python3.13-s…
sfc-gh-fpawlowski Mar 26, 2025
9206d01
SNOW-1763673: Excluded windows builds fo 3.13
sfc-gh-fpawlowski Mar 26, 2025
3382f9f
SNOW-1763673: Jenkins Dockerfile fixed with cargo
sfc-gh-fpawlowski Mar 26, 2025
6119990
SNOW-1763673: Jenkins file update to use 3.9 for olddriver
sfc-gh-fpawlowski Mar 26, 2025
c445b8d
SNOW-1763673: Removed manual PATH setting in Dockerfiles
sfc-gh-fpawlowski Mar 26, 2025
0a07154
Merge branch 'main' into mkeller/SNOW-1763673/python3.13-support
sfc-gh-fpawlowski Mar 27, 2025
1f3e436
SNOW-1763673: Removed unnecessary changes
sfc-gh-fpawlowski Mar 27, 2025
605ffc7
SNOW-1763673: Reverted numpy NAN change
sfc-gh-fpawlowski Mar 27, 2025
2a5ecc4
Merge branch 'main' into mkeller/SNOW-1763673/python3.13-support
sfc-gh-fpawlowski Mar 27, 2025
d0c85ac
SNOW-1763673: Reverted nanoarrow
sfc-gh-fpawlowski Mar 27, 2025
fe335a7
SNOW-1763673: Reverted nanoarrow reversion
sfc-gh-fpawlowski Mar 27, 2025
892c036
SNOW-1763673: Added numpy bool_ type hint
sfc-gh-fpawlowski Mar 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 27 additions & 16 deletions .github/workflows/build_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.8'
python-version: '3.9'
- name: Display Python version
run: python -c "import sys; import os; print(\"\n\".join(os.environ[\"PATH\"].split(os.pathsep))); print(sys.version); print(sys.executable);"
- name: Upgrade setuptools, pip and wheel
Expand All @@ -54,7 +54,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand All @@ -77,13 +77,13 @@ jobs:
id: manylinux_x86_64
- image: ubuntu-latest
id: manylinux_aarch64
- image: windows-2019
- image: windows-latest
id: win_amd64
- image: macos-latest
id: macosx_x86_64
- image: macos-latest
id: macosx_arm64
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
name: Build ${{ matrix.os.id }}-py${{ matrix.python-version }}
runs-on: ${{ matrix.os.image }}
steps:
Expand All @@ -102,7 +102,7 @@ jobs:
platforms: all
- uses: actions/checkout@v4
- name: Building wheel
uses: pypa/cibuildwheel@v2.16.5
uses: pypa/cibuildwheel@v2.21.3
env:
CIBW_BUILD: cp${{ env.shortver }}-${{ matrix.os.id }}
MACOSX_DEPLOYMENT_TARGET: 10.14 # Should be kept in sync with ci/build_darwin.sh
Expand All @@ -129,10 +129,19 @@ jobs:
download_name: manylinux_x86_64
- image_name: macos-latest
download_name: macosx_x86_64
- image_name: windows-2019
- image_name: windows-latest
download_name: win_amd64
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
cloud-provider: [aws, azure, gcp]
# TODO: When there are prebuilt wheels accessible for our dependencies (i.e. numpy)
# for Python 3.13 windows runs can be re-enabled. Currently, according to numpy:
# "Numpy built with MINGW-W64 on Windows 64 bits is experimental, and only available for
# testing. You are advised not to use it for production."
exclude:
- os:
image_name: windows-latest
download_name: win_amd64
python-version: "3.13"
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand Down Expand Up @@ -196,9 +205,11 @@ jobs:
fail-fast: false
matrix:
os:
- image_name: ubuntu-latest
# Because old the version 3.0.2 of snowflake-connector-python depends on oscrypto which causes conflicts with higher versions of libssl
# TODO: It can be changed to ubuntu-latest, when python sf connector version in tox is above 3.4.0
- image_name: ubuntu-20.04
download_name: linux
python-version: [3.8]
python-version: [3.9]
cloud-provider: [aws]
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -237,7 +248,7 @@ jobs:
os:
- image_name: ubuntu-latest
download_name: linux
python-version: [3.8]
python-version: [3.9]
cloud-provider: [aws]
steps:
- uses: actions/checkout@v4
Expand All @@ -260,7 +271,7 @@ jobs:
shell: bash

test-fips:
name: Test FIPS linux-3.8-${{ matrix.cloud-provider }}
name: Test FIPS linux-3.9-${{ matrix.cloud-provider }}
needs: build
runs-on: ubuntu-latest
strategy:
Expand All @@ -279,23 +290,23 @@ jobs:
- name: Download wheel(s)
uses: actions/download-artifact@v4
with:
name: manylinux_x86_64_py3.8
name: manylinux_x86_64_py3.9
path: dist
- name: Show wheels downloaded
run: ls -lh dist
shell: bash
- name: Run tests
run: ./ci/test_fips_docker.sh
env:
PYTHON_VERSION: 3.8
PYTHON_VERSION: 3.9
cloud_provider: ${{ matrix.cloud-provider }}
PYTEST_ADDOPTS: --color=yes --tb=short
TOX_PARALLEL_NO_SPINNER: 1
shell: bash
- uses: actions/upload-artifact@v4
with:
include-hidden-files: true
name: coverage_linux-fips-3.8-${{ matrix.cloud-provider }}
name: coverage_linux-fips-3.9-${{ matrix.cloud-provider }}
path: |
.coverage
coverage.xml
Expand All @@ -307,7 +318,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
cloud-provider: [aws]
steps:
- name: Set shortver
Expand Down Expand Up @@ -360,7 +371,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.8'
python-version: '3.9'
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Upgrade setuptools and pip
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/create_req_files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v3
- name: Set up Python
Expand Down
14 changes: 7 additions & 7 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ repos:
- id: check-hooks-apply
- id: check-useless-excludes
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
rev: v5.0.0
hooks:
- id: trailing-whitespace
exclude: >
Expand All @@ -28,7 +28,7 @@ repos:
hooks:
- id: yesqa
- repo: https://github.com/mgedmin/check-manifest
rev: "0.49"
rev: "0.50"
hooks:
- id: check-manifest
- repo: https://github.com/PyCQA/isort
Expand All @@ -43,18 +43,18 @@ repos:
- --append-only
files: ^src/snowflake/connector/.*\.py$
- repo: https://github.com/asottile/pyupgrade
rev: v3.15.2
rev: v3.19.0
hooks:
- id: pyupgrade
args: [--py38-plus]
- repo: https://github.com/PyCQA/flake8
rev: 7.0.0
rev: 7.1.1
hooks:
- id: flake8
additional_dependencies:
- flake8-bugbear
- repo: https://github.com/pre-commit/mirrors-mypy
rev: 'v1.10.0'
rev: 'v1.13.0'
hooks:
- id: mypy
files: |
Expand Down Expand Up @@ -87,14 +87,14 @@ repos:
- types-pyOpenSSL
- types-setuptools
- repo: https://github.com/psf/black
rev: 24.4.2
rev: 24.10.0
hooks:
- id: black
args:
- --safe
language_version: python3
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v17.0.6
rev: v19.1.3
hooks:
- id: clang-format
types_or: [c++, c]
Expand Down
3 changes: 3 additions & 0 deletions DESCRIPTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ Source code is also available at: https://github.com/snowflakedb/snowflake-conne

# Release Notes
- v3.14.1(TBD)
- Added support for Python 3.13.
- NOTE: Windows 64 support is still experimental and should not yet be used for production environments.
- Dropped support for Python 3.8.
- Basic decimal floating-point type support.
- Added handling of PAT provided in `password` field.

Expand Down
4 changes: 3 additions & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,13 @@ timestamps {
println("Exception computing commit hash from: ${response}")
}
parallel (
'Test Python 38': { build job: 'RT-PyConnector38-PC',parameters: params},
'Test Python 39': { build job: 'RT-PyConnector39-PC',parameters: params},
'Test Python 310': { build job: 'RT-PyConnector310-PC',parameters: params},
'Test Python 311': { build job: 'RT-PyConnector311-PC',parameters: params},
'Test Python 312': { build job: 'RT-PyConnector312-PC',parameters: params},
'Test Python 313': { build job: 'RT-PyConnector313-PC',parameters: params},
'Test Python 38 OldDriver': { build job: 'RT-PyConnector38-OldDriver-PC',parameters: params},
'Test Python 38 FIPS': { build job: 'RT-FIPS-PyConnector38',parameters: params},
)
}
}
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ using the Snowflake JDBC or ODBC drivers.

The connector has **no** dependencies on JDBC or ODBC.
It can be installed using ``pip`` on Linux, Mac OSX, and Windows platforms
where Python 3.8.0 (or higher) is installed.
where Python 3.9.0 (or higher) is installed.

Snowflake Documentation is available at:
https://docs.snowflake.com/
Expand All @@ -27,7 +27,7 @@ https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowfl

### Locally

Install Python 3.8.0 or higher. Clone the Snowflake Connector for Python repository, then run the following commands
Install a supported Python version. Clone the Snowflake Connector for Python repository, then run the following commands
to create a wheel package using PEP-517 build:

```shell
Expand All @@ -42,7 +42,7 @@ Find the `snowflake_connector_python*.whl` package in the `./dist` directory.
### In Docker
Or use our Dockerized build script `ci/build_docker.sh` and find the built wheel files in `dist/repaired_wheels`.

Note: `ci/build_docker.sh` can be used to compile only certain versions, like this: `ci/build_docker.sh "3.8 3.9"`
Note: `ci/build_docker.sh` can be used to compile only certain versions, like this: `ci/build_docker.sh "3.9 3.10"`

## Code hygiene and other utilities
These tools are integrated into `tox` to allow us to easily set them up universally on any computer.
Expand Down
9 changes: 2 additions & 7 deletions ci/build_darwin.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,8 @@
#
# Build Snowflake Python Connector on Mac
# NOTES:
# - To compile only a specific version(s) pass in versions like: `./build_darwin.sh "3.8 3.9"`
arch=$(uname -m)
if [[ "$arch" == "arm64" ]]; then
PYTHON_VERSIONS="${1:-3.8 3.9 3.10 3.11 3.12}"
else
PYTHON_VERSIONS="${1:-3.8 3.9 3.10 3.11 3.12}"
fi
# - To compile only a specific version(s) pass in versions like: `./build_darwin.sh "3.9 3.10"`
PYTHON_VERSIONS="${1:-3.9 3.10 3.11 3.12 3.13}"

THIS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CONNECTOR_DIR="$(dirname "${THIS_DIR}")"
Expand Down
2 changes: 1 addition & 1 deletion ci/build_docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#
# Build Snowflake Python Connector in Docker
# NOTES:
# - To compile only a specific version(s) pass in versions like: `./build_docker.sh "3.8 3.9"`
# - To compile only a specific version(s) pass in versions like: `./build_docker.sh "3.9 3.10"`
set -o pipefail

THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
Expand Down
4 changes: 2 additions & 2 deletions ci/build_linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
# Build Snowflake Python Connector on Linux
# NOTES:
# - This is designed to ONLY be called in our build docker image
# - To compile only a specific version(s) pass in versions like: `./build_linux.sh "3.8 3.9"`
# - To compile only a specific version(s) pass in versions like: `./build_linux.sh "3.9 3.10"`
set -o pipefail

U_WIDTH=16
PYTHON_VERSIONS="${1:-3.8 3.9 3.10 3.11 3.12}"
PYTHON_VERSIONS="${1:-3.9 3.10 3.11 3.12 3.13}"
THIS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CONNECTOR_DIR="$(dirname "${THIS_DIR}")"
DIST_DIR="${CONNECTOR_DIR}/dist"
Expand Down
4 changes: 2 additions & 2 deletions ci/build_windows.bat
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
SET SCRIPT_DIR=%~dp0
SET CONNECTOR_DIR=%~dp0\..\

set python_versions= 3.8 3.9 3.10 3.11 3.12
set python_versions= 3.9 3.10 3.11 3.12 3.13

cd %CONNECTOR_DIR%

set venv_dir=%WORKSPACE%\venv-flake8
if %errorlevel% neq 0 goto :error

py -3.8 -m venv %venv_dir%
py -3.9 -m venv %venv_dir%
if %errorlevel% neq 0 goto :error

call %venv_dir%\scripts\activate
Expand Down
2 changes: 1 addition & 1 deletion ci/docker/connector_build/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ WORKDIR /home/user
RUN chmod 777 /home/user
RUN git clone https://github.com/matthew-brett/multibuild.git && cd /home/user/multibuild && git checkout bfc6d8b82d8c37b8ca1e386081fd800e81c6ab4a

ENV PATH="${PATH}:/opt/python/cp37-cp37m/bin:/opt/python/cp38-cp38/bin:/opt/python/cp39-cp39/bin:/opt/python/cp310-cp310/bin:/opt/python/cp311-cp311/bin:/opt/python/cp312-cp312/bin"
ENV PATH="${PATH}:/opt/python/cp37-cp37m/bin:/opt/python/cp38-cp38/bin:/opt/python/cp39-cp39/bin:/opt/python/cp310-cp310/bin:/opt/python/cp311-cp311/bin:/opt/python/cp312-cp312/bin:/opt/python/cp313-cp313/bin"

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
6 changes: 5 additions & 1 deletion ci/docker/connector_test/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ FROM $BASE_IMAGE

RUN yum install -y java-11-openjdk

# TODO: When there are prebuilt wheels accessible for our dependencies (i.e. numpy)
# for Python 3.13 this rust cargo install command can be removed.
RUN yum -y install rust cargo

# This is to solve permission issue, read https://denibertovic.com/posts/handling-permissions-with-docker-volumes/
ARG GOSU_URL=https://github.com/tianon/gosu/releases/download/1.14/gosu-amd64
ENV GOSU_PATH $GOSU_URL
Expand All @@ -14,6 +18,6 @@ RUN chmod +x /usr/local/bin/entrypoint.sh

WORKDIR /home/user
RUN chmod 777 /home/user
ENV PATH="${PATH}:/opt/python/cp37-cp37m/bin:/opt/python/cp38-cp38/bin/:/opt/python/cp39-cp39/bin/:/opt/python/cp310-cp310/bin/:/opt/python/cp311-cp311/bin/:/opt/python/cp312-cp312/bin/"
ENV PATH="${PATH}:/opt/python/cp37-cp37m/bin:/opt/python/cp38-cp38/bin:/opt/python/cp39-cp39/bin:/opt/python/cp310-cp310/bin:/opt/python/cp311-cp311/bin:/opt/python/cp312-cp312/bin:/opt/python/cp313-cp313/bin"

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
2 changes: 1 addition & 1 deletion ci/docker/connector_test_fips/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ RUN sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo && \

RUN yum clean all && \
yum install -y redhat-rpm-config gcc libffi-devel openssl openssl-devel && \
yum install -y python38 python38-devel && \
yum install -y python39 python39-devel && \
yum install -y java-11-openjdk && \
yum clean all && \
rm -rf /var/cache/yum
Expand Down
29 changes: 29 additions & 0 deletions ci/docker/connector_test_lambda/Dockerfile313
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
FROM public.ecr.aws/lambda/python:3.13-x86_64

WORKDIR /home/user/snowflake-connector-python

# TODO: When there are prebuilt wheels accessible for our dependencies (i.e. numpy)
# for Python 3.13 all dnf ... commands installing building kits can be removed.

# Install necessary packages and compilers - we need to build numpy for newer version
# Update dnf and install development tools
RUN dnf -y update && \
dnf -y install \
gcc \
gcc-c++ \
make \
python3-devel \
openblas-devel \
lapack-devel && \
dnf clean all
RUN dnf -y install rust cargo
RUN dnf -y upgrade


RUN chmod 777 /home/user/snowflake-connector-python
ENV PATH="${PATH}:/opt/python/cp313-cp313/bin/"
ENV PYTHONPATH="${PYTHONPATH}:/home/user/snowflake-connector-python/ci/docker/connector_test_lambda/"

RUN pip3 install -U pip setuptools wheel tox>=4

CMD [ "app.handler" ]
12 changes: 0 additions & 12 deletions ci/docker/connector_test_lambda/Dockerfile38

This file was deleted.

Loading
Loading