Skip to content

Commit b568c2c

Browse files
gh-118406: Add signature for sqlite3.Connection objects (#118428)
1 parent 19d468a commit b568c2c

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

Lib/test/test_sqlite3/test_dbapi.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,11 @@ def test_connection_resource_warning(self):
590590
del cx
591591
gc_collect()
592592

593+
def test_connection_signature(self):
594+
from inspect import signature
595+
sig = signature(self.cx)
596+
self.assertEqual(str(sig), "(sql, /)")
597+
593598

594599
class UninitialisedConnectionTests(unittest.TestCase):
595600
def setUp(self):
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add signature for :class:`sqlite3.Connection` objects.

Modules/_sqlite/connection.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2561,6 +2561,12 @@ set_autocommit(pysqlite_Connection *self, PyObject *val, void *Py_UNUSED(ctx))
25612561
return 0;
25622562
}
25632563

2564+
static PyObject *
2565+
get_sig(PyObject *self, void *Py_UNUSED(ctx))
2566+
{
2567+
return PyUnicode_FromString("(sql, /)");
2568+
}
2569+
25642570

25652571
static const char connection_doc[] =
25662572
PyDoc_STR("SQLite database connection object.");
@@ -2570,6 +2576,7 @@ static PyGetSetDef connection_getset[] = {
25702576
{"total_changes", (getter)pysqlite_connection_get_total_changes, (setter)0},
25712577
{"in_transaction", (getter)pysqlite_connection_get_in_transaction, (setter)0},
25722578
{"autocommit", (getter)get_autocommit, (setter)set_autocommit},
2579+
{"__text_signature__", get_sig, (setter)0},
25732580
{NULL}
25742581
};
25752582

0 commit comments

Comments
 (0)