finds.dev← search

// the find

kennethreitz/records

★ 7,220 · Python · ISC · updated Feb 2026

SQL for Humans™

Records is a thin wrapper around SQLAlchemy that lets you run raw SQL and get back row objects you can access by name, index, or key. It's for people who want to write SQL themselves but not deal with SQLAlchemy's full machinery. The Tablib integration makes it convenient for data export workflows.

The API surface is genuinely minimal — one file, one class, and you're querying databases in three lines. Safe parameterization is built in via SQLAlchemy's bind params, so you're not rolling your own escaping. The Tablib integration is a real time-saver for the common 'run query, export to CSV/Excel/JSON' workflow. $DATABASE_URL support is a nice touch for twelve-factor apps.

The entire library is a single 400-line file last touched in bursts — maintenance is clearly not a priority, and kennethreitz projects historically go dormant. No async support at all, which is a hard blocker if you're on FastAPI or any async stack. The recommendation to use pipenv in 2026 is a red flag for project currency. Testing coverage is thin — four test files, mostly smoke tests — so edge cases in type handling or driver-specific behavior are on you.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →