pep8: put 2 lines between function definitions (#45780)

This commit is contained in:
Nicolas Roche 2020-08-10 11:57:15 +02:00
parent 017b20e7f8
commit ba3451e723
2 changed files with 47 additions and 0 deletions

View File

@ -53,10 +53,12 @@ from combo.apps.dashboard.models import DashboardCell, Tile
register = template.Library()
def skeleton_text(context, placeholder_name, content=''):
return '{%% block placeholder-%s %%}{%% block %s %%}%s{%% endblock %%}{%% endblock %%}' % (
placeholder_name, placeholder_name, content)
@register.inclusion_tag('combo/placeholder.html', takes_context=True)
def placeholder(context, placeholder_name, **options):
placeholder = Placeholder(key=placeholder_name, cell=context.get('cell'), **options)
@ -97,6 +99,7 @@ def placeholder(context, placeholder_name, **options):
context['skeleton'] = ''
return context
@register.simple_tag(takes_context=True)
def render_cell(context, cell):
if context.get('render_skeleton') and cell.is_user_dependant(context):
@ -128,6 +131,7 @@ def render_cell(context, cell):
return ''
raise
@register.tag
def skeleton_extra_placeholder(parser, token):
try:
@ -174,6 +178,7 @@ class ExtraPlaceholderNode(template.Node):
return self.nodelist.render(context)
return skeleton_text(context, self.placeholder_name, content=self.content)
@register.inclusion_tag('combo/menu.html', takes_context=True)
def show_menu(context, level=0, current_page=None, depth=1, ignore_visibility=True, reduce_depth=False):
if reduce_depth:
@ -185,10 +190,12 @@ def show_menu(context, level=0, current_page=None, depth=1, ignore_visibility=Tr
return get_menu_context(new_context, level=level, current_page=current_page,
depth=depth, ignore_visibility=ignore_visibility)
@register.simple_tag(takes_context=True)
def page_absolute_url(context, page):
return context['request'].build_absolute_uri(page.get_online_url())
@register.filter(name='strptime')
@stringfilter
def strptime(date_string, date_format):
@ -197,6 +204,7 @@ def strptime(date_string, date_format):
except ValueError:
return None
@register.filter
def parse_date(date_string):
try:
@ -209,6 +217,7 @@ def parse_date(date_string):
except (ValueError, TypeError):
return None
@register.filter(expects_localtime=True, is_safe=False)
def date(value, arg=None):
if arg is None:
@ -217,6 +226,7 @@ def date(value, arg=None):
value = parse_datetime(value) or parse_date(value)
return defaultfilters.date(value, arg=arg)
@register.filter
def parse_datetime(datetime_string):
try:
@ -229,6 +239,7 @@ def parse_datetime(datetime_string):
except (ValueError, TypeError):
return None
@register.filter(name='datetime', expects_localtime=True, is_safe=False)
def datetime_(value, arg=None):
if arg is None:
@ -237,6 +248,7 @@ def datetime_(value, arg=None):
value = parse_datetime(value)
return defaultfilters.date(value, arg=arg)
@register.filter
def parse_time(time_string):
# if input is a datetime, extract its time
@ -252,6 +264,7 @@ def parse_time(time_string):
except (ValueError, TypeError):
return None
@register.filter(expects_localtime=True, is_safe=False)
def time(value, arg=None):
if arg is None:
@ -261,6 +274,7 @@ def time(value, arg=None):
value = parse_time(value)
return defaultfilters.date(value, arg=arg)
@register.filter
def shown_because_admin(cell, request):
if not (request.user and request.user.is_superuser):
@ -272,12 +286,14 @@ def shown_because_admin(cell, request):
return False
return not(set(cell_groups).intersection(request.user.groups.all()))
@register.filter(name='has_role')
def has_role(user, groupname):
if not user or user.is_anonymous:
return False
return user.groups.filter(name=groupname).exists()
@register.filter(name='get')
def get(obj, key):
try:
@ -285,10 +301,12 @@ def get(obj, key):
except AttributeError:
return None
@register.filter
def split(string, separator=' '):
return (string or '').split(separator)
@register.filter
def strip(string, chars=None):
if not string:
@ -332,22 +350,27 @@ def get_group(group_list, group_name):
ret.extend(group['list'])
return ret
@register.filter(name='is_empty_placeholder')
def is_empty_placeholder(page, placeholder_name):
return len([x for x in page.get_cells() if x.placeholder == placeholder_name]) == 0
@register.filter(name='list')
def as_list(obj):
return list(obj)
@register.filter(name='as_json')
def as_json(obj):
return json.dumps(obj)
@register.filter
def signed(obj):
return signing.dumps(obj)
@register.filter
def name_id(user):
if user and user.is_authenticated:
@ -358,10 +381,12 @@ def name_id(user):
# is tried with a missing user argument.
raise VariableDoesNotExist('name_id')
@register.simple_tag
def get_page(page_slug):
return Page.objects.get(slug=page_slug)
@register.filter
def startswith(string, substring):
return string and force_text(string).startswith(force_text(substring))
@ -381,6 +406,7 @@ def parse_float(value):
except (ValueError, TypeError):
return ''
def get_as_datetime(s):
result = parse_datetime(s)
if not result:
@ -389,6 +415,7 @@ def get_as_datetime(s):
result = datetime.datetime(year=result.year, month=result.month, day=result.day)
return result
@register.filter(expects_localtime=True, is_safe=False)
def add_days(value, arg):
value = parse_date(value) # consider only date, not hours
@ -400,6 +427,7 @@ def add_days(value, arg):
result = value + datetime.timedelta(days=float(arg))
return result
@register.filter(expects_localtime=True, is_safe=False)
def add_hours(value, arg):
value = parse_datetime(value)
@ -410,6 +438,7 @@ def add_hours(value, arg):
return value
return value + datetime.timedelta(hours=float(arg))
@register.filter(expects_localtime=True, is_safe=False)
def age_in_days(value, today=None):
value = parse_date(value)
@ -423,6 +452,7 @@ def age_in_days(value, today=None):
today = datetime.date.today()
return (today - value).days
@register.filter(expects_localtime=True, is_safe=False)
def age_in_hours(value, now=None):
# consider value and now as datetimes (and not dates)
@ -437,6 +467,7 @@ def age_in_hours(value, now=None):
now = datetime.datetime.now()
return int((now - value).total_seconds() / 3600)
def age_in_years_and_months(born, today=None):
'''Compute age since today as the number of years and months elapsed'''
born = make_date(born)
@ -458,6 +489,7 @@ def age_in_years_and_months(born, today=None):
months -= 1
return years, months
@register.filter(expects_localtime=True, is_safe=False)
def age_in_years(value, today=None):
try:
@ -465,6 +497,7 @@ def age_in_years(value, today=None):
except ValueError:
return ''
@register.filter(expects_localtime=True, is_safe=False)
def age_in_months(value, today=None):
try:
@ -495,6 +528,7 @@ def parse_decimal(value, default=Decimal(0)):
except (ArithmeticError, TypeError):
return default
@register.filter(is_safe=False)
def decimal(value, arg=None):
if not isinstance(value, Decimal):
@ -503,6 +537,7 @@ def decimal(value, arg=None):
return value
return defaultfilters.floatformat(value, arg=arg)
@register.filter
def add(term1, term2):
'''replace the "add" native django filter'''
@ -522,14 +557,17 @@ def add(term1, term2):
return term1_decimal
return defaultfilters.add(term1, term2)
@register.filter
def subtract(term1, term2):
return parse_decimal(term1) - parse_decimal(term2)
@register.filter
def multiply(term1, term2):
return parse_decimal(term1) * parse_decimal(term2)
@register.filter
def divide(term1, term2):
try:
@ -539,19 +577,23 @@ def divide(term1, term2):
except DecimalDivisionByZero:
return ''
@register.filter
def ceil(value):
'''the smallest integer value greater than or equal to value'''
return decimal(math.ceil(parse_decimal(value)))
@register.filter
def floor(value):
return decimal(math.floor(parse_decimal(value)))
@register.filter(name='abs')
def abs_(value):
return decimal(abs(parse_decimal(value)))
_json_script_escapes = {
ord('>'): '\\u003E',
ord('<'): '\\u003C',

View File

@ -29,6 +29,7 @@ def test_strptime():
assert t.render(Context({'someday': {'foo': 'bar'}})) == ''
assert t.render(Context({'someday': ['foo', 'bar']})) == ''
def test_parse_datetime():
t = Template('{{ someday|parse_datetime|date:"Y m d H i s T" }}')
expected = '2015 04 15 13 11 12 UTC'
@ -75,6 +76,7 @@ def test_parse_datetime():
assert t.render(Context({'someday': {'foo': 'bar'}})) == ''
assert t.render(Context({'someday': ['foo', 'bar']})) == ''
def test_has_role():
t = Template('{{ request.user|has_role:"Role1" }}')
@ -108,6 +110,7 @@ def test_has_role():
request.user = AnonymousUser()
assert t.render(context) == 'False'
def test_get():
t = Template('{{ foo|get:"foo-bar" }}')
context = Context({'foo': {'foo-bar': 'hello'}})
@ -125,12 +128,14 @@ def test_get():
context = Context({'foo': {'foo-bar': 'hello'}, 'key': 'foo-bar'})
assert t.render(context) == 'hello'
def test_split():
t = Template('{% for x in plop|split %}{{x}}<br>{% endfor %}')
assert t.render(Context({'plop': 'ab cd ef'})) == 'ab<br>cd<br>ef<br>'
t = Template('{% for x in plop|split:"|" %}{{x}} {% endfor %}')
assert t.render(Context({'plop': 'ab|cd|ef'})) == 'ab cd ef '
def test_strip_templatetag():
tmpl = Template('{{ foo|strip }}')
assert tmpl.render(Context()) == ''