Skip to content

Rename multi_source to pushdown_combine - #16

Merged
timkpaine merged 1 commit into
mainfrom
chore/rename-multi-source-to-pushdown-combine
Aug 19, 2026
Merged

Rename multi_source to pushdown_combine#16
timkpaine merged 1 commit into
mainfrom
chore/rename-multi-source-to-pushdown-combine

Conversation

@ptomecek

Copy link
Copy Markdown
Collaborator

What

Renames the multi_source API to pushdown_combine.

Why

multi_source named the inputs (multiple sources). The function's defining feature is coordinated predicate pushdown into a user-supplied combine function — the multi-source aspect is incidental. pushdown_combine names the behavior, in keeping with polars / polars-io-tools naming conventions.

Changes

  • Move io_sources/multi_source.pypushdown_combine.py
  • Move tests/io_sources/test_multi_source.pytest_pushdown_combine.py
  • Rename the function, __all__, all imports, and test class names (TestMultiSource*TestPushdownCombine*)
  • Update docstrings and wiki docs (API-Reference, Query-Optimization, Concepts, README)
  • FilterSpec is unchanged

Verification

Full related test suite passes (152 passed). Top-level polars_io_tools.pushdown_combine is exported; multi_source is fully removed.

Note: this is a breaking rename with no back-compat alias. Downstream consumers (e.g. cubist-polars) must remap multi_sourcepushdown_combine when migrating.

The name `multi_source` described the inputs (multiple sources) rather than
what the function does. Its defining feature is coordinated predicate
pushdown into a user-supplied `combine` function; the multi-source aspect is
incidental. Rename to `pushdown_combine` to name the behavior, consistent
with polars/polars-io-tools naming.

- Move io_sources/multi_source.py -> pushdown_combine.py
- Move tests/io_sources/test_multi_source.py -> test_pushdown_combine.py
- Update the function, __all__, imports, test class names, and docs
- FilterSpec is unchanged

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Pascal Tomecek <40371786+ptomecek@users.noreply.github.com>
@ptomecek
ptomecek force-pushed the chore/rename-multi-source-to-pushdown-combine branch from 31adfdd to eb906c1 Compare August 19, 2026 21:29
@github-actions

Copy link
Copy Markdown
Contributor

Test Results

1 378 tests  ±0   1 330 ✅ ±0   30s ⏱️ -7s
    2 suites ±0      48 💤 ±0 
    2 files   ±0       0 ❌ ±0 

Results for commit eb906c1. ± Comparison against base commit 3b2ef21.

This pull request removes 95 and adds 95 tests. Note that renamed tests count towards both.
polars_io_tools.tests.io_sources.test_multi_source.TestApplyValueMapping ‑ test_callable_mapping
polars_io_tools.tests.io_sources.test_multi_source.TestApplyValueMapping ‑ test_callable_mapping_custom_function
polars_io_tools.tests.io_sources.test_multi_source.TestApplyValueMapping ‑ test_dict_mapping_all_keys_present
polars_io_tools.tests.io_sources.test_multi_source.TestApplyValueMapping ‑ test_dict_mapping_no_keys_present
polars_io_tools.tests.io_sources.test_multi_source.TestApplyValueMapping ‑ test_dict_mapping_partial_keys
polars_io_tools.tests.io_sources.test_multi_source.TestApplyValueMapping ‑ test_empty_values
polars_io_tools.tests.io_sources.test_multi_source.TestApplyValueMapping ‑ test_none_mapping
polars_io_tools.tests.io_sources.test_multi_source.TestCombineKwargs ‑ test_combine_kwargs_basic
polars_io_tools.tests.io_sources.test_multi_source.TestCombineKwargs ‑ test_combine_kwargs_complex_join_pattern
polars_io_tools.tests.io_sources.test_multi_source.TestCombineKwargs ‑ test_combine_kwargs_empty_dict
…
polars_io_tools.tests.io_sources.test_pickle.TestPushdownCombinePickle ‑ test_pushdown_combine_pickle_basic
polars_io_tools.tests.io_sources.test_pushdown_combine.TestApplyValueMapping ‑ test_callable_mapping
polars_io_tools.tests.io_sources.test_pushdown_combine.TestApplyValueMapping ‑ test_callable_mapping_custom_function
polars_io_tools.tests.io_sources.test_pushdown_combine.TestApplyValueMapping ‑ test_dict_mapping_all_keys_present
polars_io_tools.tests.io_sources.test_pushdown_combine.TestApplyValueMapping ‑ test_dict_mapping_no_keys_present
polars_io_tools.tests.io_sources.test_pushdown_combine.TestApplyValueMapping ‑ test_dict_mapping_partial_keys
polars_io_tools.tests.io_sources.test_pushdown_combine.TestApplyValueMapping ‑ test_empty_values
polars_io_tools.tests.io_sources.test_pushdown_combine.TestApplyValueMapping ‑ test_none_mapping
polars_io_tools.tests.io_sources.test_pushdown_combine.TestCombineKwargs ‑ test_combine_kwargs_basic
polars_io_tools.tests.io_sources.test_pushdown_combine.TestCombineKwargs ‑ test_combine_kwargs_complex_join_pattern
…

@timkpaine
timkpaine merged commit 3375d32 into main Aug 19, 2026
5 checks passed
@timkpaine
timkpaine deleted the chore/rename-multi-source-to-pushdown-combine branch August 19, 2026 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants