~ubuntu-branches/ubuntu/saucy/python-docutils/saucy-proposed

« back to all changes in this revision

Viewing changes to .pc/move-data-to-usr-share.diff/docutils/writers/pep_html/__init__.py

  • Committer: Bazaar Package Importer
  • Author(s): Jakub Wilk
  • Date: 2011-08-07 23:24:56 UTC
  • mfrom: (11.1.2 experimental)
  • Revision ID: james.westby@ubuntu.com-20110807232456-ikquearlmix8hkp1
Tags: 0.7-4
Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# $Id: __init__.py 6328 2010-05-23 21:20:29Z gbrandl $
 
2
# Author: David Goodger <goodger@python.org>
 
3
# Copyright: This module has been placed in the public domain.
 
4
 
 
5
"""
 
6
PEP HTML Writer.
 
7
"""
 
8
 
 
9
__docformat__ = 'reStructuredText'
 
10
 
 
11
 
 
12
import sys
 
13
import os
 
14
import os.path
 
15
import codecs
 
16
import docutils
 
17
from docutils import frontend, nodes, utils, writers
 
18
from docutils.writers import html4css1
 
19
 
 
20
 
 
21
class Writer(html4css1.Writer):
 
22
 
 
23
    default_stylesheet = 'pep.css'
 
24
 
 
25
    default_stylesheet_path = utils.relative_path(
 
26
        os.path.join(os.getcwd(), 'dummy'),
 
27
        os.path.join(os.path.dirname(__file__), default_stylesheet))
 
28
 
 
29
    default_template = 'template.txt'
 
30
 
 
31
    default_template_path = utils.relative_path(
 
32
        os.path.join(os.getcwd(), 'dummy'),
 
33
        os.path.join(os.path.dirname(__file__), default_template))
 
34
 
 
35
    settings_spec = html4css1.Writer.settings_spec + (
 
36
        'PEP/HTML-Specific Options',
 
37
        'For the PEP/HTML writer, the default value for the --stylesheet-path '
 
38
        'option is "%s", and the default value for --template is "%s". '
 
39
        'See HTML-Specific Options above.'
 
40
        % (default_stylesheet_path, default_template_path),
 
41
        (('Python\'s home URL.  Default is "http://www.python.org".',
 
42
          ['--python-home'],
 
43
          {'default': 'http://www.python.org', 'metavar': '<URL>'}),
 
44
         ('Home URL prefix for PEPs.  Default is "." (current directory).',
 
45
          ['--pep-home'],
 
46
          {'default': '.', 'metavar': '<URL>'}),
 
47
         # For testing.
 
48
         (frontend.SUPPRESS_HELP,
 
49
          ['--no-random'],
 
50
          {'action': 'store_true', 'validator': frontend.validate_boolean}),))
 
51
 
 
52
    settings_default_overrides = {'stylesheet_path': default_stylesheet_path,
 
53
                                  'template': default_template_path,}
 
54
 
 
55
    relative_path_settings = (html4css1.Writer.relative_path_settings
 
56
                              + ('template',))
 
57
 
 
58
    config_section = 'pep_html writer'
 
59
    config_section_dependencies = ('writers', 'html4css1 writer')
 
60
 
 
61
    def __init__(self):
 
62
        html4css1.Writer.__init__(self)
 
63
        self.translator_class = HTMLTranslator
 
64
 
 
65
    def interpolation_dict(self):
 
66
        subs = html4css1.Writer.interpolation_dict(self)
 
67
        settings = self.document.settings
 
68
        pyhome = settings.python_home
 
69
        subs['pyhome'] = pyhome
 
70
        subs['pephome'] = settings.pep_home
 
71
        if pyhome == '..':
 
72
            subs['pepindex'] = '.'
 
73
        else:
 
74
            subs['pepindex'] = pyhome + '/dev/peps'
 
75
        index = self.document.first_child_matching_class(nodes.field_list)
 
76
        header = self.document[index]
 
77
        self.pepnum = header[0][1].astext()
 
78
        subs['pep'] = self.pepnum
 
79
        if settings.no_random:
 
80
            subs['banner'] = 0
 
81
        else:
 
82
            import random
 
83
            subs['banner'] = random.randrange(64)
 
84
        try:
 
85
            subs['pepnum'] = '%04i' % int(self.pepnum)
 
86
        except ValueError:
 
87
            subs['pepnum'] = self.pepnum
 
88
        self.title = header[1][1].astext()
 
89
        subs['title'] = self.title
 
90
        subs['body'] = ''.join(
 
91
            self.body_pre_docinfo + self.docinfo + self.body)
 
92
        return subs
 
93
 
 
94
    def assemble_parts(self):
 
95
        html4css1.Writer.assemble_parts(self)
 
96
        self.parts['title'] = [self.title]
 
97
        self.parts['pepnum'] = self.pepnum
 
98
 
 
99
 
 
100
class HTMLTranslator(html4css1.HTMLTranslator):
 
101
 
 
102
    def depart_field_list(self, node):
 
103
        html4css1.HTMLTranslator.depart_field_list(self, node)
 
104
        if 'rfc2822' in node['classes']:
 
105
             self.body.append('<hr />\n')