New submission from Erlend E. Aasland <erlend.aasl...@innova.no>:
Currently, the sqlite3.Statement type is not exposed in the module dict: >>> import sqlite3 >>> sqlite3.Statement Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/sqlite3/__init__.py", line 37, in __getattr__ raise AttributeError(f"module 'sqlite3' has no attribute '{name}'") AttributeError: module 'sqlite3' has no attribute 'Statement' It is possible to extract it using this trick: >>> cx = sqlite3.connect(":memory:") >>> stmt = cx("select 1") >>> type(stmt) <class 'sqlite3.Statement'> >>> type(stmt)() <sqlite3.Statement object at 0x109006b30> There is no use case for this; statement objects belong to the internal workings of the sqlite3 module. I suggest adding Py_TPFLAGS_DISALLOW_INSTANTIATION to make this fact more explicit. ---------- keywords: easy (C) messages: 393310 nosy: berker.peksag, erlendaasland, serhiy.storchaka priority: normal severity: normal status: open title: [sqlite3] consider adding Py_TPFLAGS_DISALLOW_INSTANTIATION to sqlite3.Statement type: enhancement _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue44087> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com