From: Aviv Palivoda Date: Thu, 9 May 2019 18:05:45 +0000 (+0300) Subject: bpo-30262: Don't expose private objects in sqlite3 (GH-1440) X-Git-Tag: v3.8.0b1~430 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e6576248e5174ca5daa362cfd610c07e7eb3a2ae;p=python bpo-30262: Don't expose private objects in sqlite3 (GH-1440) The Cache and Statement objects are undocumented and implementation details of the sqlite3 module. They aren't usable from pure Python code. --- diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst index d21a4c7944..49a6cb0788 100644 --- a/Doc/whatsnew/3.8.rst +++ b/Doc/whatsnew/3.8.rst @@ -796,6 +796,10 @@ The following features and APIs have been removed from Python 3.8: * "unicode_internal" codec is removed. (Contributed by Inada Naoki in :issue:`36297`.) +* The ``Cache`` and ``Statement`` objects of the :mod:`sqlite3` module are not + exposed to the user. + (Contributed by Aviv Palivoda in :issue:`30262`.) + Porting to Python 3.8 ===================== diff --git a/Misc/NEWS.d/next/Library/2019-05-09-12-38-40.bpo-30262.Tu74ak.rst b/Misc/NEWS.d/next/Library/2019-05-09-12-38-40.bpo-30262.Tu74ak.rst new file mode 100644 index 0000000000..059bd71783 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2019-05-09-12-38-40.bpo-30262.Tu74ak.rst @@ -0,0 +1,2 @@ +The ``Cache`` and ``Statement`` objects of the :mod:`sqlite3` module are not +exposed to the user. Patch by Aviv Palivoda. diff --git a/Modules/_sqlite/module.c b/Modules/_sqlite/module.c index 274ee13c37..c487ba9890 100644 --- a/Modules/_sqlite/module.c +++ b/Modules/_sqlite/module.c @@ -366,10 +366,6 @@ PyMODINIT_FUNC PyInit__sqlite3(void) PyModule_AddObject(module, "Connection", (PyObject*) &pysqlite_ConnectionType); Py_INCREF(&pysqlite_CursorType); PyModule_AddObject(module, "Cursor", (PyObject*) &pysqlite_CursorType); - Py_INCREF(&pysqlite_CacheType); - PyModule_AddObject(module, "Statement", (PyObject*)&pysqlite_StatementType); - Py_INCREF(&pysqlite_StatementType); - PyModule_AddObject(module, "Cache", (PyObject*) &pysqlite_CacheType); Py_INCREF(&pysqlite_PrepareProtocolType); PyModule_AddObject(module, "PrepareProtocol", (PyObject*) &pysqlite_PrepareProtocolType); Py_INCREF(&pysqlite_RowType);