|
5 | 5 | # PY3KTODO: Get rid of "print >>fh" syntax
|
6 | 6 |
|
7 | 7 | from __future__ import division, print_function
|
8 |
| -import contextlib |
9 | 8 | import glob, math, os, shutil, sys, time
|
10 | 9 | def _fn_name(): return sys._getframe(1).f_code.co_name
|
11 | 10 | import io
|
@@ -974,11 +973,6 @@ def print_ps(self, outfile, *args, **kwargs):
|
974 | 973 | def print_eps(self, outfile, *args, **kwargs):
|
975 | 974 | return self._print_ps(outfile, 'eps', *args, **kwargs)
|
976 | 975 |
|
977 |
| - |
978 |
| - |
979 |
| - |
980 |
| - |
981 |
| - |
982 | 976 | def _print_ps(self, outfile, format, *args, **kwargs):
|
983 | 977 | papertype = kwargs.pop("papertype", rcParams['ps.papersize'])
|
984 | 978 | papertype = papertype.lower()
|
@@ -1106,21 +1100,7 @@ def write(self, *kl, **kwargs):
|
1106 | 1100 | self.figure.set_facecolor(origfacecolor)
|
1107 | 1101 | self.figure.set_edgecolor(origedgecolor)
|
1108 | 1102 |
|
1109 |
| - if rcParams['ps.usedistiller']: |
1110 |
| - # We are going to use an external program to process the output. |
1111 |
| - # Write to a temporary file. |
1112 |
| - fd, tmpfile = mkstemp() |
1113 |
| - context_manager = io.open(fd, 'wb') |
1114 |
| - else: |
1115 |
| - # Write directly to outfile. |
1116 |
| - if passed_in_file_object: |
1117 |
| - @contextlib.contextmanager |
1118 |
| - def null_context(value): |
1119 |
| - yield value |
1120 |
| - context_manager = null_context(outfile) |
1121 |
| - else: |
1122 |
| - context_manager = open(outfile, 'wb') |
1123 |
| - with context_manager as raw_fh: |
| 1103 | + def print_figure_impl(): |
1124 | 1104 | if sys.version_info[0] >= 3:
|
1125 | 1105 | fh = io.TextIOWrapper(raw_fh, encoding="ascii")
|
1126 | 1106 | else:
|
@@ -1195,6 +1175,24 @@ def null_context(value):
|
1195 | 1175 | if not isEPSF: print("%%EOF", file=fh)
|
1196 | 1176 | fh.flush()
|
1197 | 1177 |
|
| 1178 | + if sys.version_info[0] >= 3: |
| 1179 | + fh.detach() |
| 1180 | + |
| 1181 | + if rcParams['ps.usedistiller']: |
| 1182 | + # We are going to use an external program to process the output. |
| 1183 | + # Write to a temporary file. |
| 1184 | + fd, tmpfile = mkstemp() |
| 1185 | + with io.open(fd, 'wb') as raw_fh: |
| 1186 | + print_figure_impl() |
| 1187 | + else: |
| 1188 | + # Write directly to outfile. |
| 1189 | + if passed_in_file_object: |
| 1190 | + raw_fh = outfile |
| 1191 | + print_figure_impl() |
| 1192 | + else: |
| 1193 | + with open(outfile, 'wb') as raw_fh: |
| 1194 | + print_figure_impl() |
| 1195 | + |
1198 | 1196 | if rcParams['ps.usedistiller']:
|
1199 | 1197 | if rcParams['ps.usedistiller'] == 'ghostscript':
|
1200 | 1198 | gs_distill(tmpfile, isEPSF, ptype=papertype, bbox=bbox)
|
|
0 commit comments