From 9c13aae8ba88d1daa1393e1385688176915a0565 Mon Sep 17 00:00:00 2001 From: Nikos Kouremenos Date: Tue, 3 Oct 2006 16:47:38 +0000 Subject: [PATCH] coding standards et all --- src/rst_xhtml_generator.py | 70 +++++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 27 deletions(-) diff --git a/src/rst_xhtml_generator.py b/src/rst_xhtml_generator.py index 4e2fddba8..c44d3a9d8 100644 --- a/src/rst_xhtml_generator.py +++ b/src/rst_xhtml_generator.py @@ -1,14 +1,30 @@ +## rst_xhtml_generator.py +## +## Copyright (C) 2006 Yann Le Boulanger +## Copyright (C) 2006 Nikos Kouremenos +## Copyright (C) 2006 Santiago Gala +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published +## by the Free Software Foundation; version 2 only. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## + from docutils import io from docutils.core import Publisher from docutils.parsers.rst import roles def jep_reference_role(role, rawtext, text, lineno, inliner, - options={}, content=[]): - """Role to make handy references to Jabber Enhancement Proposals (JEP). + options={}, content=[]): + '''Role to make handy references to Jabber Enhancement Proposals (JEP). Use as :JEP:`71` (or jep, or jep-reference). Modeled after the sample in docutils documentation. - """ + ''' from docutils import nodes,utils from docutils.parsers.rst.roles import set_classes @@ -27,7 +43,7 @@ def jep_reference_role(role, rawtext, text, lineno, inliner, ref = jep_base_url + jep_url % jepnum set_classes(options) node = nodes.reference(rawtext, 'JEP ' + utils.unescape(text), refuri=ref, - **options) + **options) return [node], [] roles.register_canonical_role('jep-reference', jep_reference_role) @@ -36,40 +52,40 @@ roles['jep-reference'] = 'jep-reference' roles['jep'] = 'jep-reference' class HTMLGenerator: - """Really simple HTMLGenerator starting from publish_parts. + '''Really simple HTMLGenerator starting from publish_parts. It reuses the docutils.core.Publisher class, which means it is *not* threadsafe. - """ + ''' def __init__(self, - settings_spec=None, - settings_overrides=dict(report_level=5, halt_level=5), - config_section='general'): + settings_spec=None, + settings_overrides=dict(report_level=5, halt_level=5), + config_section='general'): self.pub = Publisher(reader=None, parser=None, writer=None, - settings=None, - source_class=io.StringInput, - destination_class=io.StringOutput) + settings=None, + source_class=io.StringInput, + destination_class=io.StringOutput) self.pub.set_components(reader_name='standalone', - parser_name='restructuredtext', - writer_name='html') + parser_name='restructuredtext', + writer_name='html') #hack: JEP-0071 does not allow HTML char entities, so we hack our way out of it. # — == u"\u2014" # a setting to only emit charater entities in the writer would be nice - # TODO: several   are emitted, and they are explicitly forbidden in the JEP + # FIXME: several   are emitted, and they are explicitly forbidden in the JEP #   == u"\u00a0" - self.pub.writer.translator_class.attribution_formats["dash"] = (u"\u2014", "") + self.pub.writer.translator_class.attribution_formats['dash'] = (u'\u2014', '') self.pub.process_programmatic_settings(settings_spec, - settings_overrides, - config_section) + settings_overrides, + config_section) def create_xhtml(self, text, - destination=None, - destination_path=None, - enable_exit_status=None): - """ Create xhtml for a fragment of IM dialog. + destination=None, + destination_path=None, + enable_exit_status=None): + ''' Create xhtml for a fragment of IM dialog. We can use the source_name to store info about - the message.""" + the message.''' self.pub.set_source(text, None) self.pub.set_destination(destination, destination_path) output = self.pub.publish(enable_exit_status=enable_exit_status) @@ -82,7 +98,7 @@ def create_xhtml(text): return Generator.create_xhtml(text) if __name__ == '__main__': - print Generator.create_xhtml(""" + print Generator.create_xhtml(''' test:: >>> print 1 @@ -92,9 +108,9 @@ test:: this `` should trigger`` should trigger the   problem. -""") - print Generator.create_xhtml(""" +''') + print Generator.create_xhtml(''' *test1 test2_ -""") +''')