Skip to content

Commit a0d9efd

Browse files
Merge branch 'main' into SNOW-2235955-adding-mfa-tests-in-python
2 parents bd23f09 + 1190042 commit a0d9efd

File tree

79 files changed

+4946
-736
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+4946
-736
lines changed

.github/workflows/build_test.yml

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,22 @@ jobs:
7979
id: manylinux_aarch64
8080
- image: windows-latest
8181
id: win_amd64
82+
- image: windows-11-arm
83+
id: win_arm64
8284
- image: macos-latest
8385
id: macosx_x86_64
8486
- image: macos-latest
8587
id: macosx_arm64
8688
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
89+
exclude:
90+
- os:
91+
image: windows-11-arm
92+
id: win_arm64
93+
python-version: "3.9"
94+
- os:
95+
image: windows-11-arm
96+
id: win_arm64
97+
python-version: "3.10"
8798
name: Build ${{ matrix.os.id }}-py${{ matrix.python-version }}
8899
runs-on: ${{ matrix.os.image }}
89100
steps:
@@ -105,6 +116,7 @@ jobs:
105116
uses: pypa/[email protected]
106117
env:
107118
CIBW_BUILD: cp${{ env.shortver }}-${{ matrix.os.id }}
119+
CIBW_ARCHS_WINDOWS: ${{ matrix.os.id == 'win_arm64' && 'ARM64' || 'auto' }}
108120
MACOSX_DEPLOYMENT_TARGET: 10.14 # Should be kept in sync with ci/build_darwin.sh
109121
with:
110122
output-dir: dist
@@ -131,8 +143,19 @@ jobs:
131143
download_name: macosx_x86_64
132144
- image_name: windows-latest
133145
download_name: win_amd64
146+
- image_name: windows-11-arm
147+
download_name: win_arm64
134148
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
135149
cloud-provider: [aws, azure, gcp]
150+
exclude:
151+
- os:
152+
image_name: windows-11-arm
153+
download_name: win_arm64
154+
python-version: "3.9"
155+
- os:
156+
image_name: windows-11-arm
157+
download_name: win_arm64
158+
python-version: "3.10"
136159

137160
steps:
138161
- uses: actions/checkout@v4
@@ -145,7 +168,7 @@ jobs:
145168
- name: Set up Java
146169
uses: actions/setup-java@v4 # for wiremock
147170
with:
148-
java-version: 11
171+
java-version: ${{ matrix.os.download_name == 'win_arm64' && '21.0.5+11.0.LTS' || '11' }}
149172
distribution: 'temurin'
150173
java-package: 'jre'
151174
- name: Fetch Wiremock
Binary file not shown.

.pre-commit-config.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,19 @@ repos:
4747
hooks:
4848
- id: pyupgrade
4949
args: [--py38-plus]
50+
- repo: local
51+
hooks:
52+
- id: check-no-native-http
53+
name: Check for native HTTP calls
54+
entry: python ci/pre-commit/check_no_native_http.py
55+
language: system
56+
files: ^src/snowflake/connector/.*\.py$
57+
exclude: |
58+
(?x)^(
59+
src/snowflake/connector/session_manager\.py|
60+
src/snowflake/connector/vendored/.*
61+
)$
62+
args: [--show-fixes]
5063
- repo: https://github.com/PyCQA/flake8
5164
rev: 7.1.1
5265
hooks:

DESCRIPTION.md

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,32 @@ https://docs.snowflake.com/
77
Source code is also available at: https://github.com/snowflakedb/snowflake-connector-python
88

99
# Release Notes
10-
- v3.16.1(TBD)
11-
- Added new authentication methods support for Workload Identity Federation (WIF).
12-
- Added the `WORKLOAD_IDENTITY` value for authenticator type.
13-
- Added the `workload_identity_provider` and `workload_identity_entra_resource` parameters.
14-
- Added in-band OCSP exception telemetry.
15-
- Added `APPLICATION_PATH` within `CLIENT_ENVIRONMENT` to distinguish between multiple scripts using the PythonConnector in the same environment.
16-
- Disabled token caching for OAuth Client Credentials authentication
10+
- v3.17.1(August 17,2025)
11+
- Added `infer_schema` parameter to `write_pandas` to perform schema inference on the passed data.
12+
- Namespace `snowlake` reverted back to non-module.
13+
14+
- v3.17.0(August 16,2025)
1715
- Added in-band HTTP exception telemetry.
18-
- Fixed a bug where timezoned timestamps fetched as pandas.DataFrame or pyarrow.Table would overflow for the sake of unnecessary precision. In the case where an overflow cannot be prevented a clear error will be raised now.
19-
- Fix OAuth authenticator values.
20-
- Add `unsafe_skip_file_permissions_check` flag to skip file permissions check on cache and config.
21-
- Introduce snowflake_version property to the connection
22-
- Added basic json support for Interval types.
16+
- Added an `unsafe_skip_file_permissions_check` flag to skip file permission checks on the cache and configuration.
17+
- Added `APPLICATION_PATH` within `CLIENT_ENVIRONMENT` to distinguish between multiple scripts using the Python Connector in the same environment.
18+
- Added basic JSON support for Interval types.
19+
- Added in-band OCSP exception telemetry.
20+
- Added support for new authentication methods with Workload Identity Federation (WIF).
21+
- Added the `WORKLOAD_IDENTITY` value for the authenticator type.
22+
- Added the `workload_identity_provider` and `workload_identity_entra_resource` parameters.
23+
- Added support for the `use_vectorized_scanner` parameter in the write_pandas function.
24+
- Added support of proxy setup using connection parameters without emitting environment variables.
25+
- Added populating of `type_code` in `ResultMetadata` for interval types.
26+
- Introduced the `snowflake_version` property to the connection.
2327
- Moved `OAUTH_TYPE` to `CLIENT_ENVIROMENT`.
24-
- Fix bug where PAT with external session authenticator was used while `external_session_id` was not provided in `SnowflakeRestful.fetch`
25-
- Added support for parameter `use_vectorized_scanner` in function `write_pandas`.
28+
- Relaxed the `pyarrow` version constrain; versions >= 19 can now be used.
29+
- Disabled token caching for OAuth Client Credentials authentication.
30+
- Fixed OAuth authenticator values.
31+
- Fixed a bug where a PAT with an external session authenticator was used while `external_session_id` was not provided in `SnowflakeRestful.fetch`.
32+
- Fixed the case-sensitivity of `Oauth` and `programmatic_access_token` authenticator values.
33+
- Fixed unclear error messages for incorrect `authenticator` values.
34+
- Fixed GCS staging by ensuring the endpoint has a scheme.
35+
- Fixed a bug where time-zoned timestamps fetched as a `pandas.DataFrame` or `pyarrow.Table` would overflow due to unnecessary precision. A clear error will now be raised if an overflow cannot be prevented.
2636

2737
- v3.16.0(July 04,2025)
2838
- Bumped numpy dependency from <2.1.0 to <=2.2.4.

ci/build_windows.bat

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,18 @@ EXIT /B %ERRORLEVEL%
3636
set pv=%~1
3737

3838
echo Going to compile wheel for Python %pv%
39-
py -%pv% -m pip install --upgrade pip setuptools wheel build
39+
py -%pv% -m pip install --upgrade pip setuptools wheel build delvewheel
4040
if %errorlevel% neq 0 goto :error
4141

42-
py -%pv% -m build --wheel .
42+
py -%pv% -m build --outdir dist\rawwheel --wheel .
4343
if %errorlevel% neq 0 goto :error
4444

45+
:: patch the wheel by including its dependencies
46+
py -%pv% -m delvewheel repair -vv -w dist --namespace-pkg snowflake dist\rawwheel\*
47+
if %errorlevel% neq 0 goto :error
48+
49+
rd /s /q dist\rawwheel
50+
4551
EXIT /B 0
4652

4753
:error

0 commit comments

Comments
 (0)