Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
7bdf20d
fix(python): Allow `DataTypeExpr` in `pl.lit()` (#26740)
Kevin-Patyk Mar 13, 2026
8d54d5a
fix: Fix panic on lazy concat->filter->slice with CSPE (#26907)
nameexhaustion Mar 13, 2026
84147c0
docs: Query Profiler addition to User Guide (#26623)
TNieuwdorp Mar 16, 2026
a5893d7
build(rust): Bump up numpy and pyo3 to 0.28 (#26743)
florianvazelle Mar 16, 2026
9d3ef6d
fix: Propagate null in `min_by` / `max_by` for all-null by groups (#2…
gautamvarmadatla Mar 16, 2026
bfc0bc2
fix: Fix error passing `Series` of dates to business functions (#26927)
nameexhaustion Mar 16, 2026
075e39a
test(python): Set stricter `maintain_order` in `test_schema_row_index…
dsprenkels Mar 16, 2026
f6b26bf
fix: Default engine as streaming for `collect_batches` (#26932)
nameexhaustion Mar 16, 2026
a39cdb1
fix: Fix the loop bounds in `BitmapBuilder::extend_each_repeated_from…
dsprenkels Mar 16, 2026
f624da6
fix(python): Fix `search_sorted` typing when used with `list[float]` …
gab23r Mar 17, 2026
9f23b42
fix: Fix panic on upsample() with group_by parameter on empty DataFra…
Kevin-Patyk Mar 17, 2026
1c8174c
build: Bump lz4_flex from 0.12.0 to 0.12.1 (#26940)
dependabot[bot] Mar 17, 2026
0f29993
fix: Fix ColumnNotFound due to projection between filter/cache in CSP…
nameexhaustion Mar 17, 2026
bd50cb7
fix: Follow-up on streaming range-join PR (#26944)
dsprenkels Mar 17, 2026
e70bda2
feat: Support casting Duration to String in ISO 8601 format (#26860)
kanenorman Mar 18, 2026
150598d
perf: Optimize `.replace()` from a single value (#26948)
Kevin-Patyk Mar 18, 2026
32b09f6
feat: Support Decimal32/64 in scan_parquet (#26941)
tmimmanuel Mar 18, 2026
34a8d6e
fix: Preserve height when unnesting empty struct columns (#26947)
moktamd Mar 18, 2026
6be5f65
feat: Support Delta deletion vectors in `scan_delta` (#26867)
kdn36 Mar 18, 2026
bb50a78
perf: Drop unused filter column above cache (#26955)
nameexhaustion Mar 18, 2026
642e185
perf: Native streaming `forward_fill` (#26922)
coastalwhite Mar 18, 2026
9b625c4
feat: Error if PartitionBy path provider returns absolute path that d…
nameexhaustion Mar 18, 2026
a83134d
feat: Truncate large binary/utf8 Parquet statistics values (#26764)
jonasdedden Mar 18, 2026
a56f736
feat(python): Raise ChronoFormatWarning when using `%f` time format s…
yuuuxt Mar 18, 2026
7916b07
fix: Raise for duplicate columns in `over()` (#26968)
0xRozier Mar 19, 2026
f967faa
perf: Streaming native `backward_fill` (#26967)
coastalwhite Mar 19, 2026
e71947a
perf: Lower `index_of` to streaming engine (#26923)
coastalwhite Mar 19, 2026
9a7f617
chore: Polars version (#26971)
ritchie46 Mar 19, 2026
b7c51fc
feat: Use UUIDv7 for sink_iceberg directory name generation (#26958)
nameexhaustion Mar 19, 2026
8a5440b
fix: Informative error for multi-quantile in `group_by` (#26957)
gautamvarmadatla Mar 19, 2026
37accaa
docs(python): Fix formatting of unstable warning for write/sink_ipc r…
ohmdelta Mar 20, 2026
6a39a4b
fix: Validate fraction is between `0.0` and `1.0` in `list.sample` (#…
Kevin-Patyk Mar 20, 2026
cd026cf
fix: Raise error instead of panic for unsupported pivot aggregate (#2…
RenzoMXD Mar 20, 2026
97bfbfa
chore: Polars versions (#26980)
ritchie46 Mar 20, 2026
e448f7b
refactor: Remove indirection in calling python scans (#26981)
ritchie46 Mar 20, 2026
c9c0b32
refactor(rust): Replace `clippy::never_loop` with break on named scop…
nameexhaustion Mar 20, 2026
4b52d97
docs(python): Improve `write_parquet` docstring for `use_pyarrow` (#2…
0xRozier Mar 23, 2026
8e2101b
fix(python): Ensure `sample()` respects the global set seed (#26992)
Kevin-Patyk Mar 23, 2026
6f6f248
chore: Fix CI by excluding missing wheel version of pyiceberg (#27001)
orlp Mar 23, 2026
3d4816b
chore: Enable hypothesis tests when `POLARS_AUTO_NEW_STREAMING=1` (#2…
dsprenkels Mar 23, 2026
9991b2c
refactor(rust): Naming for named scopes (#26999)
nameexhaustion Mar 23, 2026
db141c5
fix: Implement `agg_arg_min`/`agg_arg_max` for `boolean` data type (#…
azimafroozeh Mar 23, 2026
9d45f1a
fix: Correct suggestion in multi-expr filter error (#27003)
orlp Mar 23, 2026
9ac942d
fix: Infer nulls when df create from empty-struct (#26991)
debnathshoham Mar 23, 2026
5197bbf
perf: Drop `maintain_order=True` requirement in `sink_delta` (#27007)
kdn36 Mar 24, 2026
acb1bfa
fix: Don't remove `set_sorted` in projection pushdown (#27006)
coastalwhite Mar 24, 2026
7b5f77f
docs: Change Polars Cloud API to 0.6.0 (#27005)
TNieuwdorp Mar 24, 2026
9fc9828
fix: Covariance with constant is zero, not NaN (#27015)
orlp Mar 24, 2026
392f472
fix: Fix repeated word typos in comments (#26917)
yangsong97 Mar 24, 2026
6d9504f
chore: Really do not install pyiceberg-core 0.9.0 (#27017)
dsprenkels Mar 24, 2026
dcf528e
fix(rust): Fix initial MutableBooleanArray::extend_constant(count, No…
xenzh Mar 24, 2026
8df33fe
fix: Make `pl.DataFrame.fill_null` work on columns with `Null` dtype …
gab23r Mar 24, 2026
429f92d
fix: Resolve stack overflow on `merge_sorted` and `union` (#27018)
kdn36 Mar 24, 2026
b1cb578
chore: Missing `src/` subdirectory to CI Python docs step (#27025)
carnarez Mar 24, 2026
55c6922
perf: Collapse consecutive Sort nodes (#26965)
dsprenkels Mar 24, 2026
c81bb6a
fix: Set sorted flag for Boolean and Time (#27035)
coastalwhite Mar 25, 2026
865c33d
perf: Ensure Expr.append is lowered in streaming engine (#27022)
orlp Mar 25, 2026
9b0fb39
fix: Prevent panic in `transpose()` with mixed List and non-List colu…
Kevin-Patyk Mar 25, 2026
4c393f3
perf: Add sorted-unique node to streaming engine (#26990)
coastalwhite Mar 25, 2026
eb18748
fix: Panic in streaming MergeSortedNode (#27024)
orlp Mar 25, 2026
43fe8c0
fix: Null count for aggregated list inside count aggregation (#27032)
NeejWeej Mar 25, 2026
c91bad0
fix: Make `test_group_by_arg_max_boolean_26978` non-flaky for `max_by…
azimafroozeh Mar 25, 2026
00a15f6
chore: Pin maturin due to compile time regression (#27062)
orlp Mar 26, 2026
278f80a
feat(python): Make unnest() effective on all columns by default (#27029)
gab23r Mar 26, 2026
f25a863
perf: Streaming `cov` and `corr` (#27008)
coastalwhite Mar 26, 2026
d945f99
fix: Regression in replace_strict for enums (#27066)
orlp Mar 27, 2026
45c6bdd
refactor: Add sinked paths callback (#26995)
nameexhaustion Mar 27, 2026
3f6dabe
perf: Streaming is_first_distinct and unique(maintain_order=True) (#2…
orlp Mar 27, 2026
78aa5de
fix: Ensure SQL `COUNT(<lit>)` expressions return the correct value (…
alexander-beedie Mar 30, 2026
7e37b7c
fix: Reject invalid input to `sql_expr` (#27084)
alexander-beedie Mar 30, 2026
ed3be65
test(python): Add explicit `ResourceWarning` coverage (#27083)
alexander-beedie Mar 30, 2026
005380a
docs(python): Normalise `Series` docstring whitespace indents (#27082)
alexander-beedie Mar 30, 2026
f44e724
docs(python): Add missing docstrings for Expr.struct.__getitem__ and …
HCYT Mar 30, 2026
5802933
chore(python): Improve internal typing ahead of using `ty` / `pyrefly…
MarcoGorelli Mar 30, 2026
55badc4
perf: Take into account size per row in join sampling (#27098)
orlp Mar 30, 2026
9bc2600
fix: Preserve casts for horizontal ops with untyped literals (#27011)
abhidotsh Mar 31, 2026
7b5f667
docs: Put first-time contribution requirements in its own linkable se…
orlp Mar 31, 2026
5d8becc
fix: Ignore `ddof` parameter in `rolling_corr` and deprecate (#27104)
Kevin-Patyk Mar 31, 2026
72fca32
fix: Apply scalar bound in `clip` when the Series bound contains null…
gautamvarmadatla Mar 31, 2026
8d87d94
refactor(rust): Add memory usage tracking to global allocator (#27103)
orlp Mar 31, 2026
5ecfa35
feat(python): Change default scan/read_lines column name from "lines"…
nameexhaustion Mar 31, 2026
7ce0ba6
docs: Make the files used in docs available locally (#27121)
TNieuwdorp Mar 31, 2026
cd7361b
perf: Use delta stats for mixed hive and non-hive predicate pushdown …
kdn36 Mar 31, 2026
a0a98af
fix: Fix incorrect IO metrics on multi-phase streaming execution (#27…
nameexhaustion Mar 31, 2026
c2a0cec
perf: Remove unused expression sorts (#27075)
nameexhaustion Apr 1, 2026
eac36c5
chore(python): Add None & Dataframe to FrameInitTypes (#27126)
dpinol Apr 1, 2026
5e06fbf
fix(python): Address a potential overflow in `from_epoch` scaling (#2…
alexander-beedie Apr 1, 2026
d986cea
chore(python): Make internal typing more precise (part ii) (#27117)
MarcoGorelli Apr 1, 2026
fefd58a
refactor: Simplify pyarrow scan and process in batches (#26982)
ritchie46 Apr 1, 2026
c94f88b
fix: Skip extension types for min/max in describe (#27120)
orlp Apr 1, 2026
45ee6d6
fix: Output SVG if output_path ends with '.svg' in show_graph (#27144)
orlp Apr 1, 2026
b509848
chore: Update nightly Rust compiler version (#27145)
Kevin-Patyk Apr 1, 2026
5053689
feat: Allow `group_by()` without key exprs (#27141)
nameexhaustion Apr 2, 2026
fdf3e21
Merge upstream/main into refactor/opendal-hf-sink
davanstrien Apr 2, 2026
bbfd39d
refactor: replace custom XET sink with OpenDAL ObjectStore for HF URLs
davanstrien Apr 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Empty file added --log
Empty file.
2 changes: 1 addition & 1 deletion .github/issue-labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ A-panic:
A-plugin:
- '/plugin/i'
A-sql:
- '/\bsql\b|sqlcontext/i'
- '/\bsql\b|sql_expr|sqlcontext/i'
A-selectors:
- '/selector/i'
A-streaming:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docs-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ on:
pull_request:
paths:
- py-polars/docs/**
- py-polars/polars/**
- py-polars/src/polars/**
- .github/workflows/docs-python.yml
push:
branches:
- main
paths:
- py-polars/docs/**
- py-polars/polars/**
- py-polars/src/polars/**
- .github/workflows/docs-python.yml
repository_dispatch:
types:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ jobs:
run: >
pytest
-n auto
-m "not may_fail_auto_streaming and not slow and not write_disk and not release and not docs and not hypothesis and not benchmark and not ci_only"
-m "not may_fail_auto_streaming and not slow and not write_disk and not release and not benchmark and not docs"
-k 'not test_polars_import'
--cov --cov-report xml:auto-streaming.xml --cov-fail-under=0

Expand All @@ -170,7 +170,7 @@ jobs:
run: >
pytest
-n auto
-m "not may_fail_auto_streaming and not slow and not write_disk and not release and not docs and not hypothesis and not benchmark and not ci_only"
-m "not may_fail_auto_streaming and not slow and not write_disk and not release and not benchmark and not docs"
-k 'not test_polars_import'
--cov --cov-report xml:small-morsel.xml --cov-fail-under=0

Expand Down
27 changes: 21 additions & 6 deletions .github/workflows/test-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,28 @@ jobs:
os: [ubuntu-latest]
python-version: ['3.10', '3.12', '3.13', '3.14', '3.14t']
ideal_morsel_size: [100000]
auto_new_streaming: [false]
include:
- os: windows-latest
python-version: '3.14'
ideal_morsel_size: 100000
auto_new_streaming: false
- os: windows-latest
python-version: '3.14'
ideal_morsel_size: 100000
auto_new_streaming: true
- os: ubuntu-latest
python-version: '3.14'
ideal_morsel_size: 4
auto_new_streaming: false
- os: ubuntu-latest
python-version: '3.14'
ideal_morsel_size: 100000
auto_new_streaming: true
- os: ubuntu-latest
python-version: '3.14'
ideal_morsel_size: 4
auto_new_streaming: true

steps:
- uses: actions/checkout@v6
Expand Down Expand Up @@ -114,33 +129,33 @@ jobs:
maturin develop --manifest-path runtime/polars-runtime-32/Cargo.toml

- name: Run doctests
if: github.ref_name != 'main' && matrix.python-version == '3.14' && matrix.os == 'ubuntu-latest'
if: github.ref_name != 'main' && matrix.python-version == '3.14' && matrix.os == 'ubuntu-latest' && !matrix.auto_new_streaming
run: |
python tests/docs/run_doctest.py
pytest tests/docs/test_user_guide.py -m docs

- name: Run tests
if: github.ref_name != 'main' && matrix.python-version != '3.14t'
if: github.ref_name != 'main' && matrix.python-version != '3.14t' && !matrix.auto_new_streaming
env:
POLARS_TIMEOUT_MS: 60000
run: pytest -n auto -m "not release and not benchmark and not docs"

- name: Run tests with new streaming engine
if: github.ref_name != 'main' && matrix.python-version != '3.14t'
if: github.ref_name != 'main' && matrix.python-version != '3.14t' && matrix.auto_new_streaming
env:
POLARS_AUTO_NEW_STREAMING: 1
POLARS_TIMEOUT_MS: 60000
run: pytest -n auto -m "not may_fail_auto_streaming and not slow and not write_disk and not release and not docs and not hypothesis and not benchmark and not ci_only"
run: pytest -n auto -m "not may_fail_auto_streaming and not release and not benchmark and not docs"

- name: Run tests async reader tests
if: github.ref_name != 'main' && matrix.os != 'windows-latest' && matrix.python-version != '3.14t'
if: github.ref_name != 'main' && matrix.os != 'windows-latest' && matrix.python-version != '3.14t' && !matrix.auto_new_streaming
env:
POLARS_FORCE_ASYNC: 1
POLARS_TIMEOUT_MS: 60000
run: pytest -n auto -m "not release and not benchmark and not docs" tests/unit/io/

- name: Run tests multiscan force empty capabilities
if: github.ref_name != 'main' && matrix.python-version != '3.14t'
if: github.ref_name != 'main' && matrix.python-version != '3.14t' && !matrix.auto_new_streaming
env:
POLARS_FORCE_EMPTY_READER_CAPABILITIES: 1
POLARS_TIMEOUT_MS: 60000
Expand Down
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,14 @@ target/
*.tbl

# Project
/docs/assets/data/
/docs/assets/data/*
!/docs/assets/data/alltypes_plain.parquet
!/docs/assets/data/apple_stock.csv
!/docs/assets/data/iris.csv
!/docs/assets/data/monopoly_props_groups.csv
!/docs/assets/data/monopoly_props_prices.csv
!/docs/assets/data/pokemon.csv
!/docs/assets/data/reddit.csv
/docs/assets/people.md

# User specific source setups
Expand Down
Loading
Loading