lib/dicts.py: added pair_keys(), pair_values()
moved everything into /trunk/ to create the standard svn layout, for use with tools that require this (eg. git-svn). IMPORTANT: do NOT do an `svn up`. instead, re-use your working copy's existing files with `svn switch` (http://svnbook.red-bean.com/en/1.6/svn.ref.svn.c.switch.html).
dicts.py: Added WrapDict, a dict that runs a function on each value retrieved
dicts.py: DictProxy: Implemented delitem()
dicts.py: join(): Added support for unhashable types, which are passed through. This adds support for SQL literal values which are dicts (hstores).
dicts.py: DictProxy: Fixed bug where default value for inner param needed to be created in the constructor, or else every default instance would use and modify the same dictionary
dicts.py: Added OnceOnlyDict and helper exception KeyExistsError
dicts.py: DictProxy: Added default value for inner param to facilitate creating empty wrapped dicts
dicts.py: Import util after items that util depends on have been defined, to avoid unsatisfied circular dependency
dicts.py: Added IdCompared
dicts.py: is_dict(): Fixed bug where lists also have getitem() methods, so keys() was checked for instead
dicts.py: Added DictProxy
dicts.py: Added is_dict()
dicts.py: Added join()
dicts.py: Added AttrsDictView
dicts.py: Added make_hashable()
dicts.py: Turned id_dict() factory function into IdDict class. parallel.py: MultiProducerPool: Added share_vars(). main_loop(): Only consider the program to be done if the queue is empty and there are no running tasks.
Added dicts.py with id_dict() and MergeDict