Skip to content

Commit 016fef2

Browse files
j-t-1stefan6419846
andauthored
STY: Remove an unnecessary else (#3179)
--------- Co-authored-by: Stefan <96178532+stefan6419846@users.noreply.github.com>
1 parent 56220ab commit 016fef2

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

pypdf/_reader.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -876,8 +876,7 @@ def _read_xref_tables_and_trailers(
876876
f"Previous trailer cannot be read: {e.args}", __name__
877877
)
878878
break
879-
else:
880-
raise PdfReadError(f"Trailer cannot be read: {e.args}")
879+
raise PdfReadError(f"Trailer cannot be read: {e!s}")
881880
self._process_xref_stream(xrefstream)
882881
if "/Prev" in xrefstream:
883882
startxref = cast(int, xrefstream["/Prev"])
@@ -972,7 +971,8 @@ def _read_pdf15_xref_stream(
972971
stream.seek(-1, 1)
973972
idnum, generation = self.read_object_header(stream)
974973
xrefstream = cast(ContentStream, read_object(stream, self))
975-
assert cast(str, xrefstream["/Type"]) == "/XRef"
974+
if cast(str, xrefstream["/Type"]) != "/XRef":
975+
raise PdfReadError(f"Unexpected type {xrefstream['/Type']!r}")
976976
self.cache_indirect_object(generation, idnum, xrefstream)
977977
stream_data = BytesIO(xrefstream.get_data())
978978
# Index pairs specify the subsections in the dictionary.

tests/test_reader.py

+8
Original file line numberDiff line numberDiff line change
@@ -1835,3 +1835,11 @@ def test_infinite_loop_for_length_value():
18351835
writer = PdfWriter()
18361836
with pytest.raises(PdfReadError, match=r"^Detected loop with self reference for IndirectObject\(165, 0, \d+\)\.$"):
18371837
writer.add_page(reader.pages[0])
1838+
1839+
1840+
def test_trailer_cannot_be_read():
1841+
path = RESOURCE_ROOT / "crazyones.pdf"
1842+
data = path.read_bytes().replace(b"/Type/XRef", b"/Type/Invalid")
1843+
with pytest.raises(PdfReadError, match=r"^Trailer cannot be read: Unexpected type '/Invalid'$"):
1844+
reader = PdfReader(BytesIO(data))
1845+
list(reader.pages)

0 commit comments

Comments
 (0)