X7ROOT File Manager
Current Path:
/opt/alt/python27/lib/python2.7/site-packages/raven/contrib/django
opt
/
alt
/
python27
/
lib
/
python2.7
/
site-packages
/
raven
/
contrib
/
django
/
??
..
??
__init__.py
(315 B)
??
__init__.pyc
(555 B)
??
apps.py
(308 B)
??
apps.pyc
(874 B)
??
celery
??
client.py
(10.13 KB)
??
client.pyc
(10.58 KB)
??
handlers.py
(1.01 KB)
??
handlers.pyc
(1.68 KB)
??
logging.py
(466 B)
??
logging.pyc
(720 B)
??
management
??
middleware
??
models.py
(9.19 KB)
??
models.pyc
(16.86 KB)
??
raven_compat
??
resolver.py
(2.84 KB)
??
resolver.pyc
(3.43 KB)
??
serializers.py
(2.12 KB)
??
serializers.pyc
(3.16 KB)
??
templatetags
??
urls.py
(594 B)
??
urls.pyc
(835 B)
??
utils.py
(3.1 KB)
??
utils.pyc
(3.06 KB)
??
views.py
(2.92 KB)
??
views.pyc
(3.53 KB)
Editing: utils.py
""" raven.contrib.django.utils ~~~~~~~~~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. """ from __future__ import absolute_import import os from django.conf import settings def linebreak_iter(template_source): yield 0 p = template_source.find('\n') while p >= 0: yield p + 1 p = template_source.find('\n', p + 1) yield len(template_source) + 1 def get_data_from_template(source, debug=None): def _remove_numbers(items): rv = [] for item in items: # Some debug info from django has tuples in the form (lineno, # code) instead of just the code there. if isinstance(item, (list, tuple)) and len(item) == 2: item = item[1] rv.append(item) return rv if debug is not None: lineno = debug['line'] filename = debug['name'] source_lines = [] source_lines += [''] * (debug['source_lines'][0][0]) for num, line in debug['source_lines']: source_lines.append(line) source_lines += [''] * 4 elif source: origin, (start, end) = source filename = culprit = getattr(origin, 'loadname', None) template_source = origin.reload() lineno = None upto = 0 source_lines = [] for num, next in enumerate(linebreak_iter(template_source)): if start >= upto and end <= next: lineno = num source_lines.append(template_source[upto:next]) upto = next if not source_lines or lineno is None: return {} else: raise TypeError('Source or debug needed') if filename is None: filename = '<unknown filename>' culprit = '<unknown filename>' else: culprit = filename.split('/templates/')[-1] pre_context = _remove_numbers(source_lines[max(lineno - 3, 0):lineno]) post_context = _remove_numbers(source_lines[(lineno + 1):(lineno + 4)]) context_line = _remove_numbers([source_lines[lineno]])[0] return { 'template': { 'filename': os.path.basename(filename), 'abs_path': filename, 'pre_context': pre_context, 'context_line': context_line, 'lineno': lineno, 'post_context': post_context, }, 'culprit': culprit, } def get_host(request): """ A reimplementation of Django's get_host, without the SuspiciousOperation check. """ # We try three options, in order of decreasing preference. if settings.USE_X_FORWARDED_HOST and ( 'HTTP_X_FORWARDED_HOST' in request.META): host = request.META['HTTP_X_FORWARDED_HOST'] elif 'HTTP_HOST' in request.META: host = request.META['HTTP_HOST'] else: # Reconstruct the host using the algorithm from PEP 333. host = request.META['SERVER_NAME'] server_port = str(request.META['SERVER_PORT']) if server_port != (request.is_secure() and '443' or '80'): host = '%s:%s' % (host, server_port) return host
Upload File
Create Folder