/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to tools/rst2prettyhtml.py

  • Committer: Jelmer Vernooij
  • Date: 2020-04-05 19:11:34 UTC
  • mto: (7490.7.16 work)
  • mto: This revision was merged to the branch mainline in revision 7501.
  • Revision ID: jelmer@jelmer.uk-20200405191134-0aebh8ikiwygxma5
Populate the .gitignore file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/env python
 
1
#!/usr/bin/env python3
2
2
 
3
3
import errno
4
4
import os
5
 
from StringIO import StringIO
 
5
from breezy.sixish import StringIO
6
6
import sys
7
7
 
8
8
try:
9
9
    from docutils.core import publish_file
10
10
    from docutils.parsers import rst
11
11
except ImportError:
12
 
    print "Missing dependency.  Please install docutils."
 
12
    print("Missing dependency.  Please install docutils.")
13
13
    sys.exit(1)
14
14
try:
15
15
    from elementtree.ElementTree import XML
16
16
    from elementtree import HTMLTreeBuilder
17
17
except ImportError:
18
 
    print "Missing dependency.  Please install ElementTree."
 
18
    print("Missing dependency.  Please install ElementTree.")
19
19
    sys.exit(1)
20
20
try:
21
21
    import kid
22
22
except ImportError:
23
 
    print "Missing dependency.  Please install Kid."
 
23
    print("Missing dependency.  Please install Kid.")
24
24
    sys.exit(1)
25
25
 
26
26
 
29
29
    # prevent docutils from autoclosing the StringIO
30
30
    xhtml_file.close = lambda: None
31
31
    xhtml = publish_file(rest_file, writer_name='html', destination=xhtml_file,
32
 
                         settings_overrides={"doctitle_xform": 0} 
33
 
    
34
 
    )
 
32
                         settings_overrides={"doctitle_xform": 0})
35
33
    xhtml_file.seek(0)
36
34
    xml = HTMLTreeBuilder.parse(xhtml_file)
37
35
    head = xml.find('head')
38
36
    body = xml.find('body')
39
37
    assert head is not None
40
38
    assert body is not None
41
 
    template=kid.Template(file=template_name, 
42
 
                          head=head, body=body)
 
39
    template = kid.Template(file=template_name, head=head, body=body)
43
40
    return (template.serialize(output="html"))
44
41
 
45
42
 
46
43
def safe_open(filename, mode):
47
44
    try:
48
45
        return open(filename, mode + 'b')
49
 
    except IOError, e:
 
46
    except IOError as e:
50
47
        if e.errno != errno.ENOENT:
51
48
            raise
52
49
        sys.stderr.write('file not found: %s\n' % sys.argv[2])