jmoiron plays the blues

0c18c796 to iris update setup.py to have pymongo and lepl as dependencies
fcdf4024 to iris adding a query parser and shell interpreter to do queries against iris' collection
8f281a16 to iris add auto-version-numbering to iris/__init__ and setup.py
#18 to argot version 0.6, change url to bitbucket, add extras to `argot` script including auto-pygments styling to generated document
ce6e75f6 to iris change '--force' to '--yes' for flush (so iris flush -y now to flush), add '-c' to list to get a quick count of how many photos are in iris' db, implenet iris add -r (recursive), catch a bug in the exif parser for .THM files
dd895da8 to iris reorganize utils.py, add 'recursive_walk' function which presents us with a list of full paths given a list of paths that are to be recursively walked (perhaps a list of directories, or directories & files mixed)
94b06d84 to iris added --profiler and --timer to the generic options (mostly for development), but also added a --parallelize switch (which I might make default in the future) which seems to really improve performance: http://jmoiron.net/~jmoiron/multiproc.png
ed30b105 to iris fix list to use the a paged auto-classing query
3803279c to iris added flush command, moved OpenStruct back to inheriting from object to avoid pymongo bug, fix add command
81d957df to iris fix paging cursor to allow limits, sorts, skips of their own, independent of the internally managed values used for paging
676e9b35 to iris get a working paging cursor, mostly useful to keep 'sync' operations in a "constant" bound memory space despite the size of the image collection
f7272e94 to iris rename BulkUpdater -> BulkInsterter, as collection.update has some other connotations I don't want to overload
15b4dc63 to iris add new BulkUpdater backend class, which creates an updater that will intelligently mass-insert, to a threshold of 100 documents. even if they are all truly updates, it still saves N reads (N=threshold) per flush as normally these documents would have to be checked for existence in the collection manually by their unique value, but here it's done in one query