-
-
Notifications
You must be signed in to change notification settings - Fork 30.3k
New issue
Have a question about this project?Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of serviceand privacy statement.We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gh-101693: In sqlite3, deprecate using named placeholders with parameters supplied as a sequence #101698
Merged
erlend-aasland
merged 16 commits into
python:main
from
erlend-aasland:no-numeric-placeholder-for-you
Feb 15, 2023
Merged
gh-101693: In sqlite3, deprecate using named placeholders with parameters supplied as a sequence #101698
Changes from8 commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
b693895
gh-101698: Deprecate using named placeholders with sequences
erlend-aasland483e4d6
Update docs
erlend-aaslande826428
Document deprecation in reference
erlend-aasland132a6ee
Also test executemany
erlend-aasland31cc188
Revert "Also test executemany"
erlend-aasland660a742
Sync with main
erlend-aaslanda18d0bb
Address review: add test for query with more than one named param
erlend-aasland3f94201
Address review: add PyErr_WarnFormat error handling
erlend-aasland997ccc6
Sync with main
erlend-aaslandcb091af
Pull in main
erlend-aasland450cdcc
Fixup
erlend-aasland841e8a4
Apply Serhiy's suggestion
erlend-aasland3e7b680
Pull in main
erlend-aasland38d1110
Address Alex's review
erlend-aaslandcf3cfc8
Also amend NEWS and What's New
erlend-aasland1687b65
Use deprecated-removed
erlend-aaslandFile filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6 changes: 6 additions & 0 deletions
6
Misc/NEWS.d/next/Library/2023-02-08-18-20-58.gh-issue-101693.4_LPXj.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
In:meth:`sqlite3.Cursor.execute`,:exc:`DeprecationWarning` is now raised | ||
AlexWaygoodmarked this conversation as resolved.
Show resolved
Hide resolved
|
||
when:ref:`named placeholders <sqlite3-placeholders>` are used together with | ||
parameters supplied as a:term:`sequence`. | ||
Starting from Python 3.14, using named placeholders with parameters supplied | ||
as a sequence will raise a:exc:`~sqlite3.ProgrammingError`. | ||
Patch by Erlend E. Aasland. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Are you sure about that? The API itself is not deprecated, we're just changing it. I'm not sure what's the recommended practice here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Yeah, I know what you mean. I feel like ideally this notice would be phrased along the lines of "X behaviour/practice is now deprecated" rather than "a DeprecationWarning is now emitted". That would be more to-the-point, and it would also work more naturally with this directive (X behaviour/practice is deprecated in 3.12, and will be removed entirely in 3.14).
But I was struggling to come to with a concrete suggestion for how to reword these notices:/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
(The whatsnew and NEWS entries look great btw, it's just the notices in the API docs that feelslightlyclunky to me)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Yes, but documented as deprecated and emitting a
DeprecationWarning
are similar, but not equal, things 🙂 With the former, we don't need to emit a warning in the code.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
To your original question, btw: I think it's pretty standard to use
.. deprecated
or.. deprecated-removed
,even if it's just a particular usage of an API, rather than the API itself. See e.g.https://docs.python.org/3.12/library/asyncio-policy.html#asyncio.DefaultEventLoopPolicy,where the directive is used even though the class itself hasn't been deprecated at all; or#19867,which deprecated just a specific parameter; or lots of other examples in our docs 🙂There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Aight! I'll try to reword it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
I've updated it to use
deprecated-removed
,and I put in an extra line regarding what happens in 3.14. I'm too tired to reword the text 🙂