From 0005cb3d6c70e685d7fe136c01419b9f38baf4bb Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 1 Sep 2026 14:44:13 +1000 Subject: [PATCH] Mark ImageFile._open() as abstract --- src/PIL/ImageFile.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/PIL/ImageFile.py b/src/PIL/ImageFile.py index 14038e4732d..3c15245848e 100644 --- a/src/PIL/ImageFile.py +++ b/src/PIL/ImageFile.py @@ -113,7 +113,7 @@ class _Tile(NamedTuple): # ImageFile base class -class ImageFile(Image.Image): +class ImageFile(Image.Image, metaclass=abc.ABCMeta): """Base class for image file format handlers.""" def __init__( @@ -175,6 +175,7 @@ def __init__( self.fp.close() raise + @abc.abstractmethod def _open(self) -> None: pass @@ -480,7 +481,7 @@ def load(self, im: StubImageFile) -> Image.Image: pass -class StubImageFile(ImageFile, metaclass=abc.ABCMeta): +class StubImageFile(ImageFile): """ Base class for stub image loaders. @@ -490,10 +491,6 @@ class StubImageFile(ImageFile, metaclass=abc.ABCMeta): _handler: StubHandler | None = None - @abc.abstractmethod - def _open(self) -> None: - pass - def load(self) -> Image.core.PixelAccess | None: if self._handler is None: msg = f"cannot find loader for this {self.format} file"