Make this a little nicer to read.
Signed-off-by: Stephen Finucane <stephen@that.guru>
from django.conf import settings
from django import template
-from django.urls import reverse
from django.urls import NoReverseMatch
+from django.urls import reverse
from django.utils.encoding import smart_str
from django.utils.html import escape
class ListURLNode(template.defaulttags.URLNode):
-
def __init__(self, kwargs):
super(ListURLNode, self).__init__(None, [], {}, False)
self.params = {}
except NoReverseMatch:
try:
project_name = settings.SETTINGS_MODULE.split('.')[0]
- path = reverse(project_name + '.' + view_name,
- args=[], kwargs=kwargs)
+ path = reverse(
+ project_name + '.' + view_name, args=[], kwargs=kwargs
+ )
except NoReverseMatch:
raise
if not params:
return path
- return path + '?' + '&'.join(
- ['%s=%s' % (k, escape(v)) for (k, v) in list(params.items())])
+ return '?'.join(
+ [
+ path,
+ '&'.join('%s=%s' % (k, escape(v)) for k, v in params.items()),
+ ]
+ )
@register.tag
bits = token.contents.split(' ', 1)
if not bits:
raise template.TemplateSyntaxError(
- "'%s' takes at least one argument (path to a view)" % bits[0])
+ "'%s' takes at least one argument (path to a view)" % bits[0]
+ )
kwargs = {}
if len(bits) > 1:
for arg in bits[1].split(','):
kwargs[k] = parser.compile_filter(v)
else:
raise template.TemplateSyntaxError(
- "'%s' requires name=value params" % bits[0])
+ "'%s' requires name=value params" % bits[0]
+ )
return ListURLNode(kwargs)
def patch_tags(patch):
counts = []
titles = []
+
for tag in [t for t in patch.project.tags if t.show_column]:
count = getattr(patch, tag.attr_name)
titles.append('%d %s' % (count, tag.name))
counts.append("-")
else:
counts.append(str(count))
- return mark_safe('<span title="%s">%s</span>' % (
- ' / '.join(titles),
- ' '.join(counts)))
+
+ return mark_safe(
+ '<span title="%s">%s</span>' % (' / '.join(titles), ' '.join(counts))
+ )
@register.filter(name='patch_checks')
count = '-'
check_elements.append(
- '<span class="patchlistchecks {}">{}</span>'.format(
- color, count))
+ f'<span class="patchlistchecks {color}">{count}</span>'
+ )
check_elements.reverse()
- return mark_safe('<span title="%s">%s</span>' % (
- ' / '.join(titles),
- ''.join(check_elements)))
+ return mark_safe(
+ '<span title="%s">%s</span>'
+ % (' / '.join(titles), ''.join(check_elements))
+ )
@register.filter(name='patch_commit_display')
if not fmt:
return escape(commit)
- return mark_safe('<a href="%s">%s</a>' % (escape(fmt.format(commit)),
- escape(commit)))
+ return mark_safe(
+ '<a href="%s">%s</a>' % (escape(fmt.format(commit)), escape(commit))
+ )
else:
linktext = escape(person.email)
- url = reverse('patch-list',
- kwargs={'project_id': project.linkname})
+ url = reverse('patch-list', kwargs={'project_id': project.linkname})
out = '<a href="%s?%s=%s">%s</a>' % (
- url, SubmitterFilter.param, escape(person.id), linktext)
+ url,
+ SubmitterFilter.param,
+ escape(person.id),
+ linktext,
+ )
return mark_safe(out)
@register.simple_tag(takes_context=True)
def project_tags(context):
tags = [t for t in context['project'].tags if t.show_column]
- return mark_safe('<span title="%s">%s</span>' % (
- ' / '.join([tag.name for tag in tags]),
- '/'.join([tag.abbrev for tag in tags])))
+
+ return mark_safe(
+ '<span title="%s">%s</span>'
+ % (
+ ' / '.join([tag.name for tag in tags]),
+ '/'.join([tag.abbrev for tag in tags]),
+ )
+ )
return re.compile(regex, re.M | re.I), cls
-_patch_span_res = [_compile(x) for x in [
- (r'^(Index:?|diff|\-\-\-|\+\+\+|\*\*\*) .*$', 'p_header'),
- (r'^\+.*$', 'p_add'),
- (r'^-.*$', 'p_del'),
- (r'^!.*$', 'p_mod'),
-]]
+_patch_span_res = [
+ _compile(x)
+ for x in [
+ (r'^(Index:?|diff|\-\-\-|\+\+\+|\*\*\*) .*$', 'p_header'),
+ (r'^\+.*$', 'p_add'),
+ (r'^-.*$', 'p_del'),
+ (r'^!.*$', 'p_mod'),
+ ]
+]
_patch_chunk_re = re.compile(
- r'^(@@ \-\d+(?:,\d+)? \+\d+(?:,\d+)? @@)(.*)$', re.M | re.I)
-
-_comment_span_res = [_compile(x) for x in [
- (r'^\s*Signed-off-by: .*$', 'signed-off-by'),
- (r'^\s*Acked-by: .*$', 'acked-by'),
- (r'^\s*Nacked-by: .*$', 'nacked-by'),
- (r'^\s*Tested-by: .*$', 'tested-by'),
- (r'^\s*Reviewed-by: .*$', 'reviewed-by'),
- (r'^\s*From: .*$', 'from'),
- (r'^\s*>.*$', 'quote'),
-]]
+ r'^(@@ \-\d+(?:,\d+)? \+\d+(?:,\d+)? @@)(.*)$', re.M | re.I
+)
+
+_comment_span_res = [
+ _compile(x)
+ for x in [
+ (r'^\s*Signed-off-by: .*$', 'signed-off-by'),
+ (r'^\s*Acked-by: .*$', 'acked-by'),
+ (r'^\s*Nacked-by: .*$', 'nacked-by'),
+ (r'^\s*Tested-by: .*$', 'tested-by'),
+ (r'^\s*Reviewed-by: .*$', 'reviewed-by'),
+ (r'^\s*From: .*$', 'from'),
+ (r'^\s*>.*$', 'quote'),
+ ]
+]
_span = '<span class="%s">%s</span>'
def patchsyntax(patch):
diff = escape(patch.diff).replace('\r\n', '\n')
- for (regex, cls) in _patch_span_res:
+ for regex, cls in _patch_span_res:
diff = regex.sub(lambda x: _span % (cls, x.group(0)), diff)
diff = _patch_chunk_re.sub(
- lambda x:
- _span % ('p_chunk', x.group(1)) + ' ' +
- _span % ('p_context', x.group(2)),
- diff)
+ lambda x: ' '.join(
+ [
+ _span % ('p_chunk', x.group(1)),
+ _span % ('p_context', x.group(2)),
+ ],
+ ),
+ diff,
+ )
return mark_safe(diff)