web/lib/django/conf/urls/defaults.py
changeset 0 0d40e90630ef
--- /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)
+