Merge pull request #4646 from nulano/show-command

Deprecate Image.show(command="...")
This commit is contained in:
Andrew Murray 2020-06-23 19:47:57 +10:00 committed by GitHub
commit 9979efff12
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 5 deletions

View File

@ -664,6 +664,18 @@ class TestImage:
except OSError as e:
assert str(e) == "buffer overrun when reading image file"
def test_show_deprecation(self, monkeypatch):
monkeypatch.setattr(Image, "_show", lambda *args, **kwargs: None)
im = Image.new("RGB", (50, 50), "white")
with pytest.warns(None) as raised:
im.show()
assert not raised
with pytest.warns(DeprecationWarning):
im.show(command="mock")
class MockEncoder:
pass

View File

@ -12,6 +12,14 @@ Deprecated features
Below are features which are considered deprecated. Where appropriate,
a ``DeprecationWarning`` is issued.
Image.show command parameter
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. deprecated:: 7.2.0
The ``command`` parameter was deprecated and will be removed in a future release.
Use a subclass of ``ImageShow.Viewer`` instead.
ImageFile.raise_ioerror
~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -2181,8 +2181,10 @@ class Image:
def show(self, title=None, command=None):
"""
Displays this image. This method is mainly intended for
debugging purposes.
Displays this image. This method is mainly intended for debugging purposes.
This method calls :py:func:`PIL.ImageShow.show` internally. You can use
:py:func:`PIL.ImageShow.register` to override its default behaviour.
The image is first saved to a temporary file. By default, it will be in
PNG format.
@ -2194,11 +2196,16 @@ class Image:
On Windows, the image is opened with the standard PNG display utility.
:param title: Optional title to use for the image window,
where possible.
:param command: command used to show the image
:param title: Optional title to use for the image window, where possible.
"""
if command is not None:
warnings.warn(
"The command parameter is deprecated and will be removed in a future "
"release. Use a subclass of ImageShow.Viewer instead.",
DeprecationWarning,
)
_show(self, title=title, command=command)
def split(self):