Note
Like dbkit itself, this documentation is a work in progress. Unlike dbkit, it is nowhere near complete yet. Bear with me.
dbkit is intended to be used in circumstances where it is impractical or overkill to use an ORM such as SQLObject or SQLAlchemy, but it would be useful to at least abstract away some of the pain involved in dealing with the database.
Features:
Non-aims:
Need a “Hello, World!” example? Here’s how you’d set up a connection context, query a database table, and print out its contents with dbkit:
from dbkit import connect, query
from contextlib import closing
import sqlite3
with connect(sqlite3, 'counters.db') as ctx, closing(ctx):
for counter, value in query('SELECT counter, value FROM counters'):
print "%s: %d" % (counter, value)
And here’s how you’d so it with a DB-API 2 (using just PEP 249, no driver-specific extensions):
import sqlite3
from contextlib import closing
with closing(sqlite3.connect('counters.db')) as conn:
with closing(conn.cursor()) as cur:
cur.execute('SELECT counter, value FROM counters')
while True:
row = cur.fetchone()
if row is None:
break
print "%s: %d" % row
The latest development version can be found in the dbkit Git repository:
git clone https://github.com/kgaughan/dbkit
The project has yet to be submitted to PyPI, but I’m hoping to do that as soon as I’m happy with the documentation. To build a source package for installation and subsequently install it, do:
python setup.py sdist
pip install dist/dbkit-0.1.0.tar.gz
Alternatively, you can install it directly, bypassing package creation:
python setup.py install
dbkit will work with Python 2.5, 2.6, and 2.7 without issue. It appears to have some minor issues with PyPy, but it ought to work fine. It’s not yet compatible with Python 3.
dbkit has no dependencies other than requiring a database driver.