sqlite3 + расширения в Python

Подключить расширение для SQLite с помощью стандартного модуля sqlite3 довольно просто. Скачиваете файл, вызываете пару функций, и готово. Если только вам не повезло использовать macOS, в который sqlite3 не поддерживает расширения.

Мне хотелось еще упростить процесс (и заодно решить проблему с макосью). Поэтому я создал пакет sqlean.py: полностью совместимую замену стандартному sqlite3, которая заодно включает полезные расширения.

Расширения

Установка и использование

Установите пакет через pip install:

pip install sqlean.py

И используйте вместо sqlite3:

import sqlean as sqlite3

# такой же интерфейс, как в стандартном `sqlite3`
conn = sqlite3.connect(":memory:")
conn.execute("create table employees(id, name)")

# плюс сразу подключены расширения из `sqlean`
cur = conn.execute("select median(value) from generate_series(1, 99)")
print(cur.fetchone())
# (50.0,)

conn.close()

Обратите внимание: пакет называется sqlean.py, а в импортах просто sqlean. Имя пакета sqlean было уже занято каким-то зомби-проектом, так что мне пришлось добавить суффикс .py.

Расширения

sqlean.py включает 12 расширений для SQLite:

  • crypto: хеш-функции, кодирование и декодирование.
  • define: пользовательские функции и динамический SQL.
  • fileio: чтение и запись файлов.
  • fuzzy: нечеткое сравнение строк и фонетические алгоритмы.
  • ipaddr: работа с IP-адресами.
  • math: математические функции.
  • regexp: регулярные выражения.
  • stats: математическая статистика.
  • text: работа со строками.
  • unicode: поддержка юникода.
  • uuid: уникальные идентификаторы.
  • vsv: работа с CSV-файлами.

Платформы

Пакет доступен для следующих операционных систем:

  • Windows (64 бита)
  • Linux (64 бита)
  • macOS (процессоры Intel или Apple)

Если у вас другая ОС — можно собрать из исходников.

Подробности в репозитории пакета.

Подписывайтесь на канал, чтобы не пропустить новые заметки 🚀