/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: Breezy landing bot
  • Author(s): Colin Watson
  • Date: 2020-11-16 21:47:08 UTC
  • mfrom: (7521.1.1 remove-lp-workaround)
  • Revision ID: breezy.the.bot@gmail.com-20201116214708-jos209mgxi41oy15
Remove breezy.git workaround for bazaar.launchpad.net.

Merged from https://code.launchpad.net/~cjwatson/brz/remove-lp-workaround/+merge/393710

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 io 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])