25 lines
536 B
Python
25 lines
536 B
Python
"""Jinja template filters."""
|
|
|
|
|
|
def _human_size(num):
|
|
try:
|
|
num = float(num)
|
|
except (TypeError, ValueError):
|
|
return "-"
|
|
for unit in ("B", "KB", "MB", "GB", "TB"):
|
|
if abs(num) < 1024.0:
|
|
return f"{num:3.1f} {unit}"
|
|
num /= 1024.0
|
|
return f"{num:.1f} PB"
|
|
|
|
|
|
def _short_ts(iso):
|
|
if not iso:
|
|
return "never"
|
|
return iso.replace("T", " ")
|
|
|
|
|
|
def register_filters(app):
|
|
app.jinja_env.filters["human_size"] = _human_size
|
|
app.jinja_env.filters["short_ts"] = _short_ts
|