From 116a33ba5162b2129dd787478f5ff2dd8f698b45 Mon Sep 17 00:00:00 2001 From: Emmanuel Gil Peyrot Date: Wed, 6 May 2015 13:03:47 +0200 Subject: Make syntax highlighting for XML lazy, to only call pygments when debug logs are enabled. Makes poezio about 11% faster when sending/receiving messages. --- slixmpp/xmlstream/tostring.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'slixmpp/xmlstream/tostring.py') diff --git a/slixmpp/xmlstream/tostring.py b/slixmpp/xmlstream/tostring.py index 521ee460..041346cb 100644 --- a/slixmpp/xmlstream/tostring.py +++ b/slixmpp/xmlstream/tostring.py @@ -169,7 +169,14 @@ def _get_highlight(): LEXER = get_lexer_by_name('xml') FORMATTER = Terminal256Formatter() - return lambda x: highlight(x, LEXER, FORMATTER) + class Highlighter: + __slots__ = ['string'] + def __init__(self, string): + self.string = string + def __str__(self): + return highlight(str(self.string).strip(), LEXER, FORMATTER) + + return Highlighter except ImportError: return lambda x: x -- cgit v1.2.3