sqlean-py 3.50.4.5


pip install sqlean-py

  Latest version

Released: Oct 25, 2025

Project Links

Meta
Author: Anton Zhiyanov
Requires Python: >=3.9

Classifiers

Development Status
  • 4 - Beta

Intended Audience
  • Developers

Operating System
  • MacOS :: MacOS X
  • POSIX

Programming Language
  • C
  • Python

Topic
  • Database :: Database Engines/Servers
  • Software Development :: Libraries :: Python Modules

sqlean.py

This package provides an SQLite Python wrapper bundled with sqlean extensions. It's a drop-in replacement for the standard library's sqlite3 module.

pip install sqlean.py
import sqlean

# enable all extensions
sqlean.extensions.enable_all()

# has the same API as the default sqlite3 module
conn = sqlean.connect(":memory:")
conn.execute("create table employees(id, name)")

# and comes with sqlean extensions
cur = conn.execute("select median(value) from generate_series(1, 99)")
print(cur.fetchone())
# (50.0,)

conn.close()

Extensions

sqlean.py contains 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
  • regexp: Regular expressions
  • stats: Math statistics
  • text: String functions
  • time: High-precision date/time
  • uuid: Universally Unique IDentifiers
  • vsv: CSV files as virtual tables

Installation

pip install sqlean.py

Note that the package name is sqlean.py, while the code imports are just sqlean. The sqlean package name was taken by some zomby project and the author seemed to be unavailable, so I had to add the .py suffix.

A binary package (wheel) is available for the following operating systems:

  • Linux (x86_64/aarch64)
  • macOS (x86_64/arm64)

Unfortunately, there are no wheels available for Windows.

Usage

All extensions are disabled by default. You can still use sqlean as a drop-in replacement for sqlite3:

import sqlean as sqlite3

conn = sqlite3.connect(":memory:")
cur = conn.execute("select 'sql is awesome'")
print(cur.fetchone())
conn.close()

To enable all extensions, call sqlean.extensions.enable_all() before calling connect():

import sqlean

sqlean.extensions.enable_all()

conn = sqlean.connect(":memory:")
cur = conn.execute("select median(value) from generate_series(1, 99)")
print(cur.fetchone())
conn.close()

To enable specific extensions, call sqlean.extensions.enable():

import sqlean

sqlean.extensions.enable("stats", "text")

conn = sqlean.connect(":memory:")
cur = conn.execute("select median(value) from generate_series(1, 99)")
print(cur.fetchone())
conn.close()

Building from source

Prepare source files:

make prepare-src
make download-sqlite
make download-sqlean

Build and test the package:

make clean build

Credits

Based on the pysqlite3 project. Available under the Zlib license.

Support

The package is provided as-is. If you need a version for Windows or another operating system, please build it yourself — I don't have the capacity to deal with it.

Wheel compatibility matrix

Platform CPython 3.10 CPython 3.11 CPython 3.12 CPython 3.13 CPython 3.14
macosx_10_15_x86_64
macosx_11_0_arm64
manylinux_2_28_aarch64
manylinux_2_28_x86_64

Files in release

No dependencies