Skip to content

Commit

Permalink
move repeated code to private helper function
Browse files Browse the repository at this point in the history
  • Loading branch information
Yay295 authored Aug 16, 2024
1 parent 35a70e4 commit cf1a9ac
Showing 1 changed file with 10 additions and 15 deletions.
25 changes: 10 additions & 15 deletions src/PIL/TiffImagePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2080,38 +2080,33 @@ def readLong(self) -> int:
(value,) = struct.unpack(self.longFmt, self.f.read(4))
return value

def _verify_bytes_written(self, bytes_written: int | None, expected_bytes_written: int | None) -> None:
if bytes_written is not None and bytes_written != expected_bytes_written:
msg = f"wrote only {bytes_written} bytes but wanted {expected_bytes_written}"
raise RuntimeError(msg)

def rewriteLastShortToLong(self, value: int) -> None:
self.f.seek(-2, os.SEEK_CUR)
bytes_written = self.f.write(struct.pack(self.longFmt, value))
if bytes_written is not None and bytes_written != 4:
msg = f"wrote only {bytes_written} bytes but wanted 4"
raise RuntimeError(msg)
_verify_bytes_written(bytes_written, 4)

def rewriteLastShort(self, value: int) -> None:
self.f.seek(-2, os.SEEK_CUR)
bytes_written = self.f.write(struct.pack(self.shortFmt, value))
if bytes_written is not None and bytes_written != 2:
msg = f"wrote only {bytes_written} bytes but wanted 2"
raise RuntimeError(msg)
_verify_bytes_written(bytes_written, 2)

def rewriteLastLong(self, value: int) -> None:
self.f.seek(-4, os.SEEK_CUR)
bytes_written = self.f.write(struct.pack(self.longFmt, value))
if bytes_written is not None and bytes_written != 4:
msg = f"wrote only {bytes_written} bytes but wanted 4"
raise RuntimeError(msg)
_verify_bytes_written(bytes_written, 4)

def writeShort(self, value: int) -> None:
bytes_written = self.f.write(struct.pack(self.shortFmt, value))
if bytes_written is not None and bytes_written != 2:
msg = f"wrote only {bytes_written} bytes but wanted 2"
raise RuntimeError(msg)
_verify_bytes_written(bytes_written, 2)

def writeLong(self, value: int) -> None:
bytes_written = self.f.write(struct.pack(self.longFmt, value))
if bytes_written is not None and bytes_written != 4:
msg = f"wrote only {bytes_written} bytes but wanted 4"
raise RuntimeError(msg)
_verify_bytes_written(bytes_written, 4)

def close(self) -> None:
self.finalize()
Expand Down

0 comments on commit cf1a9ac

Please sign in to comment.