The MEMS Exchange released an update of the QP package.
A summary of the changes follows.
Version 1.5: 15 March 2006
Separate Publisher class by pushing the Durus-using methods into a
DurusPublisher subclass. This clears the path for using QP for
applications
that use other databases, and for those that use no database at
all.
Obtain "SitePublisher" from the module named "slash" in the site
directory instead of from the site package itself. The extra
redirection seemed pointless.
Obtain "SiteDirectory" from the module named "slash" in the site
directory instead of getting "SiteRootDirectory" from the site
package
itself. If you have an existing QP site, make sure that the root
directory class is qp.sites..slash.SiteDirectory .
Because some sites may not use Directory-based traversal at all,
the SiteDirectory is now optional.
Change the "hello" demo to show how to make an application that
does
not use any of the normal QP traversal or page generation patterns.
Change the "echo" demo to be a Durus-less QP application.
Store the global publisher in a dictionary by thread id. This
should
make it easier for people to experiment with using a QP
publisher in
a multi-threaded server.
Add a __call__ to the Publisher class so that a Publisher
instance can
act as a wsgi application. This should make it easier for
people to
try using a Publisher within a wsgi server. (Needs testing, though)
Make the core QP server class usable when passfd is not
available. The
server reverts to a non-forking mode, so the performance is
expected to
be lower. This should, however, make it possible for people to
use QP on
Windows machines. (Needs testing, though)