PageRenderTime 588ms CodeModel.GetById 91ms RepoModel.GetById 2ms app.codeStats 0ms

/django/conf/urls/defaults.py

https://code.google.com/p/mango-py/
Python | 42 lines | 35 code | 5 blank | 2 comment | 6 complexity | 7ce1c372eaac925667f42a7cac93fcd5 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. from django.core.urlresolvers import RegexURLPattern, RegexURLResolver
  2. from django.core.exceptions import ImproperlyConfigured
  3. __all__ = ['handler404', 'handler500', 'include', 'patterns', 'url']
  4. handler404 = 'django.views.defaults.page_not_found'
  5. handler500 = 'django.views.defaults.server_error'
  6. def include(arg, namespace=None, app_name=None):
  7. if isinstance(arg, tuple):
  8. # callable returning a namespace hint
  9. if namespace:
  10. raise ImproperlyConfigured('Cannot override the namespace for a dynamic module that provides a namespace')
  11. urlconf_module, app_name, namespace = arg
  12. else:
  13. # No namespace hint - use manually provided namespace
  14. urlconf_module = arg
  15. return (urlconf_module, app_name, namespace)
  16. def patterns(prefix, *args):
  17. pattern_list = []
  18. for t in args:
  19. if isinstance(t, (list, tuple)):
  20. t = url(prefix=prefix, *t)
  21. elif isinstance(t, RegexURLPattern):
  22. t.add_prefix(prefix)
  23. pattern_list.append(t)
  24. return pattern_list
  25. def url(regex, view, kwargs=None, name=None, prefix=''):
  26. if isinstance(view, (list,tuple)):
  27. # For include(...) processing.
  28. urlconf_module, app_name, namespace = view
  29. return RegexURLResolver(regex, urlconf_module, kwargs, app_name=app_name, namespace=namespace)
  30. else:
  31. if isinstance(view, basestring):
  32. if not view:
  33. raise ImproperlyConfigured('Empty URL pattern view name not permitted (for pattern %r)' % regex)
  34. if prefix:
  35. view = prefix + '.' + view
  36. return RegexURLPattern(regex, view, kwargs, name)