Skip to content

Commit 5c25bc8

Browse files
committed
fixup! PI: Don't load entire file into memory when passed file name
1 parent 9ccce80 commit 5c25bc8

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

pypdf/_reader.py

+1
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,7 @@ def __init__(
314314

315315
if isinstance(stream, (str, Path)):
316316
stream = open(stream, "rb") # noqa: SIM115
317+
# Wish I could just close stream in __del__ but that fails a test very strangely
317318
weakref.finalize(self, stream.close)
318319

319320
self.read(stream)

tests/test_writer.py

+4
Original file line numberDiff line numberDiff line change
@@ -1211,6 +1211,7 @@ def test_set_page_label(pdf_file_path):
12111211
ValueError, match="if given, start must be equal or greater than one"
12121212
):
12131213
writer.set_page_label(0, 5, "/r", start=-1)
1214+
del writer
12141215

12151216
pdf_file_path.unlink()
12161217

@@ -1234,6 +1235,7 @@ def test_set_page_label(pdf_file_path):
12341235
writer.set_page_label(0, 1, "/A")
12351236
writer.write(pdf_file_path)
12361237
assert PdfReader(pdf_file_path).page_labels[: len(expected)] == expected
1238+
del reader
12371239

12381240
pdf_file_path.unlink()
12391241

@@ -1477,6 +1479,7 @@ def test_update_form_fields(tmp_path):
14771479
)
14781480

14791481
writer.write(write_data_here)
1482+
del writer
14801483
reader = PdfReader(write_data_here)
14811484
flds = reader.get_fields()
14821485
assert flds["CheckBox1"]["/V"] == "/Yes"
@@ -1498,6 +1501,7 @@ def test_update_form_fields(tmp_path):
14981501
assert all(x in flds["CheckBox1"]["/_States_"] for x in ["/Off", "/Yes"])
14991502
assert all(x in flds["RadioGroup1"]["/_States_"] for x in ["/1", "/2", "/3"])
15001503
assert all(x in flds["Liste1"]["/_States_"] for x in ["Liste1", "Liste2", "Liste3"])
1504+
del reader, flds
15011505

15021506
Path(write_data_here).unlink()
15031507

0 commit comments

Comments
 (0)