[Web-SIG] Announcing bobo
P.J. Eby
pje at telecommunity.com
Fri Jun 19 02:14:40 CEST 2009
At 02:46 AM 6/19/2009 +0300, Sergey Schetinin wrote:
>but wouldn't it be nice if we could finally just do
>things like
>
>from somebody_else.forum import ForumApp
>urlmap['/forum'] = ForumApp(db_config=...)
The Folder example in the bobo docs does basically that, actually.
I think perhaps you've misunderstood what Bobo does; it not only
provides a framework for fixed mappings, it also provides the basis
for doing flexible mappings. In fact, that's what subroute parameters are for.
So you could implement your urlmap above more or less like this:
@bobo.scan_class
class UrlMap(dict):
@bobo.subroute('/:name')
def subitem(self, name):
try:
return self[name]
except KeyError:
...
Although you'd probably need a __setitem__ that split on '/' and
created sub-UrlMap instances if they don't already exist, but you get
the idea I hope.
Bobo's basic design, IOW, allows you to make pretty much any other
design you like, but is very simple for relatively straightforward subtrees.
Also, AFAICT, *all* bobo paths are relative paths treating the
enclosing module or instance as a mount point, and there is nothing
stopping you from mounting such objects at whatever locations you like.
What bobo lacks (that would be nice) is a way to figure out what URL
to address a specified object by, since the very flexibility that
allows objects to have more than one name, also means that there is
no obvious way to find what name to use for an object.
More information about the Web-SIG
mailing list