Mercurial > genshi > mirror
comparison markup/core.py @ 136:b86f496f6035 trunk
Minor performance improvements in serialization.
author | cmlenz |
---|---|
date | Sun, 06 Aug 2006 21:22:21 +0000 |
parents | 79f445396cd7 |
children | c1f4390d50f8 |
comparison
equal
deleted
inserted
replaced
134:d681d2c3cd8d | 136:b86f496f6035 |
---|---|
290 """ | 290 """ |
291 __slots__ = [] | 291 __slots__ = [] |
292 | 292 |
293 def __new__(cls, text='', *args): | 293 def __new__(cls, text='', *args): |
294 if args: | 294 if args: |
295 text %= tuple([escape(arg) for arg in args]) | 295 text %= tuple(map(escape, args)) |
296 return unicode.__new__(cls, text) | 296 return unicode.__new__(cls, text) |
297 | 297 |
298 def __add__(self, other): | 298 def __add__(self, other): |
299 return Markup(unicode(self) + escape(other)) | 299 return Markup(unicode(self) + escape(other)) |
300 | 300 |
301 def __mod__(self, args): | 301 def __mod__(self, args): |
302 if not isinstance(args, (list, tuple)): | 302 if not isinstance(args, (list, tuple)): |
303 args = [args] | 303 args = [args] |
304 return Markup(unicode.__mod__(self, | 304 return Markup(unicode.__mod__(self, tuple(map(escape, args)))) |
305 tuple([escape(arg) for arg in args]))) | |
306 | 305 |
307 def __mul__(self, num): | 306 def __mul__(self, num): |
308 return Markup(unicode(self) * num) | 307 return Markup(unicode(self) * num) |
309 | 308 |
310 def __repr__(self): | 309 def __repr__(self): |
461 if type(qname) is cls: | 460 if type(qname) is cls: |
462 return qname | 461 return qname |
463 | 462 |
464 parts = qname.split(u'}', 1) | 463 parts = qname.split(u'}', 1) |
465 if len(parts) > 1: | 464 if len(parts) > 1: |
466 self = unicode.__new__(cls, u'{' + qname) | 465 self = unicode.__new__(cls, u'{%s' % qname) |
467 self.namespace = unicode(parts[0]) | 466 self.namespace, self.localname = map(unicode, parts) |
468 self.localname = unicode(parts[1]) | |
469 else: | 467 else: |
470 self = unicode.__new__(cls, qname) | 468 self = unicode.__new__(cls, qname) |
471 self.namespace = None | 469 self.namespace, self.localname = None, unicode(qname) |
472 self.localname = unicode(qname) | |
473 return self | 470 return self |