10000 Merge pull request #14479 from anntzer/psprint · matplotlib/matplotlib@5a3276f · GitHub
[go: up one dir, main page]

Skip to content

Commit 5a3276f

Browse files
authored
Merge pull request #14479 from anntzer/psprint
MNT: fstringify backend_ps more.
2 parents 5fc44ee + 854687d commit 5a3276f

File tree

1 file changed

+39
-55
lines changed

1 file changed

+39
-55
lines changed

lib/matplotlib/backends/backend_ps.py

Lines changed: 39 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -985,9 +985,9 @@ def print_figure_impl(fh):
985985
if is_eps:
986986
print("%!PS-Adobe-3.0 EPSF-3.0", file=fh)
987987
else:
988-
print("%!PS-Adobe-3.0\n"
989-
"%%DocumentPaperSizes: {papertype}\n"
990-
"%%Pages: 1\n".format(papertype=papertype),
988+
print(f"%!PS-Adobe-3.0\n"
989+
f"%%DocumentPaperSizes: {papertype}\n"
990+
f"%%Pages: 1\n",
991991
end="", file=fh)
992992
if title:
993993
print("%%Title: " + title, file=fh)
@@ -999,13 +999,11 @@ def print_figure_impl(fh):
999999
int(source_date_epoch)).strftime("%a %b %d %H:%M:%S %Y")
10001000
else:
10011001
source_date = time.ctime()
1002-
print("%%Creator: {creator_str}\n"
1003-
"%%CreationDate: {source_date}\n"
1004-
"%%Orientation: {orientation}\n"
1005-
"%%BoundingBox: {bbox[0]} {bbox[1]} {bbox[2]} {bbox[3]}\n"
1006-
"%%EndComments\n"
1007-
.format(creator_str=creator_str, source_date=source_date,
1008-
orientation=orientation, bbox=bbox),
1002+
print(f"%%Creator: {creator_str}\n"
1003+
f"%%CreationDate: {source_date}\n"
1004+
f"%%Orientation: {orientation}\n"
1005+
f"%%BoundingBox: {bbox[0]} {bbox[1]} {bbox[2]} {bbox[3]}\n"
1006+
f"%%EndComments\n",
10091007
end="", file=fh)
10101008

10111009
Ndict = len(psDefs)
@@ -1182,51 +1180,37 @@ def write(self, *args, **kwargs):
11821180

11831181
with TemporaryDirectory() as tmpdir:
11841182
tmpfile = os.path.join(tmpdir, "tmp.ps")
1185-
with open(tmpfile, 'w', encoding='latin-1') as fh:
1186-
# write the Encapsulated PostScript headers
1187-
print("%!PS-Adobe-3.0 EPSF-3.0", file=fh)
1188-
if title:
1189-
print("%%Title: "+title, file=fh)
1190-
# get source date from SOURCE_DATE_EPOCH, if set
1191-
# See https://reproducible-builds.org/specs/source-date-epoch/
1192-
source_date_epoch = os.getenv("SOURCE_DATE_EPOCH")
1193-
if source_date_epoch:
1194-
source_date = datetime.datetime.utcfromtimestamp(
1195-
int(source_date_epoch)).strftime(
1196-
"%a %b %d %H:%M:%S %Y")
1197-
else:
1198-
source_date = time.ctime()
1199-
print(
1200-
"%%Creator: {creator_str}\n"
1201-
"%%CreationDate: {source_date}\n"
1202-
"%%BoundingBox: {bbox[0]} {bbox[1]} {bbox[2]} {bbox[3]}\n"
1203-
"%%EndComments\n"
1204-
.format(creator_str=creator_str, source_date=source_date,
1205-
bbox=bbox),
1206-
end="", file=fh)
1207-
1208-
print("%%BeginProlog\n"
1209-
"/mpldict {len_psDefs} dict def\n"
1210-
"mpldict begin\n"
1211-
"{psDefs}\n"
1212-
"end\n"
1213-
"%%EndProlog\n"
1214-
.format(len_psDefs=len(psDefs),
1215-
psDefs="\n".join(psDefs)),
1216-
end="", file=fh)
1217-
1218-
print("mpldict begin", file=fh)
1219-
print("%s translate" % _nums_to_str(xo, yo), file=fh)
1220-
print("%s clipbox" % _nums_to_str(width*72, height*72, 0, 0),
1221-
file=fh)
1222-
1223-
# write the figure
1224-
print(self._pswriter.getvalue(), file=fh)
1225-
1226-
# write the trailer
1227-
print("end", file=fh)
1228-
print("showpage", file=fh)
1229-
fh.flush()
1183+
# get source date from SOURCE_DATE_EPOCH, if set
1184+
# See https://reproducible-builds.org/specs/source-date-epoch/
1185+
source_date_epoch = os.getenv("SOURCE_DATE_EPOCH")
1186+
if source_date_epoch:
1187+
source_date = datetime.datetime.utcfromtimestamp(
1188+
int(source_date_epoch)).strftime("%a %b %d %H:%M:%S %Y")
1189+
else:
1190+
source_date = time.ctime()
1191+
pathlib.Path(tmpfile).write_text(
1192+
f"""\
1193+
%!PS-Adobe-3.0 EPSF-3.0
1194+
{f'''%%Title: {title}
1195+
''' if title else ""}\
1196+
%%Creator: {creator_str}
1197+
%%CreationDate: {source_date}
1198+
%%BoundingBox: {bbox[0]} {bbox[1]} {bbox[2]} {bbox[3]}
1199+
%%EndComments
1200+
%%BeginProlog
1201+
/mpldict {len(psDefs)} dict def
1202+
mpldict begin
1203+
{"".join(psDefs)}
1204+
end
1205+
%%EndProlog
1206+
mpldict begin
1207+
{_nums_to_str(xo, yo)} translate
1208+
{_nums_to_str(width*72, height*72)} 0 0 clipbox
1209+
{self._pswriter.getvalue()}
1210+
end
1211+
showpage
1212+
""",
1213+
encoding="latin-1")
12301214

12311215
if is_landscape: # now we are ready to rotate
12321216
is_landscape = True

0 commit comments

Comments
 (0)
0