web/lib/django/conf/urls/defaults.py
changeset 0 0d40e90630ef
equal deleted inserted replaced
-1:000000000000 0:0d40e90630ef
       
     1 from django.core.urlresolvers import RegexURLPattern, RegexURLResolver
       
     2 from django.core.exceptions import ImproperlyConfigured
       
     3 
       
     4 __all__ = ['handler404', 'handler500', 'include', 'patterns', 'url']
       
     5 
       
     6 handler404 = 'django.views.defaults.page_not_found'
       
     7 handler500 = 'django.views.defaults.server_error'
       
     8 
       
     9 def include(arg, namespace=None, app_name=None):
       
    10     if isinstance(arg, tuple):
       
    11         # callable returning a namespace hint
       
    12         if namespace:
       
    13             raise ImproperlyConfigured('Cannot override the namespace for a dynamic module that provides a namespace')
       
    14         urlconf_module, app_name, namespace = arg
       
    15     else:
       
    16         # No namespace hint - use manually provided namespace
       
    17         urlconf_module = arg
       
    18     return (urlconf_module, app_name, namespace)
       
    19 
       
    20 def patterns(prefix, *args):
       
    21     pattern_list = []
       
    22     for t in args:
       
    23         if isinstance(t, (list, tuple)):
       
    24             t = url(prefix=prefix, *t)
       
    25         elif isinstance(t, RegexURLPattern):
       
    26             t.add_prefix(prefix)
       
    27         pattern_list.append(t)
       
    28     return pattern_list
       
    29 
       
    30 def url(regex, view, kwargs=None, name=None, prefix=''):
       
    31     if isinstance(view, (list,tuple)):
       
    32         # For include(...) processing.
       
    33         urlconf_module, app_name, namespace = view
       
    34         return RegexURLResolver(regex, urlconf_module, kwargs, app_name=app_name, namespace=namespace)
       
    35     else:
       
    36         if isinstance(view, basestring):
       
    37             if not view:
       
    38                 raise ImproperlyConfigured('Empty URL pattern view name not permitted (for pattern %r)' % regex)
       
    39             if prefix:
       
    40                 view = prefix + '.' + view
       
    41         return RegexURLPattern(regex, view, kwargs, name)
       
    42