summaryrefslogtreecommitdiffstats
path: root/presentty/rst.py
diff options
context:
space:
mode:
Diffstat (limited to 'presentty/rst.py')
-rw-r--r--presentty/rst.py36
1 files changed, 22 insertions, 14 deletions
diff --git a/presentty/rst.py b/presentty/rst.py
index 5867ca1..e84b6df 100644
--- a/presentty/rst.py
+++ b/presentty/rst.py
@@ -13,21 +13,26 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+from __future__ import absolute_import, division, print_function
+
import os
import re
import docutils
import docutils.frontend
import docutils.parsers.rst
import docutils.nodes
-import cStringIO as StringIO
+from io import StringIO
+import six
+from six.moves import range
+from six.moves import input
import urwid
-import slide
-import transition as transition_mod
-import image
-import ansiparser
-import text
+from . import slide
+from . import transition as transition_mod
+from . import image
+from . import ansiparser
+from . import text
try:
import PIL
@@ -327,7 +332,8 @@ class UrwidTranslator(docutils.nodes.GenericNodeVisitor):
for name in node['names']:
p = ansiparser.ANSIParser()
fn = os.path.join(self.basedir, name)
- data = unicode(open(fn).read(), 'utf8')
+ data = open(fn, 'rb').read()
+ data = six.text_type(data, 'utf-8')
text = p.parse(data)
animation.addFrame(text)
self.slide.animations.append(animation)
@@ -447,7 +453,7 @@ class PresentationParser(object):
'cowsay', CowsayDirective)
docutils.parsers.rst.directives.register_directive(
'hidetitle', HideTitleDirective)
- self.warnings = StringIO.StringIO()
+ self.warnings = StringIO()
self.settings = docutils.frontend.OptionParser(
components=(docutils.parsers.rst.Parser,),
defaults=dict(warning_stream=self.warnings)).get_default_values()
@@ -469,7 +475,7 @@ class PresentationParser(object):
def main():
import argparse
- import palette
+ from . import palette
argp = argparse.ArgumentParser(description='Test RST parser')
argp.add_argument('file', help='presentation file (RST)')
@@ -480,7 +486,9 @@ def main():
args = argp.parse_args()
parser = PresentationParser(palette.DARK_PALETTE)
- document, visitor = parser._parse(unicode(open(args.file).read(), 'utf-8'), args.file)
+ args_data = open(args.file, 'rb').read()
+ args_data = six.text_type(args_data, 'utf-8')
+ document, visitor = parser._parse(args_data, args.file)
slides = args.slides
if not slides:
@@ -488,19 +496,19 @@ def main():
slides = [int(x) for x in slides]
if not args.render:
- print document.pformat()
+ print(document.pformat())
for i in slides:
- print '-'*80
+ print('-'*80)
s = visitor.program[i]
for line in s.render((80,25)).text:
- print line
+ print(line)
else:
screen = urwid.raw_display.Screen()
with screen.start():
for i in slides:
s = visitor.program[i]
screen.draw_screen((80,25), s.render((80,25)))
- raw_input()
+ input()
if __name__ == '__main__':
main()