Things just happened to work when locale was set to UTF-8, but would
fail otherwise. In particular it would fail on Windows where text files
don't default to UTF-8.
Fixes https://github.com/jrfonseca/xdot.py/issues/46
... | ... |
@@ -22,7 +22,7 @@ before_install: |
22 | 22 |
|
23 | 23 |
script: |
24 | 24 |
- cd tests |
25 |
-- xvfb-run -a -s '-screen 0 1024x768x24' python ../test.py *.dot graphs/*.gv |
|
25 |
+- LANG=C xvfb-run -a -s '-screen 0 1024x768x24' python ../test.py *.dot graphs/*.gv |
|
26 | 26 |
- cd .. |
27 | 27 |
|
28 | 28 |
# https://docs.travis-ci.com/user/deployment/pypi/ |
... | ... |
@@ -124,8 +124,8 @@ class DotWidget(Gtk.DrawingArea): |
124 | 124 |
|
125 | 125 |
def set_dotcode(self, dotcode, filename=None): |
126 | 126 |
self.openfilename = None |
127 |
- if isinstance(dotcode, str): |
|
128 |
- dotcode = dotcode.encode('utf-8') |
|
127 |
+ # By default DOT language is UTF-8, but it accepts other encodings |
|
128 |
+ assert isinstance(dotcode, bytes) |
|
129 | 129 |
xdotcode = self.run_filter(dotcode) |
130 | 130 |
if xdotcode is None: |
131 | 131 |
return False |
... | ... |
@@ -151,7 +151,7 @@ class DotWidget(Gtk.DrawingArea): |
151 | 151 |
def reload(self): |
152 | 152 |
if self.openfilename is not None: |
153 | 153 |
try: |
154 |
- fp = open(self.openfilename, 'rt') |
|
154 |
+ fp = open(self.openfilename, 'rb') |
|
155 | 155 |
self.set_dotcode(fp.read(), self.openfilename) |
156 | 156 |
fp.close() |
157 | 157 |
except IOError: |
... | ... |
@@ -607,7 +607,7 @@ class DotWindow(Gtk.Window): |
607 | 607 |
|
608 | 608 |
def open_file(self, filename): |
609 | 609 |
try: |
610 |
- fp = open(filename, 'rt') |
|
610 |
+ fp = open(filename, 'rb') |
|
611 | 611 |
self.set_dotcode(fp.read(), filename) |
612 | 612 |
fp.close() |
613 | 613 |
except IOError as ex: |