Skip to content

Commit 7bc6acd

Browse files
Merge branch 'main' into helmeleegy-SNOW-1842841
2 parents 57f828a + 4d29402 commit 7bc6acd

File tree

701 files changed

+2469
-1261
lines changed

Some content is hidden

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

701 files changed

+2469
-1261
lines changed

.github/workflows/daily_precommit.yml

Lines changed: 34 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ jobs:
9898
download_name: macos
9999
- image_name: windows-latest-64-cores
100100
download_name: windows
101-
python-version: ["3.8", "3.9", "3.10", "3.11"]
101+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
102102
cloud-provider: [aws, azure, gcp]
103103
steps:
104104
- name: Checkout Code
@@ -145,14 +145,25 @@ jobs:
145145
# Specify SNOWFLAKE_IS_PYTHON_RUNTIME_TEST: 1 when adding >= python3.12 with no server-side support
146146
# For example, see https://github.com/snowflakedb/snowpark-python/pull/681
147147
shell: bash
148-
- name: Run tests (excluding doctests)
148+
- if: ${{ matrix.python-version != '3.12' }}
149+
name: Run tests (excluding doctests)
149150
run: python -m tox -e "py${PYTHON_VERSION/\./}-dailynotdoctest-ci"
150151
env:
151152
PYTHON_VERSION: ${{ matrix.python-version }}
152153
cloud_provider: ${{ matrix.cloud-provider }}
153154
PYTEST_ADDOPTS: --color=yes --tb=short
154155
TOX_PARALLEL_NO_SPINNER: 1
155156
shell: bash
157+
- if: ${{ matrix.python-version == '3.12' }}
158+
name: Run tests (excluding doctests and udf tests)
159+
run: python -m tox -e "py${PYTHON_VERSION/\./}-dailynotdoctestnotudf-ci"
160+
env:
161+
PYTHON_VERSION: ${{ matrix.python-version }}
162+
cloud_provider: ${{ matrix.cloud-provider }}
163+
PYTEST_ADDOPTS: --color=yes --tb=short
164+
TOX_PARALLEL_NO_SPINNER: 1
165+
SNOWFLAKE_IS_PYTHON_RUNTIME_TEST: 1
166+
shell: bash
156167
- name: Combine coverages
157168
run: python -m tox -e coverage --skip-missing-interpreters false
158169
shell: bash
@@ -217,7 +228,7 @@ jobs:
217228
os:
218229
- image_name: macos-latest
219230
download_name: macos # it includes doctest
220-
python-version: ["3.8", "3.9", "3.10", "3.11"]
231+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
221232
cloud-provider: [aws]
222233
steps:
223234
- name: Checkout Code
@@ -258,14 +269,25 @@ jobs:
258269
PYTEST_ADDOPTS: --color=yes --tb=short --disable_sql_simplifier
259270
TOX_PARALLEL_NO_SPINNER: 1
260271
shell: bash
261-
- name: Run tests (excluding doctests)
272+
- if: ${{ matrix.python-version != '3.12' }}
273+
name: Run tests (excluding doctests)
262274
run: python -m tox -e "py${PYTHON_VERSION/\./}-dailynotdoctest-ci"
263275
env:
264276
PYTHON_VERSION: ${{ matrix.python-version }}
265277
cloud_provider: ${{ matrix.cloud-provider }}
266278
PYTEST_ADDOPTS: --color=yes --tb=short --disable_sql_simplifier
267279
TOX_PARALLEL_NO_SPINNER: 1
268280
shell: bash
281+
- if: ${{ matrix.python-version == '3.12' }}
282+
name: Run tests (excluding doctests and udf tests)
283+
run: python -m tox -e "py${PYTHON_VERSION/\./}-dailynotdoctestnotudf-ci"
284+
env:
285+
PYTHON_VERSION: ${{ matrix.python-version }}
286+
cloud_provider: ${{ matrix.cloud-provider }}
287+
PYTEST_ADDOPTS: --color=yes --tb=short --disable_sql_simplifier
288+
TOX_PARALLEL_NO_SPINNER: 1
289+
SNOWFLAKE_IS_PYTHON_RUNTIME_TEST: 1
290+
shell: bash
269291
- name: Combine coverages
270292
run: python -m tox -e coverage --skip-missing-interpreters false
271293
shell: bash
@@ -354,7 +376,7 @@ jobs:
354376
os:
355377
- image_name: macos-latest
356378
download_name: macos # it includes doctest
357-
python-version: ["3.8", "3.9", "3.10", "3.11"]
379+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
358380
cloud-provider: [aws]
359381
steps:
360382
- name: Checkout Code
@@ -484,7 +506,7 @@ jobs:
484506
os:
485507
- image_name: macos-latest
486508
download_name: macos # it includes doctest
487-
python-version: ["3.8", "3.9", "3.10", "3.11"]
509+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
488510
cloud-provider: [aws]
489511
steps:
490512
- name: Checkout Code
@@ -525,81 +547,21 @@ jobs:
525547
PYTEST_ADDOPTS: --color=yes --tb=short --disable_cte_optimization
526548
TOX_PARALLEL_NO_SPINNER: 1
527549
shell: bash
528-
- name: Run tests (excluding doctests)
550+
- if: ${{ matrix.python-version != '3.12' }}
551+
name: Run tests (excluding doctests)
529552
run: python -m tox -e "py${PYTHON_VERSION/\./}-dailynotdoctest-ci"
530553
env:
531554
PYTHON_VERSION: ${{ matrix.python-version }}
532555
cloud_provider: ${{ matrix.cloud-provider }}
533556
PYTEST_ADDOPTS: --color=yes --tb=short --disable_cte_optimization
534557
TOX_PARALLEL_NO_SPINNER: 1
535558
shell: bash
536-
- name: Combine coverages
537-
run: python -m tox -e coverage --skip-missing-interpreters false
538-
shell: bash
539-
env:
540-
SNOWFLAKE_IS_PYTHON_RUNTIME_TEST: 1
541-
- uses: actions/upload-artifact@v4
542-
with:
543-
include-hidden-files: true
544-
name: coverage_${{ matrix.os.download_name }}-${{ matrix.python-version }}-${{ matrix.cloud-provider }}-disable-cte-optimization
545-
path: |
546-
.tox/.coverage
547-
.tox/coverage.xml
548-
549-
test-snowpark-disable-multithreading-mode:
550-
name: Test Snowpark Multithreading Disabled py-${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.cloud-provider }}
551-
needs: build
552-
runs-on: ${{ matrix.os }}
553-
strategy:
554-
fail-fast: false
555-
matrix:
556-
os: [ubuntu-latest-64-cores]
557-
python-version: ["3.9"]
558-
cloud-provider: [aws]
559-
steps:
560-
- name: Checkout Code
561-
uses: actions/checkout@v4
562-
- name: Set up Python
563-
uses: actions/setup-python@v4
564-
with:
565-
python-version: ${{ matrix.python-version }}
566-
- name: Display Python version
567-
run: python -c "import sys; print(sys.version)"
568-
- name: Decrypt parameters.py
569-
shell: bash
570-
run: .github/scripts/decrypt_parameters.sh
571-
env:
572-
PARAMETER_PASSWORD: ${{ secrets.PARAMETER_PASSWORD }}
573-
CLOUD_PROVIDER: ${{ matrix.cloud-provider }}
574-
- name: Install protoc
575-
shell: bash
576-
run: .github/scripts/install_protoc.sh
577-
- name: Download wheel(s)
578-
uses: actions/download-artifact@v4
579-
with:
580-
name: wheel
581-
path: dist
582-
- name: Show wheels downloaded
583-
run: ls -lh dist
584-
shell: bash
585-
- name: Upgrade setuptools, pip and wheel
586-
run: python -m pip install -U setuptools pip wheel
587-
- name: Install tox
588-
run: python -m pip install tox
589-
- name: Run tests (excluding doctests)
590-
run: python -m tox -e "py${PYTHON_VERSION/\./}-notmultithreaded-ci"
591-
env:
592-
PYTHON_VERSION: ${{ matrix.python-version }}
593-
cloud_provider: ${{ matrix.cloud-provider }}
594-
PYTEST_ADDOPTS: --color=yes --tb=short
595-
TOX_PARALLEL_NO_SPINNER: 1
596-
shell: bash
597-
- name: Run local tests
598-
run: python -m tox -e "py${PYTHON_VERSION/\./}-localnotmultithreaded-ci"
559+
- if: ${{ matrix.python-version == '3.12' }}
560+
name: Run tests (excluding doctests and udf tests)
599561
env:
600562
PYTHON_VERSION: ${{ matrix.python-version }}
601563
cloud_provider: ${{ matrix.cloud-provider }}
602-
PYTEST_ADDOPTS: --color=yes --tb=short
564+
PYTEST_ADDOPTS: --color=yes --tb=short --disable_cte_optimization
603565
TOX_PARALLEL_NO_SPINNER: 1
604566
shell: bash
605567
- name: Combine coverages
@@ -610,7 +572,7 @@ jobs:
610572
- uses: actions/upload-artifact@v4
611573
with:
612574
include-hidden-files: true
613-
name: coverage_${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.cloud-provider }}-snowpark-multithreading
575+
name: coverage_${{ matrix.os.download_name }}-${{ matrix.python-version }}-${{ matrix.cloud-provider }}-disable-cte-optimization
614576
path: |
615577
.tox/.coverage
616578
.tox/coverage.xml

.github/workflows/precommit.yml

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ jobs:
9494
fail-fast: false
9595
matrix:
9696
os: [macos-latest, windows-latest-64-cores, ubuntu-latest-64-cores]
97-
python-version: ["3.9", "3.10", "3.11"]
97+
python-version: ["3.9", "3.10", "3.11", "3.12"]
9898
cloud-provider: [aws, gcp, azure]
9999
exclude:
100100
# only run macos with aws py3.9 for doctest
@@ -169,19 +169,19 @@ jobs:
169169
- name: Install tox
170170
run: python -m pip install tox
171171
# we only run doctest on macos
172-
- if: ${{ matrix.os == 'macos-latest' }}
172+
- if: ${{ matrix.os == 'macos-latest' && matrix.python-version != '3.12'}}
173173
name: Run doctests
174174
run: python -m tox -e "py${PYTHON_VERSION}-doctest-notudf-ci"
175175
env:
176176
PYTHON_VERSION: ${{ matrix.python-version }}
177177
cloud_provider: ${{ matrix.cloud-provider }}
178178
PYTEST_ADDOPTS: --color=yes --tb=short
179179
TOX_PARALLEL_NO_SPINNER: 1
180-
# Specify SNOWFLAKE_IS_PYTHON_RUNTIME_TEST: 1 when adding >= python3.12 with no server-side support
180+
# Specify SNOWFLAKE_IS_PYTHON_RUNTIME_TEST: 1 when adding >= python3.13 with no server-side support
181181
# For example, see https://github.com/snowflakedb/snowpark-python/pull/681
182182
shell: bash
183183
# do not run other tests for macos
184-
- if: ${{ matrix.os != 'macos-latest' }}
184+
- if: ${{ matrix.os != 'macos-latest' && matrix.python-version != '3.12' }}
185185
name: Run tests (excluding doctests)
186186
run: python -m tox -e "py${PYTHON_VERSION/\./}-notdoctest-ci"
187187
env:
@@ -190,6 +190,16 @@ jobs:
190190
PYTEST_ADDOPTS: --color=yes --tb=short
191191
TOX_PARALLEL_NO_SPINNER: 1
192192
shell: bash
193+
- if: ${{ matrix.python-version == '3.12' }}
194+
name: Run tests (excluding doctests and udf tests)
195+
run: python -m tox -e "py${PYTHON_VERSION/\./}-notudfdoctest-ci"
196+
env:
197+
PYTHON_VERSION: ${{ matrix.python-version }}
198+
cloud_provider: ${{ matrix.cloud-provider }}
199+
PYTEST_ADDOPTS: --color=yes --tb=short
200+
TOX_PARALLEL_NO_SPINNER: 1
201+
SNOWFLAKE_IS_PYTHON_RUNTIME_TEST: 1
202+
shell: bash
193203
- name: Combine coverages
194204
run: python -m tox -e coverage --skip-missing-interpreters false
195205
shell: bash
@@ -211,7 +221,7 @@ jobs:
211221
fail-fast: false
212222
matrix:
213223
os: [macos-latest, windows-latest, ubuntu-latest]
214-
python-version: [ "3.8", "3.9", "3.10", "3.11" ]
224+
python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ]
215225
cloud-provider: [aws]
216226
steps:
217227
- name: Checkout Code
@@ -402,7 +412,7 @@ jobs:
402412
fail-fast: false
403413
matrix:
404414
os: [ ubuntu-latest ]
405-
python-version: [ "3.9", "3.11" ]
415+
python-version: [ "3.9", "3.11", "3.12" ]
406416
cloud-provider: [ aws ]
407417
steps:
408418
- name: Checkout Code
@@ -434,14 +444,25 @@ jobs:
434444
run: python -m pip install -U setuptools pip wheel
435445
- name: Install tox
436446
run: python -m pip install tox
437-
- name: Run tests for AST (II/II)
447+
- if: ${{ matrix.python-version != '3.12' }}
448+
name: Run tests for AST (II/II)
438449
run: python -m tox -e "py${PYTHON_VERSION/\./}-notdoctest-ci"
439450
env:
440451
PYTHON_VERSION: ${{ matrix.python-version }}
441452
cloud_provider: ${{ matrix.cloud-provider }}
442453
PYTEST_ADDOPTS: --color=yes --tb=short --enable_ast
443454
TOX_PARALLEL_NO_SPINNER: 1
444455
shell: bash
456+
- if: ${{ matrix.python-version == '3.12' }}
457+
name: Run tests for AST (II/II) (excluding udf tests)
458+
run: python -m tox -e "py${PYTHON_VERSION/\./}-notudfdoctest-ci"
459+
env:
460+
PYTHON_VERSION: ${{ matrix.python-version }}
461+
cloud_provider: ${{ matrix.cloud-provider }}
462+
PYTEST_ADDOPTS: --color=yes --tb=short --enable_ast
463+
TOX_PARALLEL_NO_SPINNER: 1
464+
SNOWFLAKE_IS_PYTHON_RUNTIME_TEST: 1
465+
shell: bash
445466
- name: Combine coverages
446467
run: python -m tox -e coverage --skip-missing-interpreters false
447468
shell: bash

CHANGELOG.md

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,33 @@
1414
- `map_keys`
1515
- `nullifzero`
1616
- `snowflake_cortex_sentiment`
17+
- `acosh`
18+
- `asinh`
19+
- `atanh`
20+
- `bit_length`
21+
- `bitmap_bit_position`
22+
- `bitmap_bucket_number`
23+
- `bitmap_construct_agg`
24+
- `cbrt`
25+
- `equal_null`
26+
- `ifnull`
27+
- `localtimestamp`
28+
- `max_by`
29+
- `min_by`
30+
- `nvl`
31+
- `octet_length`
32+
- `position`
33+
- `regr_avgx`
34+
- `regr_avgy`
35+
- `regr_count`
36+
- `regr_intercept`
37+
- `regr_r2`
38+
- `regr_slope`
39+
- `regr_sxx`
40+
- `regr_sxy`
41+
- `regr_syy`
42+
- `try_to_binary`
43+
1744
- Added `Catalog` class to manage snowflake objects. It can be accessed via `Session.catalog`.
1845

1946
#### Improvements
@@ -24,8 +51,9 @@
2451
#### Bug Fixes
2552

2653
- Fixed a bug in local testing mode that caused a column to contain None when it should contain 0
27-
- Fixed a bug in `StructField.from_json` that prevented TimestampTypes with tzinfo from being parsed correctly.
54+
- Fixed a bug in `StructField.from_json` that prevented TimestampTypes with `tzinfo` from being parsed correctly.
2855
- Fixed a bug in function `date_format` that caused an error when the input column was date type or timestamp type.
56+
- Fixed a bug in `replace` when passing `Column` expression objects.
2957

3058
### Snowpark pandas API Updates
3159

@@ -63,8 +91,9 @@
6391
- Updated integration testing for `session.lineage.trace` to exclude deleted objects
6492
- Added documentation for `DataFrame.map`.
6593
- Improve performance of `DataFrame.apply` by mapping numpy functions to snowpark functions if possible.
66-
- Added documentation on the extent of Snowpark pandas interoperability with scikit-learn
94+
- Added documentation on the extent of Snowpark pandas interoperability with scikit-learn.
6795
- Infer return type of functions in `Series.map`, `Series.apply` and `DataFrame.map` if type-hint is not provided.
96+
- Added `call_count` to telemetry that counts method calls including interchange protocol calls.
6897

6998
## 1.26.0 (2024-12-05)
7099

0 commit comments

Comments
 (0)