diff options
| author | NCH(OpenERP) <> | 2009-12-15 14:02:18 +0530 |
|---|---|---|
| committer | hda (Tiny) <hda@tinyerp.com> | 2009-12-15 14:02:18 +0530 |
| commit | 3bcfde0b35e95c4cebfca52d5777626fa09b7fe2 (patch) | |
| tree | 598dc3e05e1950f2704267c9ae5c9c8d6b00d471 /bin/mako/ext/babelplugin.py | |
| parent | 3f33f865f59e7acd09b1b3e3d6b1e5a7c3b47076 (diff) | |
| parent | 99ffac43ea7e7a82adc720bd286321eac26fcdb3 (diff) | |
Removed mako from source and improved printscreen report
bzr revid: hda@tinyerp.com-20091215083218-4pcbwf7vcpi5e90y
Diffstat (limited to 'bin/mako/ext/babelplugin.py')
| -rwxr-xr-x | bin/mako/ext/babelplugin.py | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/bin/mako/ext/babelplugin.py b/bin/mako/ext/babelplugin.py deleted file mode 100755 index 54d266877ba..00000000000 --- a/bin/mako/ext/babelplugin.py +++ /dev/null @@ -1,119 +0,0 @@ -# -*- coding: utf-8 -*- -"""gettext message extraction via Babel: http://babel.edgewall.org/""" -from StringIO import StringIO - -from babel.messages.extract import extract_python - -from mako import lexer, parsetree - -def extract(fileobj, keywords, comment_tags, options): - """Extract messages from Mako templates. - - :param fileobj: the file-like object the messages should be extracted from - :param keywords: a list of keywords (i.e. function names) that should be - recognized as translation functions - :param comment_tags: a list of translator tags to search for and include - in the results - :param options: a dictionary of additional options (optional) - :return: an iterator over ``(lineno, funcname, message, comments)`` tuples - :rtype: ``iterator`` - """ - encoding = options.get('input_encoding', options.get('encoding', None)) - - template_node = lexer.Lexer(fileobj.read(), - input_encoding=encoding).parse() - for extracted in extract_nodes(template_node.get_children(), - keywords, comment_tags, options): - yield extracted - -def extract_nodes(nodes, keywords, comment_tags, options): - """Extract messages from Mako's lexer node objects - - :param nodes: an iterable of Mako parsetree.Node objects to extract from - :param keywords: a list of keywords (i.e. function names) that should be - recognized as translation functions - :param comment_tags: a list of translator tags to search for and include - in the results - :param options: a dictionary of additional options (optional) - :return: an iterator over ``(lineno, funcname, message, comments)`` tuples - :rtype: ``iterator`` - """ - translator_comments = [] - in_translator_comments = False - - for node in nodes: - child_nodes = None - if in_translator_comments and isinstance(node, parsetree.Text) and \ - not node.content.strip(): - # Ignore whitespace within translator comments - continue - - if isinstance(node, parsetree.Comment): - value = node.text.strip() - if in_translator_comments: - translator_comments.extend(_split_comment(node.lineno, value)) - continue - for comment_tag in comment_tags: - if value.startswith(comment_tag): - in_translator_comments = True - translator_comments.extend(_split_comment(node.lineno, - value)) - continue - - if isinstance(node, parsetree.DefTag): - code = node.function_decl.code - child_nodes = node.nodes - elif isinstance(node, parsetree.CallTag): - code = node.code.code - child_nodes = node.nodes - elif isinstance(node, parsetree.PageTag): - code = node.body_decl.code - elif isinstance(node, parsetree.ControlLine): - if node.isend: - translator_comments = [] - in_translator_comments = False - continue - code = node.text - elif isinstance(node, parsetree.Code): - # <% and <%! blocks would provide their own translator comments - translator_comments = [] - in_translator_comments = False - - code = node.code.code - elif isinstance(node, parsetree.Expression): - code = node.code.code - else: - translator_comments = [] - in_translator_comments = False - continue - - # Comments don't apply unless they immediately preceed the message - if translator_comments and \ - translator_comments[-1][0] < node.lineno - 1: - translator_comments = [] - else: - translator_comments = \ - [comment[1] for comment in translator_comments] - - if isinstance(code, unicode): - code = code.encode('ascii', 'backslashreplace') - code = StringIO(code) - for lineno, funcname, messages, python_translator_comments \ - in extract_python(code, keywords, comment_tags, options): - yield (node.lineno + (lineno - 1), funcname, messages, - translator_comments + python_translator_comments) - - translator_comments = [] - in_translator_comments = False - - if child_nodes: - for extracted in extract_nodes(child_nodes, keywords, comment_tags, - options): - yield extracted - - -def _split_comment(lineno, comment): - """Return the multiline comment at lineno split into a list of comment line - numbers and the accompanying comment line""" - return [(lineno + index, line) for index, line in - enumerate(comment.splitlines())] |
