Skip to content

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

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/strict-kwargs-2026.7.24
Closed

Bump strict-kwargs from 2026.6.8.post1 to 2026.7.24#2403
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/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 Pull requests that update Python code labels Jul 24, 2026
@github-actions
github-actions Bot enabled auto-merge July 24, 2026 22:23
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:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/pip/strict-kwargs-2026.7.24 branch from 3d51b45 to 7cf1021 Compare July 24, 2026 22:29
@adamtheturtle

Copy link
Copy Markdown
Member

Closing as a duplicate of #2407. Both PRs update strict-kwargs from 2026.6.8.post1 to 2026.7.24; #2407 also updates uv.lock and now includes the required hook compatibility change from check --fix --diff to check --fix. No ignores were added.

auto-merge was automatically disabled July 25, 2026 04:21

Pull request was closed

@dependabot @github

dependabot Bot commented on behalf of github Jul 25, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/pip/strict-kwargs-2026.7.24 branch July 25, 2026 04:21
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 Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant