blob: 842ff01d236855dfefbec5f8b88a529c20934b54 [file] [log] [blame]
import io
import datetime
import pprint
import urllib.parse
import time
from lnt.server.ui import util
def filter_asutctime(time):
ts = datetime.datetime.utcfromtimestamp(time)
return ts.strftime('%Y-%m-%d %H:%M:%S UTC')
def filter_asisotime(time):
ts = datetime.datetime.utcfromtimestamp(time)
return ts.isoformat()
def filter_aspctcell(value, class_=None, style=None, attributes=None, *args,
**kwargs):
cell = util.PctCell(value, *args, **kwargs)
return cell.render(class_, style, attributes)
def filter_pprint(value):
stream = io.StringIO()
pprint.pprint(value, stream)
return stream.getvalue()
def filter_format_or_default(fmt, input, default):
if input:
return fmt % input
else:
return default
def filter_urlencode(args):
return urllib.parse.urlencode(args)
def filter_timedelta(start_time):
return "%.2fs" % (time.time() - start_time)
def filter_producerAsHTML(producer):
if not producer:
return ""
return util.renderProducerAsHTML(producer)
def filter_shortname(test_name):
return util.guess_test_short_name(test_name)
def filter_filesize(value):
for unit in ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z']:
if abs(value) < 1024.0:
return "%3.2f %sB" % (value, unit)
value /= 1024.0
return "%.2f%sB" % (value, 'Yi')
def filter_print_value(value, field_unit, field_unit_abbrev, default='-'):
if value is None:
return default
if field_unit == 'bytes' and field_unit_abbrev == 'B':
return filter_filesize(value)
else:
return '%.3f' % value
def register(env):
for name, obj in globals().items():
if name.startswith('filter_'):
env.filters[name[7:]] = obj