diff -r 000000000000 -r 0d40e90630ef web/lib/django/conf/urls/defaults.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/django/conf/urls/defaults.py Wed Jan 20 00:34:04 2010 +0100 @@ -0,0 +1,42 @@ +from django.core.urlresolvers import RegexURLPattern, RegexURLResolver +from django.core.exceptions import ImproperlyConfigured + +__all__ = ['handler404', 'handler500', 'include', 'patterns', 'url'] + +handler404 = 'django.views.defaults.page_not_found' +handler500 = 'django.views.defaults.server_error' + +def include(arg, namespace=None, app_name=None): + if isinstance(arg, tuple): + # callable returning a namespace hint + if namespace: + raise ImproperlyConfigured('Cannot override the namespace for a dynamic module that provides a namespace') + urlconf_module, app_name, namespace = arg + else: + # No namespace hint - use manually provided namespace + urlconf_module = arg + return (urlconf_module, app_name, namespace) + +def patterns(prefix, *args): + pattern_list = [] + for t in args: + if isinstance(t, (list, tuple)): + t = url(prefix=prefix, *t) + elif isinstance(t, RegexURLPattern): + t.add_prefix(prefix) + pattern_list.append(t) + return pattern_list + +def url(regex, view, kwargs=None, name=None, prefix=''): + if isinstance(view, (list,tuple)): + # For include(...) processing. + urlconf_module, app_name, namespace = view + return RegexURLResolver(regex, urlconf_module, kwargs, app_name=app_name, namespace=namespace) + else: + if isinstance(view, basestring): + if not view: + raise ImproperlyConfigured('Empty URL pattern view name not permitted (for pattern %r)' % regex) + if prefix: + view = prefix + '.' + view + return RegexURLPattern(regex, view, kwargs, name) +