Introduce dynamic scope_path regexps
Instead of relying on scope_path's being "one slash deep", we should
instead allow for either:
1. scope_paths that have a pre-defined depth
2. scope_paths that can be arbitrarily deep
We achieve 1 by setting an entities scope_logic to another logic
module. We then recursively call getScopeDepth until we get to the
topmost entity (that is, an unscoped entity).
A little different is the solution to 2, since some entities can have
an arbitrarily deep scope (such as Documents), we need to have some
way of signaling this to getScopePattern. A clean solution is to
return None, rather than a number. If None is returned, the
SCOPE_PATH_ARG_PATTERN is returned as regexp instead, which will
match an arbitrarily deeply nested scope.
The solution for 2 requires that we return None somewhere in the
scope_logic chain, the most straight forward method to do so is to
override getScopeDepth anywhere such a scope is needed and make it
return None. A more elegant solution however, is to set the
scope_logic to that module in all entities that require it.
Patch by: Sverre Rabbelier
[pudge]
highlighter = pygments
title = WebOb
dest = docs/html
docs = docs/index.txt docs/license.txt docs/differences.txt docs/file-example.txt
docs/news.txt docs/reference.txt docs/comment-example.txt
docs/wiki-example.txt
settings = no_about=true
link1=/ paste
link2=/news.html news
link3=http://pypi.python.org/pypi/WebOb/ download
extra_credits=Hosting courtesy of <a href="http://www.tummy.com">Tummy.com</a>
modules = webob
webob.acceptparse
webob.byterange
webob.cachecontrol
webob.datastruct
webob.etag
webob.exc
webob.headerdict
webob.multidict
webob.statusreasons
webob.updatedict
webob.util
webob.util.safegzip
doc_base = docs/
theme = pythonpaste.org
mailing_list_url = /community/mailing-list.html
organization = Python Paste
organization_url = http://pythonpaste.org/
trac_url = http://trac.pythonpaste.org/
[global]
command_packages = buildutils.pudge_command, buildutils.publish_command
[egg_info]
tag_build =
tag_date = 0
tag_svn_revision = 0
[publish]
doc-dest = scp://ianb@webwareforpython.org/home/paste/htdocs/webob/
make-dirs = 1
doc-dir = docs/html
[aliases]
distribute = register sdist bdist_egg upload pudge publish