Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Taking some of the pain out of Python's DB-API
Python
tag: v0.1.2

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
docs
examples
tests
.coveragerc
.gitignore
.travis.yml
LICENSE
MANIFEST.in
README
README.rst
dbkit.py
notes.rst
requirements-dev.txt
setup.cfg
setup.py
tox.ini

README.rst

dbkit

Author: Keith Gaughan (http://stereochro.me)
Repo: https://github.com/kgaughan/dbkit
Documentation: http://dbkit.readthedocs.org/

dbkit is a library that abstracts away at least part of the pain involved in dealing with DB-API 2 compatible database drivers.

https://secure.travis-ci.org/kgaughan/dbkit.png?branch=master
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)

Overview

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:

  • Rather than passing around database connections, statements are executed within a database context, thus helping to decouple modules that interface with the database from the database itself and its connection details.
  • Database contexts contain references to the exceptions exposed by the database driver, thus decoupling exception handling from the database driver.
  • Easier to use transaction handling.
  • Easier iteration over resultsets.
  • Connection pooling. In addition, any code using pooled connections has no need to know connection pooling is in place.
  • Query logging.

Non-aims:

  • Abstraction of SQL statements. The idea is to get rid of the more annoying but necessary boilerplate code involved in dealing with DB-API 2 drivers, not to totally abstract away SQL itself.
Something went wrong with that request. Please try again.