mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-25 17:36:18 +03:00
Remove Image.coerce_e, deprecated in 9.2.0
This commit is contained in:
parent
584f8c39de
commit
b25bf5161a
|
@ -1,7 +1,5 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from PIL import Image
|
|
||||||
|
|
||||||
from .helper import assert_image_equal, hopper
|
from .helper import assert_image_equal, hopper
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,8 +60,3 @@ def test_f_mode():
|
||||||
im = hopper("F")
|
im = hopper("F")
|
||||||
with pytest.raises(ValueError):
|
with pytest.raises(ValueError):
|
||||||
im.point(None)
|
im.point(None)
|
||||||
|
|
||||||
|
|
||||||
def test_coerce_e_deprecation():
|
|
||||||
with pytest.warns(DeprecationWarning):
|
|
||||||
assert Image.coerce_e(2).data == 2
|
|
||||||
|
|
|
@ -12,14 +12,6 @@ Deprecated features
|
||||||
Below are features which are considered deprecated. Where appropriate,
|
Below are features which are considered deprecated. Where appropriate,
|
||||||
a ``DeprecationWarning`` is issued.
|
a ``DeprecationWarning`` is issued.
|
||||||
|
|
||||||
Image.coerce_e
|
|
||||||
~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
.. deprecated:: 9.2.0
|
|
||||||
|
|
||||||
This undocumented method has been deprecated and will be removed in Pillow 10
|
|
||||||
(2023-07-01).
|
|
||||||
|
|
||||||
.. _Font size and offset methods:
|
.. _Font size and offset methods:
|
||||||
|
|
||||||
Font size and offset methods
|
Font size and offset methods
|
||||||
|
@ -222,6 +214,14 @@ Support for PyQt5 and PySide2 has been removed from ``ImageQt``. Upgrade to
|
||||||
`PyQt6 <https://www.riverbankcomputing.com/static/Docs/PyQt6/>`_ or
|
`PyQt6 <https://www.riverbankcomputing.com/static/Docs/PyQt6/>`_ or
|
||||||
`PySide6 <https://doc.qt.io/qtforpython/>`_ instead.
|
`PySide6 <https://doc.qt.io/qtforpython/>`_ instead.
|
||||||
|
|
||||||
|
Image.coerce_e
|
||||||
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. deprecated:: 9.2.0
|
||||||
|
.. versionremoved:: 10.0.0
|
||||||
|
|
||||||
|
This undocumented method has been removed.
|
||||||
|
|
||||||
PILLOW_VERSION constant
|
PILLOW_VERSION constant
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,6 @@ from . import (
|
||||||
_plugins,
|
_plugins,
|
||||||
)
|
)
|
||||||
from ._binary import i32le, o32be, o32le
|
from ._binary import i32le, o32be, o32le
|
||||||
from ._deprecate import deprecate
|
|
||||||
from ._util import DeferredError, is_path
|
from ._util import DeferredError, is_path
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
@ -421,26 +420,18 @@ def _getencoder(mode, encoder_name, args, extra=()):
|
||||||
# Simple expression analyzer
|
# Simple expression analyzer
|
||||||
|
|
||||||
|
|
||||||
def coerce_e(value):
|
|
||||||
deprecate("coerce_e", 10)
|
|
||||||
return value if isinstance(value, _E) else _E(1, value)
|
|
||||||
|
|
||||||
|
|
||||||
# _E(scale, offset) represents the affine transformation scale * x + offset.
|
|
||||||
# The "data" field is named for compatibility with the old implementation,
|
|
||||||
# and should be renamed once coerce_e is removed.
|
|
||||||
class _E:
|
class _E:
|
||||||
def __init__(self, scale, data):
|
def __init__(self, scale, offset):
|
||||||
self.scale = scale
|
self.scale = scale
|
||||||
self.data = data
|
self.offset = offset
|
||||||
|
|
||||||
def __neg__(self):
|
def __neg__(self):
|
||||||
return _E(-self.scale, -self.data)
|
return _E(-self.scale, -self.offset)
|
||||||
|
|
||||||
def __add__(self, other):
|
def __add__(self, other):
|
||||||
if isinstance(other, _E):
|
if isinstance(other, _E):
|
||||||
return _E(self.scale + other.scale, self.data + other.data)
|
return _E(self.scale + other.scale, self.offset + other.offset)
|
||||||
return _E(self.scale, self.data + other)
|
return _E(self.scale, self.offset + other)
|
||||||
|
|
||||||
__radd__ = __add__
|
__radd__ = __add__
|
||||||
|
|
||||||
|
@ -453,19 +444,19 @@ class _E:
|
||||||
def __mul__(self, other):
|
def __mul__(self, other):
|
||||||
if isinstance(other, _E):
|
if isinstance(other, _E):
|
||||||
return NotImplemented
|
return NotImplemented
|
||||||
return _E(self.scale * other, self.data * other)
|
return _E(self.scale * other, self.offset * other)
|
||||||
|
|
||||||
__rmul__ = __mul__
|
__rmul__ = __mul__
|
||||||
|
|
||||||
def __truediv__(self, other):
|
def __truediv__(self, other):
|
||||||
if isinstance(other, _E):
|
if isinstance(other, _E):
|
||||||
return NotImplemented
|
return NotImplemented
|
||||||
return _E(self.scale / other, self.data / other)
|
return _E(self.scale / other, self.offset / other)
|
||||||
|
|
||||||
|
|
||||||
def _getscaleoffset(expr):
|
def _getscaleoffset(expr):
|
||||||
a = expr(_E(1, 0))
|
a = expr(_E(1, 0))
|
||||||
return (a.scale, a.data) if isinstance(a, _E) else (0, a)
|
return (a.scale, a.offset) if isinstance(a, _E) else (0, a)
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue
Block a user