Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _render_mergeinfo(self, name, mode, context, props):
rows = []
for row in props[name].splitlines():
try:
(path, revs) = row.rsplit(':', 1)
rows.append([tag.td(path),
tag.td(revs.replace(',', u',\u200b'))])
except ValueError:
rows.append(tag.td(row, colspan=2))
return tag.table(tag.tbody([tag.tr(row) for row in rows]),
class_='props')
def _render_mergeinfo(self, name, mode, context, props):
rows = []
for row in props[name].splitlines():
try:
(path, revs) = row.rsplit(':', 1)
rows.append([tag.td(path),
tag.td(revs.replace(',', u',\u200b'))])
except ValueError:
rows.append(tag.td(row, colspan=2))
return tag.table(tag.tbody([tag.tr(row) for row in rows]),
class_='props')
def make_list(items):
parts = [item.rsplit('.', 1) for item in items]
return tag.table(tag.tbody(
tag.tr(tag.td(c, class_='trac-name'),
tag.td('(%s.*)' % m, class_='trac-name'))
for m, c in parts), class_='trac-pluglist')
def test_genshi_builder():
"""Genshi template + tag builder"""
stream = tag.TABLE([
tag.tr([tag.td(c) for c in row.values()])
for row in table
]).generate()
stream = genshi_tmpl2.generate(table=stream)
stream.render('html', strip_whitespace=False)
content = content.strip() if content else ''
name_filter = content.strip('*')
items = {}
for subscriber in NotificationSystem(self.env).subscribers:
name = subscriber.__class__.__name__
if not name_filter or name.startswith(name_filter):
items[name] = subscriber.description()
return tag.div(class_='trac-subscriberlist')(
tag.table(class_='wiki')(
tag.thead(tag.tr(
tag.th(_("Subscriber")),
tag.th(_("Description")))),
tag.tbody(
tag.tr(tag.td(tag.code(name)),
tag.td(items[name]),
class_='odd' if idx % 2 else 'even')
for idx, name in enumerate(sorted(items.keys())))))
def _render(self, text=None):
if text is None:
text = self._get_text()
data = csv.reader(StringIO(text))
rows = (tag.tr(tag.td(cell) for cell in row) for row in data)
stream = tag.table(rows)
return stream.generate()
eligible -= set(Ranges(blocked))
if eligible:
nrevs = repos._get_node_revs(spath, max(eligible),
min(eligible))
eligible &= set(nrevs)
eligible = to_ranges(eligible)
row.append(_get_revs_link(_('eligible'), context,
spath, eligible))
rows.append((False, spath, [tag.td(each) for each in row]))
continue
except NoSuchNode:
deleted = True
revs = revs.replace(',', u',\u200b')
rows.append((deleted, spath,
[tag.td('/' + spath),
tag.td(revs, colspan=revs_cols)]))
if not rows:
return None
rows.sort()
has_deleted = rows[-1][0] if rows else None
return tag(has_deleted and tag.a(_('(toggle deleted branches)'),
class_='trac-toggledeleted',
href='#'),
tag.table(tag.tbody(
[tag.tr(row, class_='trac-deleted' if deleted else None)
for deleted, spath, row in rows]), class_='props'))
def default_cell(option):
default = option.default
if default is True:
default = 'true'
elif default is False:
default = 'false'
elif default == 0:
default = '0.0' if isinstance(default, float) else '0'
elif default:
default = ', '.join(to_unicode(val) for val in default) \
if isinstance(default, (list, tuple)) \
else to_unicode(default)
else:
return tag.td(_("(no default)"), class_='nodefault')
return tag.td(tag.code(default), class_='default')