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)
Если у вас другая ОС — можно собрать из исходников.
Подробности в репозитории пакета.
★ Подписывайтесь на новые заметки.