Skip to content

sqlite3: remove features deprecated in 3.10 #92547

Description

@erlend-aasland

The following sqlite3 features were deprecated in Python 3.10, and are scheduled for removal in Python 3.12:

3.12 development was just opened, so these features can now be removed.

Linked PRs

Activity

  1. added a commit that references this issue on May 9, 2022
  2. JelleZijlstra commented on May 9, 2022

    @JelleZijlstra
    Member

    Could you check whether any major open-source repos use these (using @vstinner's scripts)? If so, it's going to be better to fix the third-party dependencies first.

  3. erlend-aasland commented on May 9, 2022

    @erlend-aasland
    ContributorAuthor

    Certainly!

  4. vstinner commented on May 9, 2022

    @vstinner
    Member

    Results of ./search_pypi_top.py PYPI-2022-01-26-TOP-5000 'OptimizedUnicode|enable_shared_cache' -o sqlite -q if I ignore all .pyi files (type annotation):

    nltk-3.6.7.zip: nltk-3.6.7/nltk/sem/relextract.py: connection.text_factory = sqlite3.OptimizedUnicode
    
    pylint-2.12.2.tar.gz: pylint-2.12.2/pylint/checkers/stdlib.py: "sqlite3.OptimizedUnicode",
    pylint-2.12.2.tar.gz: pylint-2.12.2/pylint/checkers/stdlib.py: "_sqlite3.enable_shared_cache",
    
    peewee-3.14.8.tar.gz: peewee-3.14.8/playhouse/_pysqlite/connection.h: * - OptimizedUnicode:      Like before, but for ASCII data, only PyStrings are created.
    peewee-3.14.8.tar.gz: peewee-3.14.8/playhouse/_pysqlite/module.h: extern PyObject* pysqlite_OptimizedUnicode;
    
    pysqlite3-0.4.6.tar.gz: pysqlite3-0.4.6/src/module.c: static PyObject* module_enable_shared_cache(PyObject* self, PyObject* args, PyObject*
    pysqlite3-0.4.6.tar.gz: pysqlite3-0.4.6/src/module.c: rc = sqlite3_enable_shared_cache(do_enable);
    pysqlite3-0.4.6.tar.gz: pysqlite3-0.4.6/src/module.c: PyDoc_STRVAR(module_enable_shared_cache_doc,
    pysqlite3-0.4.6.tar.gz: pysqlite3-0.4.6/src/module.c: "enable_shared_cache(do_enable)\n\
    pysqlite3-0.4.6.tar.gz: pysqlite3-0.4.6/src/module.c: {"enable_shared_cache",  (PyCFunction)(void(*)(void))module_enable_shared_cache,
    pysqlite3-0.4.6.tar.gz: pysqlite3-0.4.6/src/module.c: METH_VARARGS | METH_KEYWORDS, module_enable_shared_cache_doc},
    pysqlite3-0.4.6.tar.gz: pysqlite3-0.4.6/src/module.c: OptimizedUnicode caused Unicode objects to be returned for
    pysqlite3-0.4.6.tar.gz: pysqlite3-0.4.6/src/module.c: Now OptimizedUnicode is an alias for str, so it has no
    pysqlite3-0.4.6.tar.gz: pysqlite3-0.4.6/src/module.c: PyDict_SetItemString(dict, "OptimizedUnicode", (PyObject*)&PyUnicode_Type);
    

    nltk seems to be impacted by the removal of sqlite3.OptimizedUnicode:
    https://github.com/nltk/nltk/blob/de46911d9ca248c2c6ce95518cd25e3c277208d7/nltk/sem/relextract.py#L322

  5. vstinner commented on May 9, 2022

    @vstinner
    Member

    pylint-2.12.2/pylint/checkers/stdlib.py is a list of the deprecated functions:
    https://github.com/PyCQA/pylint/blob/afa6853b57c8c14970e460ca2651d4157751ad1d/pylint/checkers/stdlib.py#L164

  6. added a commit that references this issue on May 10, 2022
  7. added a commit that references this issue on May 16, 2022
  8. erlend-aasland commented on May 16, 2022

    @erlend-aasland
    ContributorAuthor

    Resolved by #92548

  9. added 2 commits that reference this issue on Jun 15, 2022
  10. hugovk commented on Feb 12, 2023

    @hugovk
    Member

    @erlend-aasland There's some enable_shared_cache things in configure and configure.ac:

    $ rg enable_shared_cache configure*
    configure.ac
    3870:      PY_CHECK_SQLITE_FUNC([sqlite3_enable_shared_cache])
    
    configure
    13692:  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_enable_shared_cache in -lsqlite3" >&5
    13693:$as_echo_n "checking for sqlite3_enable_shared_cache in -lsqlite3... " >&6; }
    13694:if ${ac_cv_lib_sqlite3_sqlite3_enable_shared_cache+:} false; then :
    13708:char sqlite3_enable_shared_cache ();
    13712:return sqlite3_enable_shared_cache ();
    13718:  ac_cv_lib_sqlite3_sqlite3_enable_shared_cache=yes
    13720:  ac_cv_lib_sqlite3_sqlite3_enable_shared_cache=no
    13726:{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" >&5
    13727:$as_echo "$ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" >&6; }
    13728:if test "x$ac_cv_lib_sqlite3_sqlite3_enable_shared_cache" = xyes; then :

    Should they be cleaned up as well?

  11. erlend-aasland commented on Feb 12, 2023

    @erlend-aasland
    ContributorAuthor

    Oh, good call @hugovk. Yes, definitely. Are you up for a PR? If not, I'll do it.

  12. hugovk commented on Feb 13, 2023

    @hugovk
    Member

    Please go ahead, thanks!

  13. added a commit that references this issue on Feb 13, 2023
  14. added a commit that references this issue on Feb 13, 2023
  15. added a commit that references this issue on Feb 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions