mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
gh-107938: Synchonise the signature of of sqlite3.connect and sqlite3.Connection.__init__ (#107939)
This commit is contained in:
parent
608927b014
commit
6fbaba552a
3 changed files with 61 additions and 18 deletions
25
Modules/_sqlite/clinic/_sqlite3.connect.c.h
generated
Normal file
25
Modules/_sqlite/clinic/_sqlite3.connect.c.h
generated
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/*[clinic input]
|
||||||
|
preserve
|
||||||
|
[clinic start generated code]*/
|
||||||
|
|
||||||
|
#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
|
||||||
|
# include "pycore_gc.h" // PyGC_Head
|
||||||
|
# include "pycore_runtime.h" // _Py_ID()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
PyDoc_STRVAR(pysqlite_connect__doc__,
|
||||||
|
"connect($module, /, database, timeout=5.0, detect_types=0,\n"
|
||||||
|
" isolation_level=\'\', check_same_thread=True,\n"
|
||||||
|
" factory=ConnectionType, cached_statements=128, uri=False, *,\n"
|
||||||
|
" autocommit=sqlite3.LEGACY_TRANSACTION_CONTROL)\n"
|
||||||
|
"--\n"
|
||||||
|
"\n"
|
||||||
|
"Open a connection to the SQLite database file \'database\'.\n"
|
||||||
|
"\n"
|
||||||
|
"You can use \":memory:\" to open a database connection to a database that\n"
|
||||||
|
"resides in RAM instead of on disk.");
|
||||||
|
|
||||||
|
#define PYSQLITE_CONNECT_METHODDEF \
|
||||||
|
{"connect", _PyCFunction_CAST(pysqlite_connect), METH_FASTCALL|METH_KEYWORDS, pysqlite_connect__doc__},
|
||||||
|
/*[clinic end generated code: output=6a8458c9edf8fb7f input=a9049054013a1b77]*/
|
|
@ -212,7 +212,6 @@ class sqlite3_int64_converter(CConverter):
|
||||||
[python start generated code]*/
|
[python start generated code]*/
|
||||||
/*[python end generated code: output=da39a3ee5e6b4b0d input=dff8760fb1eba6a1]*/
|
/*[python end generated code: output=da39a3ee5e6b4b0d input=dff8760fb1eba6a1]*/
|
||||||
|
|
||||||
// NB: This needs to be in sync with the sqlite3.connect docstring
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
_sqlite3.Connection.__init__ as pysqlite_connection_init
|
_sqlite3.Connection.__init__ as pysqlite_connection_init
|
||||||
|
|
||||||
|
@ -346,6 +345,34 @@ error:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*[clinic input]
|
||||||
|
# Create a new destination 'connect' for the docstring and methoddef only.
|
||||||
|
# This makes it possible to keep the signatures for Connection.__init__ and
|
||||||
|
# sqlite3.connect() synchronised.
|
||||||
|
output push
|
||||||
|
destination connect new file '{dirname}/clinic/_sqlite3.connect.c.h'
|
||||||
|
|
||||||
|
# Only output the docstring and the PyMethodDef entry.
|
||||||
|
output everything suppress
|
||||||
|
output docstring_definition connect
|
||||||
|
output methoddef_define connect
|
||||||
|
|
||||||
|
# Define the sqlite3.connect function by cloning Connection.__init__.
|
||||||
|
_sqlite3.connect as pysqlite_connect = _sqlite3.Connection.__init__
|
||||||
|
|
||||||
|
Open a connection to the SQLite database file 'database'.
|
||||||
|
|
||||||
|
You can use ":memory:" to open a database connection to a database that
|
||||||
|
resides in RAM instead of on disk.
|
||||||
|
[clinic start generated code]*/
|
||||||
|
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=92260edff95d1720]*/
|
||||||
|
|
||||||
|
/*[clinic input]
|
||||||
|
# Restore normal Argument Clinic operation for the rest of this file.
|
||||||
|
output pop
|
||||||
|
[clinic start generated code]*/
|
||||||
|
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=b899ba9273edcce7]*/
|
||||||
|
|
||||||
#define VISIT_CALLBACK_CONTEXT(ctx) \
|
#define VISIT_CALLBACK_CONTEXT(ctx) \
|
||||||
do { \
|
do { \
|
||||||
if (ctx) { \
|
if (ctx) { \
|
||||||
|
|
|
@ -48,25 +48,16 @@ module _sqlite3
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=81e330492d57488e]*/
|
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=81e330492d57488e]*/
|
||||||
|
|
||||||
// NB: This needs to be in sync with the Connection.__init__ docstring.
|
/*
|
||||||
PyDoc_STRVAR(module_connect_doc,
|
* We create 'clinic/_sqlite3.connect.c.h' in connection.c, in order to
|
||||||
"connect($module, /, database, timeout=5.0, detect_types=0,\n"
|
* keep the signatures of sqlite3.Connection.__init__ and
|
||||||
" isolation_level='', check_same_thread=True,\n"
|
* sqlite3.connect() synchronised.
|
||||||
" factory=ConnectionType, cached_statements=128, uri=False, *,\n"
|
*/
|
||||||
" autocommit=sqlite3.LEGACY_TRANSACTION_CONTROL)\n"
|
#include "clinic/_sqlite3.connect.c.h"
|
||||||
"--\n"
|
|
||||||
"\n"
|
|
||||||
"Opens a connection to the SQLite database file database.\n"
|
|
||||||
"\n"
|
|
||||||
"You can use \":memory:\" to open a database connection to a database that resides\n"
|
|
||||||
"in RAM instead of on disk.");
|
|
||||||
|
|
||||||
#define PYSQLITE_CONNECT_METHODDEF \
|
|
||||||
{"connect", _PyCFunction_CAST(module_connect), METH_FASTCALL|METH_KEYWORDS, module_connect_doc},
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
module_connect(PyObject *module, PyObject *const *args, Py_ssize_t nargsf,
|
pysqlite_connect(PyObject *module, PyObject *const *args, Py_ssize_t nargsf,
|
||||||
PyObject *kwnames)
|
PyObject *kwnames)
|
||||||
{
|
{
|
||||||
pysqlite_state *state = pysqlite_get_state(module);
|
pysqlite_state *state = pysqlite_get_state(module);
|
||||||
PyObject *factory = (PyObject *)state->ConnectionType;
|
PyObject *factory = (PyObject *)state->ConnectionType;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue