APSW 3.6.19-r1 released (Another Python SQLite Wrapper)

Roger Binns rogerb at rogerbinns.com
Sat Oct 17 06:53:19 CEST 2009

Hash: SHA1

APSW 3.6.19-r1 is now available. The home page is at
http://code.google.com/p/apsw/ which includes full documentation, source
and binary distributions for Windows (Python 2.3 onwards including 3.0 &

APSW is a wrapper around SQLite that provides all SQLite API
functionality in Python.  It is not DBAPI compliant as it provides
SQLite semantics.  pysqlite provides DBAPI semantics.  You can see the
two approaches contrasted at

Changelist is below and a clickable version at

Backwards incompatible change: Fixed issue 72 where APSW wasn’t zero basing
virtual table BestIndex() constraints returned as documented. If you have
working BestIndex code then you need to update it for this release. Thanks
to Lefteris for finding this issue.

Backwards incompatible change: The complete() method has moved from
Connection to apsw where it should have been all along. You should now call
apsw.complete() instead. (It even had an example showing it to be part of
the module and not a specific connection!)

There is now an interactive shell very similar to that provided by SQLite.
You can embed it in your own program, inherit from it to provide more
commands and output modes, or just run it like this:

  $ python -c "import apsw ; apsw.main()"


The setup.py file now has the various options available made applicable to
appropriate commands only. Read the updated documentation.

You can now specify build --enable=stat2 to setup.py to enable advanced
statistics gathering for query planning.

setup.py can automatically fetch the Asynchronous VFS extension for you. If
the source is present when APSW is built then it will be automatically
included and the API provided.

A fork_checker() is available which turns on detection when you have used
SQLite objects across a fork (a very bad thing). This is possible on Unix
like operating systems, especially if you use the multiprocessing module.

Extension loading is now compiled in by default when using the amalgamation
and compiled out when using existing libraries. This is more likely to match
your machine. You can use --omit=load_extension or --enable=load_extension
to the build/build_ext commands to explicitly disable/enable extension
loading. (Issue 67).

setup.py will now abort on a download that has no checksum. See more
information on checksums in the documentation.

setup.py can also fetch the version of SQLite currently under development
before a release. Use --version=fossil.

Updated which code uses experimental SQLite APIs based on changes in SQLite.
The test suite will also work correctly with experimental on or off. (It is
on by default.)

Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


More information about the Python-announce-list mailing list