Skip to content

chore(deps)(deps): bump the python-dependencies group with 4 updates#896

Merged
tschm merged 4 commits into
mainfrom
dependabot/uv/python-dependencies-384f3c704e
Jul 25, 2026
Merged

chore(deps)(deps): bump the python-dependencies group with 4 updates#896
tschm merged 4 commits into
mainfrom
dependabot/uv/python-dependencies-384f3c704e

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 21, 2026

Copy link
Copy Markdown
Contributor

Bumps the python-dependencies group with 4 updates: polars, fastapi, hypothesis and ty.

Updates polars from 1.42.1 to 1.43.0

Release notes

Sourced from polars's releases.

Python Polars 1.43.0

⚠️ Deprecations

  • Deprecate casting numeric types to categoricals (#28349)
  • Deprecate cat.get_categories() and cat.to_local() (#28299)
  • Deprecate LazyFrame.profile() (#28275)
  • Deprecate casts from non-nested dtypes into Lists (#28193)
  • Deprecate bitwise ops between integers and booleans (#28186)
  • Deprecate list/arr.to_struct() calls that don't pass field names (#28243)
  • Rename missing_utf8_is_empty_string to empty_string_is_null (#28173)

🚀 Performance improvements

  • Split multiplexers that directly scan from in-memory DataFrame (#28376)
  • Make DNS cache global (#28352)
  • Do not remove cache if predicates not pushed to all inputs (#28341)
  • Environment variable for logging slow DNS lookup (#28211)
  • Pre-partition on left, right and semi joins on hive partitioned data (#28374)
  • Rewrite inner joins on hive partitioned data to a union of partitions filtered joins (#28327)
  • Tighten redundant comparisons and propagate filter constraints (#27999)
  • Canonicalize predicates (#28212)
  • Remove excess memory copy in streaming IPC sink (#28141)
  • Parallelize scan_iceberg resolve (#28168)
  • Chunk-aware morsel splitting on single-file IO sink (#27950)
  • Don't allocate for full_null() with small lengths (#28181)
  • Use monotonic deque for rolling min_by/max_by (O(n)) (#27436)

✨ Enhancements

  • Pre-partition group-by on hive keys (#28444)
  • Add ewm_sum and ewm_sum_by #28151 (#28215)
  • Serve stale records from object_store DNS cache (#28256)
  • Make partition_hive an opt flag (#28345)
  • Add scan_arrow_c_stream (#28340)
  • When displaying IRExprs, only add parentheses when needed for disambiguation (#28319)
  • Support Iceberg field initial-default in native scan_iceberg (#28324)
  • Show only differing dtypes in assert_frame_equal error (#27816)
  • Expose ewm and rolling *_by expressions in Python visitor (#28286)
  • More accurate rolling moments (#28309)
  • Remove hard block on native scan for Iceberg V3 tables (#28277)
  • Add Series.degrees/radians and clarify trig functions use radians (#22961)
  • Merge sorted with multikey (#28067)
  • Add list expression which consistently packs elements together into new List type (#27990)
  • Add read_database Arrow fast-path for "python-oracledb" (#28230)
  • Optimize joins with redundant equi-join keys (#28017)
  • Implement missing datetime options for CastColumnsPolicy (#28084)
  • Add Expr.cat.to and Expr.cat.physical (#28096)
  • Add POLARS_OOC_DISK_BUDGET_MB (#28045)
  • Add build side preference parameter for join (#28154)

... (truncated)

Commits
  • adb194d feat: Pre-partition group-by on hive keys (#28444)
  • 0bf71d9 fix: Avoid panic when union slice skips all rows (#28420)
  • 8752751 fix: Solve panic in dt.replace when there were multiple chunks (#28437)
  • 0189b46 fix: Propagate is_scalar from the input to the output of .sort() and `.so...
  • ce6e4de fix(rust): Insert missing coercions from Unknown(_) in list/array arithmeti...
  • 997ce5c feat: Add ewm_sum and ewm_sum_by #28151 (#28215)
  • e5b36aa chore: Update AI policy for comments (#28436)
  • 3cb01f4 test: Fix flaky ordering expectation in top_k_by (#28435)
  • c6e05d1 fix: Resolve CSV column names overwrite in DSL->IR conversion (#28383)
  • 0cdafb4 fix: Avoid IEJoin rewrite for Categorical comparisons (#28427)
  • Additional commits viewable in compare view

Updates fastapi from 0.139.0 to 0.139.2

Release notes

Sourced from fastapi's releases.

0.139.2

Fixes

  • 🐛 Refactor router route building to make it thread-safe, mainly relevant for tests running in parallel threads (uncommon). PR #16013 by @​tiangolo.

0.139.1

Fixes

  • 🐛 Fix frontend fallback support for doted paths like /users/john.doe. PR #16011 by @​tiangolo.

Docs

  • 📝 Fix topic repository list not being displayed and skip_users not being applied. PR #15995 by @​YuriiMotov.

Translations

Internal

Commits
  • 866b7a3 🔖 Release version 0.139.2 (#16014)
  • 7b3effe 📝 Update release notes
  • 7fe315c 🐛 Refactor router route building to make it thread-safe, mainly relevant for ...
  • c48e67b 🔖 Release version 0.139.1 (#16012)
  • 2acc4fb 📝 Update release notes
  • eb75fd0 🐛 Fix frontend fallback support for doted paths like /users/john.doe (#16011)
  • 9b8410b 📝 Update release notes
  • e24d44c 📝 Fix topic repository list not being displayed and skip_users not being ap...
  • 93b78f8 📝 Update release notes
  • b959b44 📝 Update release notes
  • Additional commits viewable in compare view

Updates hypothesis from 6.156.6 to 6.157.2

Commits
  • 4ce090f Bump hypothesis version to 6.157.2 and update changelog
  • 068b2cf Merge pull request #4796 from HypothesisWorks/migrate-floats-to-rust
  • 434689a skip tests that hit half bugs, address review
  • 0884e3f Merge remote-tracking branch 'upstream/master' into plait/review-hypothesis-4796
  • 00e62be Bump hypothesis version to 6.157.1 and update changelog
  • 20ec468 Merge pull request #4804 from HypothesisWorks/claude/span-keyed-explain-comments
  • 78329b9 Test stdtr at df=1 against the closed form, not scipy
  • bee3768 Track explain-phase comments by span instead of node slices
  • 41e4ac5 Bump hypothesis version to 6.157.0 and update changelog
  • 86c9077 Merge pull request #4801 from Zac-HD/claude/annotated-type-bugs-9hez25
  • Additional commits viewable in compare view

Updates ty from 0.0.59 to 0.0.61

Release notes

Sourced from ty's releases.

0.0.61

Release Notes

Released on 2026-07-17.

Bug fixes

  • Avoid recursive protocol structural comparisons (#26721)

LSP server

  • Render Google docstrings as structured Markdown (#26599)

Library support

  • Pydantic: Collect field metadata through subscripted generic Annotated aliases (#26885)

Diagnostics

  • Avoid extending own-line suppressions in --add-ignore (#26808)

Core type checking

  • Derive descriptor setter domains for protocols (#26683)
  • Enforce declared receiver TypeVar domains (#26863)
  • Infer isinstance results for aliases and type variables (#26961)
  • Infer isinstance results for fixed class tuples (#26935)
  • Narrow inline list and set membership checks (#26955)
  • Narrow tagged unions by tag truthiness (#26887)
  • Narrow walrus expression values (#26949)
  • Project intersections in to_instance (#26892)
  • Remove inferable TypeVar artifacts recursively (#26787)
  • Respect mixin receiver domains in method overrides (#26941)
  • Support TypeVarTuple and Unpack (#25240)

Performance

  • Deduplicate completion labels (#26890)
  • Only collect expected types for files open in the editor (#25546)
  • Parallelize subtype hierarchy search (#26875)
  • Share heap-backed parser names with CharStr (#26594)
  • Use the new incremental checker from the ignore crate (#26933)

Contributors

... (truncated)

Changelog

Sourced from ty's changelog.

0.0.61

Released on 2026-07-17.

Bug fixes

  • Avoid recursive protocol structural comparisons (#26721)

LSP server

  • Render Google docstrings as structured Markdown (#26599)

Library support

  • Pydantic: Collect field metadata through subscripted generic Annotated aliases (#26885)

Diagnostics

  • Avoid extending own-line suppressions in --add-ignore (#26808)

Core type checking

  • Derive descriptor setter domains for protocols (#26683)
  • Enforce declared receiver TypeVar domains (#26863)
  • Infer isinstance results for aliases and type variables (#26961)
  • Infer isinstance results for fixed class tuples (#26935)
  • Narrow inline list and set membership checks (#26955)
  • Narrow tagged unions by tag truthiness (#26887)
  • Narrow walrus expression values (#26949)
  • Project intersections in to_instance (#26892)
  • Remove inferable TypeVar artifacts recursively (#26787)
  • Respect mixin receiver domains in method overrides (#26941)
  • Support TypeVarTuple and Unpack (#25240)

Performance

  • Deduplicate completion labels (#26890)
  • Only collect expected types for files open in the editor (#25546)
  • Parallelize subtype hierarchy search (#26875)
  • Share heap-backed parser names with CharStr (#26594)
  • Use the new incremental checker from the ignore crate (#26933)

Contributors

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the python-dependencies group with 4 updates: [polars](https://github.com/pola-rs/polars), [fastapi](https://github.com/fastapi/fastapi), [hypothesis](https://github.com/HypothesisWorks/hypothesis) and [ty](https://github.com/astral-sh/ty).


Updates `polars` from 1.42.1 to 1.43.0
- [Release notes](https://github.com/pola-rs/polars/releases)
- [Commits](pola-rs/polars@py-1.42.1...py-1.43.0)

Updates `fastapi` from 0.139.0 to 0.139.2
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](fastapi/fastapi@0.139.0...0.139.2)

Updates `hypothesis` from 6.156.6 to 6.157.2
- [Release notes](https://github.com/HypothesisWorks/hypothesis/releases)
- [Commits](HypothesisWorks/hypothesis@v6.156.6...v6.157.2)

Updates `ty` from 0.0.59 to 0.0.61
- [Release notes](https://github.com/astral-sh/ty/releases)
- [Changelog](https://github.com/astral-sh/ty/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ty@0.0.59...0.0.61)

---
updated-dependencies:
- dependency-name: polars
  dependency-version: 1.43.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-dependencies
- dependency-name: fastapi
  dependency-version: 0.139.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-dependencies
- dependency-name: hypothesis
  dependency-version: 6.157.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-dependencies
- dependency-name: ty
  dependency-version: 0.0.61
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github

dependabot Bot commented on behalf of github Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

Labels

The following labels could not be found: dependencies, python. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot
dependabot Bot requested a review from tschm as a code owner July 21, 2026 05:11
tschm and others added 2 commits July 22, 2026 14:34
polars 1.43.0 changed `ewm_std` so an unbiased standard deviation of a
single observation is `null` instead of `0.0`, matching
`pandas.Series.ewm(...).std()` (NaN at row 0). Three mutation-kill tests
asserted the old polars-only behaviour and failed after the bump.

Assert on row 1 instead of row 0 — that still kills a `min_samples=window`
mutant — and expect a null first row in the constant-returns case.
Production behaviour is unchanged and now closer to the quantstats
reference; documented the null first row on `exponential_stdev`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@tschm

tschm commented Jul 25, 2026

Copy link
Copy Markdown
Member

Heads-up: one extra commit beyond the dependency bump

make test failed on this branch before 678ea7e. Cause: polars 1.42.1 → 1.43.0 changed ewm_std so that an unbiased standard deviation of a single observation is now null instead of 0.0.

pl.Series([0.01] * 10).ewm_std(span=5, min_samples=1).to_list()
# polars 1.42: [0.0,  0.0, 0.0, ...]
# polars 1.43: [None, 0.0, 0.0, ...]

This matches pandas.Series.ewm(span=5, min_periods=1).std(), which has always returned NaN at row 0 — so the new output is closer to the quantstats reference we validate against, not a regression.

Production behaviour is unchanged. Data.utils.exponential_stdev still calls ewm_std(..., min_samples=1); only the first row of the returned frame differs, and it now agrees with pandas.

Three mutation-kill tests in tests/test_jquantstats/test__utils/test_data_mutation_kills.py had encoded the old polars-only 0.0:

  • test_exponential_stdev_{halflife,span}_first_row_defined → renamed to ..._second_row_defined and now assert on row 1. This still kills the mutant they were written for (min_samples=1min_samples=window): with min_samples=5, rows 0–3 are null, so the assertion fails as intended.
  • test_exponential_stdev_halflife_constant_returns_zero → now expects values[0] is None and zeros from row 1 on.

Also added a line to the exponential_stdev docstring documenting the null first row, so it doesn't get reported as a bug later.

The test change is coupled to the bump and can't be split onto main on its own — under polars 1.42 the values[0] is None assertion would fail.

One consequence of pushing a non-dependabot commit here: Dependabot will no longer rebase or force-push this branch.

make all passes locally: exit 0, 100% coverage, ty + mypy strict clean.

The exponential_stdev tests now expect a null first row from `ewm_std`,
which is 1.43.0 behaviour — under 1.42.1 that row is `0.0` and the suite
fails. Raise the floor so the constraint matches what the tests assume.

`uv lock` also simplified two transitive markers (pexpect, pyzmq).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@tschm
tschm merged commit 43e732e into main Jul 25, 2026
63 checks passed
@tschm
tschm deleted the dependabot/uv/python-dependencies-384f3c704e branch July 25, 2026 17:21
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.

1 participant