comparison genshi/template/base.py @ 817:f7a5336dd389

Minor simplification in the expansion of dynamic attributes.
author cmlenz
date Mon, 09 Mar 2009 16:17:25 +0000
parents 3047d5d83ccc
children ce5ad2d540b3
comparison
equal deleted inserted replaced
816:87e3fc814a33 817:f7a5336dd389
529 # Attributes may still contain expressions in start tags at 529 # Attributes may still contain expressions in start tags at
530 # this point, so do some evaluation 530 # this point, so do some evaluation
531 tag, attrs = data 531 tag, attrs = data
532 new_attrs = [] 532 new_attrs = []
533 for name, substream in attrs: 533 for name, substream in attrs:
534 if isinstance(substream, basestring): 534 if type(substream) is list:
535 value = substream
536 else:
537 values = [] 535 values = []
538 for event in self._flatten(substream, ctxt, **vars): 536 for event in self._flatten(substream, ctxt, **vars):
539 if event[0] is TEXT: 537 if event[0] is TEXT:
540 values.append(event[1]) 538 values.append(event[1])
541 value = [x for x in values if x is not None] 539 value = [x for x in values if x is not None]
542 if not value: 540 if not value:
543 continue 541 continue
542 else:
543 value = substream
544 new_attrs.append((name, u''.join(value))) 544 new_attrs.append((name, u''.join(value)))
545 yield kind, (tag, Attrs(new_attrs)), pos 545 yield kind, (tag, Attrs(new_attrs)), pos
546 546
547 elif kind is EXPR: 547 elif kind is EXPR:
548 result = _eval_expr(data, ctxt, **vars) 548 result = _eval_expr(data, ctxt, **vars)
Copyright (C) 2012-2017 Edgewall Software