Skip to content

Bump strict-kwargs from 2026.6.8.post1 to 2026.7.24#2407

Merged
github-actions[bot] merged 2 commits into
mainfrom
dependabot/uv/strict-kwargs-2026.7.24
Jul 25, 2026
Merged

Bump strict-kwargs from 2026.6.8.post1 to 2026.7.24#2407
github-actions[bot] merged 2 commits into
mainfrom
dependabot/uv/strict-kwargs-2026.7.24

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Bumps strict-kwargs from 2026.6.8.post1 to 2026.7.24.

Release notes

Sourced from strict-kwargs's releases.

Release 2026.7.24

2026.7.24

  • Avoid false constructor diagnostics and unsafe fixes when a class call crosses multiple locally modeled runtime boundaries. Calls now remain unchanged when a local __new__ competes with __init__ or a custom metaclass __call__ can impose a different positional-only contract.

  • Extend ty hover-answer reuse from self/cls attribute calls to every call on a stable name binding: any parameter, a module-level import/def/class, a single assignment (f = open(...), with open(...) as f), and bare-name calls on such bindings (Decimal(...), check(...)). Deferred calls that share a binding, an attribute, and a call-shape fingerprint now resolve from one hover/definition round trip instead of one per call site, cutting the CPython completeness run's ty request volume by about 17% (138k to 114k requests). Bindings stay grouped only while they are provably stable: any rebinding, del, augmented assignment, global/nonlocal, match subject or capture, narrowing test, or escape into a call poisons the group, a binding that shadows an enclosing name retroactively un-groups call sites recorded before it in the same scope (Python makes the name scope-local throughout), and class-body bindings never shadow names inside methods. The wider reuse also recovers nine CPython diagnostics that per-site queries had been losing to ty's answer instability (LibraryLoader.LoadLibrary, IdleConf.GetOption, ExitStack.enter_context, ...), with no entries lost on either completeness oracle.

    The whole-project pipeline now also streams: files needing the ty fallback are dispatched to the four shard servers in sorted order as soon as the parallel built-in pass finishes each file, so the servers work concurrently with the scan instead of idling until it drains, and a shard that never receives a query no longer starts a server at all. The first-party index build reads and parses candidate files in parallel as well (about 1.1s to 0.5s on a CPython checkout). Each server's request stream is byte-identical to the previous scan-then-shard pipeline's, so diagnostics are unchanged.

  • Fix a regression in ty hover-answer reuse that dropped real diagnostics for calls grouped across a platform-specific branch. When a group's earliest call site sits in code ty considers unreachable (for example a sys.platform-guarded branch that is dead on the host platform), ty answers with the bottom type Never instead of the receiver's real signature. That answer was cached and reused for the whole group, suppressing the group's live members, which do resolve. Only a usable callable signature is now treated as the shared group answer, so a Never (or absent) answer at one member no longer hides violations at the others.

  • Include Python environment modules and stubs in the persistent diagnostic cache fingerprint. Changes below a project .venv, VIRTUAL_ENV, or an

... (truncated)

Changelog

Sourced from strict-kwargs's changelog.

2026.7.24

  • Avoid false constructor diagnostics and unsafe fixes when a class call crosses multiple locally modeled runtime boundaries. Calls now remain unchanged when a local __new__ competes with __init__ or a custom metaclass __call__ can impose a different positional-only contract.

  • Extend ty hover-answer reuse from self/cls attribute calls to every call on a stable name binding: any parameter, a module-level import/def/class, a single assignment (f = open(...), with open(...) as f), and bare-name calls on such bindings (Decimal(...), check(...)). Deferred calls that share a binding, an attribute, and a call-shape fingerprint now resolve from one hover/definition round trip instead of one per call site, cutting the CPython completeness run's ty request volume by about 17% (138k to 114k requests). Bindings stay grouped only while they are provably stable: any rebinding, del, augmented assignment, global/nonlocal, match subject or capture, narrowing test, or escape into a call poisons the group, a binding that shadows an enclosing name retroactively un-groups call sites recorded before it in the same scope (Python makes the name scope-local throughout), and class-body bindings never shadow names inside methods. The wider reuse also recovers nine CPython diagnostics that per-site queries had been losing to ty's answer instability (LibraryLoader.LoadLibrary, IdleConf.GetOption, ExitStack.enter_context, ...), with no entries lost on either completeness oracle.

    The whole-project pipeline now also streams: files needing the ty fallback are dispatched to the four shard servers in sorted order as soon as the parallel built-in pass finishes each file, so the servers work concurrently with the scan instead of idling until it drains, and a shard that never receives a query no longer starts a server at all. The first-party index build reads and parses candidate files in parallel as well (about 1.1s to 0.5s on a CPython checkout). Each server's request stream is byte-identical to the previous scan-then-shard pipeline's, so diagnostics are unchanged.

  • Fix a regression in ty hover-answer reuse that dropped real diagnostics for calls grouped across a platform-specific branch. When a group's earliest call site sits in code ty considers unreachable (for example a sys.platform-guarded branch that is dead on the host platform), ty answers with the bottom type Never instead of the receiver's real signature. That answer was cached and reused for the whole group, suppressing the group's live members, which do resolve. Only a usable callable signature is now treated as the shared group answer, so a Never (or absent) answer at one member no longer hides violations at the others.

  • Include Python environment modules and stubs in the persistent diagnostic cache fingerprint. Changes below a project .venv, VIRTUAL_ENV, or an explicit --python environment now invalidate cached results instead of

... (truncated)

Commits

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Jul 24, 2026
@github-actions
github-actions Bot enabled auto-merge July 24, 2026 22:24
Bumps [strict-kwargs](https://github.com/adamtheturtle/strict-kwargs) from 2026.6.8.post1 to 2026.7.24.
- [Release notes](https://github.com/adamtheturtle/strict-kwargs/releases)
- [Changelog](https://github.com/adamtheturtle/strict-kwargs/blob/main/CHANGELOG.rst)
- [Commits](adamtheturtle/strict-kwargs@2026.6.8-post.1...2026.7.24)

---
updated-dependencies:
- dependency-name: strict-kwargs
  dependency-version: 2026.7.24
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/uv/strict-kwargs-2026.7.24 branch from a83c0fb to bb039e7 Compare July 24, 2026 22:29
@adamtheturtle
adamtheturtle deployed to development July 25, 2026 04:20 — with GitHub Actions Active
@github-actions
github-actions Bot merged commit 4029945 into main Jul 25, 2026
15 checks passed
@github-actions
github-actions Bot deleted the dependabot/uv/strict-kwargs-2026.7.24 branch July 25, 2026 04:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant