Repository navigation
Match SQLite callback keyword parsing - #9737
youknowdot wants to merge 3 commits into
Conversation
Preserve typed positional-only signatures while selecting the defining-class Clinic argument parser for callback registration. Derive dispatch and binding policy at compile time; leave the successful-call validation path unchanged. Assisted-by: OpenAI Codex:model version not exposed
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
📦 Library DependenciesThe following Lib/ modules were modified. Here are their dependencies: [x] lib: cpython/Lib/sqlite3 dependencies:
dependent tests: (2 tests)
Legend:
|
Use scripts/update_lib on test_userfunctions.py and test_hooks.py after fixing the native defining-class argument parser. Remove their three remaining decorators, covering six concrete test cases, without changing assertions, logic, or existing skips. Assisted-by: OpenAI Codex:model version not exposed
04ea01a to
7a758a4
Compare
Rename the typed adapter and force-selection metadata consistently. Clarify that it reuses the ordinary binder, preserves positional-only semantics, and selects the CPython _PyArg_UnpackKeywords conventions without adding a second parser. Assisted-by: OpenAI Codex:model version not exposed
Merging this PR will not alter performance
Comparing Footnotes
|
Summary
Retire the remaining expected failures in
test_sqlite3/test_userfunctions.pyandtest_sqlite3/test_hooks.pyas one file-level batch.SQLite's defining-class Clinic wrappers use
_PyArg_UnpackKeywords, even when every argument is positional-only. The generic native calling convention previously rejected keywords before that parser could report a missing positional argument or an excess total argument count.UnpackKeywords<T>adapter. ItsFORCE_UNPACK_KEYWORDScompile-time metadata selects CPython's_PyArg_UnpackKeywordscalling and validation conventions through the existing binder, preserving argument conversion and displayed signatures. Positional-only parameters still cannot be passed by keyword.scripts/update_lib; existing skips, assertions, test logic, and data are unchanged.This is independent of the other open expected-failure batches and is based directly on main
ea5fbcc00.Reference: CPython 3.15 SQLite generated wrappers and
_PyArg_UnpackKeywords.Validation
Behavioral validation before the identifier/documentation-only rename (binding and conversion logic unchanged):
-D warnings.Before the naming-only revision, workspace tests passed: 1,520 passed, zero failed, 20 ignored across unit, integration, and doc tests. Separate C-API tests passed: 149 passed, zero failed, two ignored, and separate C-API all-target Clippy passed with
-D warnings.On naming revision
1a834ea436, normal commit hooks, formatting, diff checks, and strict workspace all-target Clippy including SQLite have passed again. Workspace tests and separate C-API checks are still running; earlier interrupted compilations are not counted as passing.CPython 3.15 behavior is checked against the fixed source above; no CPython 3.15 runtime oracle is claimed. A clean merge was verified against current main
9670d1b364, including the subsequent #9706, #9668, and #9718 changes. No unrelated module expansion is included.Normal hosted CI is enabled. Full hosted and cross-platform validation remains outstanding; this is not a merge-ready claim.
AI assistance: OpenAI Codex assisted implementation, source review, and validation. The model version is not exposed. Commits include
Assisted-bytrailers.