IndexedCatalog

Information

IndexedCatalog is an extension to the Zope Object Database (ZODB)
that provides indexing and allows queries for objects based on attributes.
Which is accomplished by indexing all fields by type (string/integer/float) and
by a simple query language.

IndexedCatalog is licensed under the Lesser GNU Public Licence (LGPL).

The IndexedCatalog does not require any additional extensions apart from
the ZODB, and it made for applications that use StandaloneZODB and not
Zope. It is completely untested with Zope at this time.

Features

Example

from IndexedCatalog import attr, Catalog, IndexedObject

# Define the Object, it must inheirit from
# (IndexedCatalog.)IndexedObject
#
# Also create a field (attr) of IntType
class Object(IndexedObject):
    _ic_options = [attr("attr", int)]

# Create a catalog, pass the class as argument to the
# constructor
catalog = Catalog(Object)

# Create 20 sample objects
for i in range(20):
    obj = catalog.new()
    obj.attr = i

# Do a simple query of all objects, that has
# attr higher or equal to 16
results = catalog.query('attr >= 16')
for result in results.sort('attr'):
    print result, result.attr

More examples (which also can be found in the distribution):

Contact

We now have a mailing list, for information about how to subscribe, go here. List archives can be found here.
There is also an irc channel #async on freenode. If you have any questions, feel free to join and we'll do our best to help you.

Reporting bugs

All bugs should go into Bugzilla.
Just make sure nobody has reported the bug before.

Download

The latest version is 0.6.0 (released 9 October). Download it from here.
For other formats, including zip and rpms, check out the dist/ directory

CVS Access

Check the instructions for retrieving modules from Async Open Source's CVS server. The relevant module name is IndexedCatalog

Valid HTML 4.01!