Cork 0.1
I showed off Cork to a few people at PyCon and got really good feedback and ideas. I've committed some improvements since then; here's a progress update. If what follows doesn't make much sense, I encourage you to have a look at some sample code, you might like what you see.
KISS
First of all, the people who saw it encouraged me to keep Cork simple, so the core is going to be minimal: a couple of extensions to pyyaml (mostly to extract Python methods from a note file), repository logic (which boils down to walking the filesystem, at least for now) and a thin WSGI publisher (which dispatches requests, mapping URL paths to repository paths). Everything else belongs in...
The library
Each repository has a virtual /_lib_ folder which contains library notes. I say "virtual" because they don't actually exist in the filesystem, but they look like notes when fetched from a repository. User code can inherit from these notes, or call methods directly. The current implementation is not practically extensible (you can't easily write an extension library yet), that will come later, in fact the only existing note in the /_lib_ namespace is /_lib_/cork/web (see the last example in docs/wsgi.txt).
Repository traversal
Another big improvement is the way repositories find notes. Subfolders in repositories are now CorkRepo objects themselves; this will make it easy to properly implemet the /_lib_ folder and non-filesystem note containers (SQLite or ZODB anyone?). No caching whatsoever is done yet; whenever you ask for a note, the repository code will walk the filesystem and parse the file and give you a new CorkNote object. It's sub-optimal, but this feature can wait.
v0.1
So this is a good time to release Cork 0.1; it's up in the cheeseshop, packaged with distutils, working out of the box on Python 2.5 and 2.6. The code is on github.
