Adding SQLite extensions with Python's
sqlite3 module is a breeze. Download a file, call a few functions, and you are good to go. Unless you try to do it on macOS, where
sqlite3 is compiled without extension support.
I wanted to make the process even easier (and of course solve the macOS problem). So I created the
sqlean.py package: a drop-in replacement for the standard library's
sqlite3 module, bundled with the essential extensions.
Installation and usage
All you need to do is
pip install the package:
pip install sqlean.py
And use it just like you'd use
import sqlean as sqlite3 # has the same API as the default `sqlite3` module conn = sqlite3.connect(":memory:") conn.execute("create table employees(id, name)") # and comes with the `sqlean` extensions cur = conn.execute("select median(value) from generate_series(1, 99)") print(cur.fetchone()) # (50.0,) conn.close()
Note that the package name is
sqlean.py, while the code imports are just
sqlean package name was taken by some zomby project and the author seemed to be unavailable, so I had to add the
sqlean.py contains 12 essential SQLite extensions:
- crypto: Hashing, encoding and decoding data
- define: User-defined functions and dynamic SQL
- fileio: Reading and writing files
- fuzzy: Fuzzy string matching and phonetics
- ipaddr: IP address manipulation
- math: Math functions
- regexp: Regular expressions
- stats: Math statistics
- text: Advanced string functions
- unicode: Unicode support
- uuid: Universally Unique IDentifiers
- vsv: CSV files as virtual tables
The package is available for the following operating systems:
- Windows (64-bit)
- Linux (64-bit)
- macOS (both Intel and Apple processors)
You can also compile it from source if necessary.
See the package repo for details.
Subscribe to keep up with new posts.