-
-
Notifications
You must be signed in to change notification settings - Fork 32.4k
Description
This issue covers an opportunity to enhance the existing sqlite3
docs on context management by adding a mention of contextlib.closing
to help guide developers when performing singular transactions. Adding this section to the documentation would help guide developers in use cases where they'd like to close the sqlite3
connection without an additional sqlite.connect().close()
after a context manager closes.
For default sqlite3
context management cases which don't use contextlib.closing
we could outline or strengthen existing mention that the intention is to perform multiple transactions without fully closing the connection. This might help distinguish development options / decision-making for Python developers reading through the documentation.
A contextlib.closing
example we could include:
import sqlite3
from contextlib import closing
with closing(sqlite3.connect("workfile.sqlite")) as cx:
with cx:
cx.execute("CREATE TABLE lang(id INTEGER PRIMARY KEY, name VARCHAR UNIQUE)")
cx.execute("INSERT INTO lang(name) VALUES(?)", ("Python",))
# no need to close the connection as contextlib.closing closed it for us
Related to a discussion from discuss.python.org. Many thanks to @erlend-aasland for suggesting the contextlib.closing
approach and the others in the discussion thread for their help in discussing this topic.
Linked PRs
Metadata
Metadata
Assignees
Labels
Projects
Status