Skip to content

Commit b4bc43f

Browse files
committed
Removed ImageCms constants and versions()
1 parent 4301c1f commit b4bc43f

File tree

4 files changed

+72
-110
lines changed

4 files changed

+72
-110
lines changed

Tests/test_imagecms.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,6 @@ def skip_missing() -> None:
5454
def test_sanity() -> None:
5555
# basic smoke test.
5656
# this mostly follows the cms_test outline.
57-
with pytest.warns(DeprecationWarning, match="PIL.ImageCms.versions"):
58-
v = ImageCms.versions() # should return four strings
59-
assert v[0] == "1.0.0 pil"
60-
assert list(map(type, v)) == [str, str, str, str]
6157

6258
# internal version number
6359
version = features.version_module("littlecms2")
@@ -703,13 +699,6 @@ def test_cmyk_lab() -> None:
703699

704700

705701
def test_deprecation() -> None:
706-
with pytest.warns(DeprecationWarning, match="ImageCms.DESCRIPTION"):
707-
assert ImageCms.DESCRIPTION.strip().startswith("pyCMS")
708-
with pytest.warns(DeprecationWarning, match="ImageCms.VERSION"):
709-
assert ImageCms.VERSION == "1.0.0 pil"
710-
with pytest.warns(DeprecationWarning, match="ImageCms.FLAGS"):
711-
assert isinstance(ImageCms.FLAGS, dict)
712-
713702
profile = ImageCmsProfile(ImageCms.createProfile("sRGB"))
714703
with pytest.warns(DeprecationWarning, match="RGBA;16B"):
715704
ImageCms.ImageCmsTransform(profile, profile, "RGBA;16B", "RGB")

docs/deprecations.rst

Lines changed: 72 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -12,43 +12,6 @@ Deprecated features
1212
Below are features which are considered deprecated. Where appropriate,
1313
a :py:exc:`DeprecationWarning` is issued.
1414

15-
ImageCms constants and versions() function
16-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17-
18-
.. deprecated:: 10.3.0
19-
20-
A number of constants and a function in :py:mod:`.ImageCms` have been deprecated.
21-
This includes a table of flags based on LittleCMS version 1 which has been
22-
replaced with a new class :py:class:`.ImageCms.Flags` based on LittleCMS 2 flags.
23-
24-
============================================ ====================================================
25-
Deprecated Use instead
26-
============================================ ====================================================
27-
``ImageCms.DESCRIPTION`` No replacement
28-
``ImageCms.VERSION`` ``PIL.__version__``
29-
``ImageCms.FLAGS["MATRIXINPUT"]`` :py:attr:`.ImageCms.Flags.CLUT_POST_LINEARIZATION`
30-
``ImageCms.FLAGS["MATRIXOUTPUT"]`` :py:attr:`.ImageCms.Flags.FORCE_CLUT`
31-
``ImageCms.FLAGS["MATRIXONLY"]`` No replacement
32-
``ImageCms.FLAGS["NOWHITEONWHITEFIXUP"]`` :py:attr:`.ImageCms.Flags.NOWHITEONWHITEFIXUP`
33-
``ImageCms.FLAGS["NOPRELINEARIZATION"]`` :py:attr:`.ImageCms.Flags.CLUT_PRE_LINEARIZATION`
34-
``ImageCms.FLAGS["GUESSDEVICECLASS"]`` :py:attr:`.ImageCms.Flags.GUESSDEVICECLASS`
35-
``ImageCms.FLAGS["NOTCACHE"]`` :py:attr:`.ImageCms.Flags.NOCACHE`
36-
``ImageCms.FLAGS["NOTPRECALC"]`` :py:attr:`.ImageCms.Flags.NOOPTIMIZE`
37-
``ImageCms.FLAGS["NULLTRANSFORM"]`` :py:attr:`.ImageCms.Flags.NULLTRANSFORM`
38-
``ImageCms.FLAGS["HIGHRESPRECALC"]`` :py:attr:`.ImageCms.Flags.HIGHRESPRECALC`
39-
``ImageCms.FLAGS["LOWRESPRECALC"]`` :py:attr:`.ImageCms.Flags.LOWRESPRECALC`
40-
``ImageCms.FLAGS["GAMUTCHECK"]`` :py:attr:`.ImageCms.Flags.GAMUTCHECK`
41-
``ImageCms.FLAGS["WHITEBLACKCOMPENSATION"]`` :py:attr:`.ImageCms.Flags.BLACKPOINTCOMPENSATION`
42-
``ImageCms.FLAGS["BLACKPOINTCOMPENSATION"]`` :py:attr:`.ImageCms.Flags.BLACKPOINTCOMPENSATION`
43-
``ImageCms.FLAGS["SOFTPROOFING"]`` :py:attr:`.ImageCms.Flags.SOFTPROOFING`
44-
``ImageCms.FLAGS["PRESERVEBLACK"]`` :py:attr:`.ImageCms.Flags.NONEGATIVES`
45-
``ImageCms.FLAGS["NODEFAULTRESOURCEDEF"]`` :py:attr:`.ImageCms.Flags.NODEFAULTRESOURCEDEF`
46-
``ImageCms.FLAGS["GRIDPOINTS"]`` :py:attr:`.ImageCms.Flags.GRIDPOINTS()`
47-
``ImageCms.versions()`` :py:func:`PIL.features.version_module` with
48-
``feature="littlecms2"``, :py:data:`sys.version` or
49-
:py:data:`sys.version_info`, and ``PIL.__version__``
50-
============================================ ====================================================
51-
5215
Non-image modes in ImageCms
5316
^^^^^^^^^^^^^^^^^^^^^^^^^^^
5417

@@ -153,6 +116,78 @@ The functions ``IptcImageFile.dump`` and ``IptcImageFile.i``, and the constant
153116
intended for internal use, so there is no replacement. They can each be replaced by a
154117
single line of code using builtin functions in Python.
155118

119+
ImageCms constants and versions() function
120+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
121+
122+
.. deprecated:: 10.3.0
123+
.. versionremoved:: 12.0.0
124+
125+
A number of constants and a function in :py:mod:`.ImageCms` have been removed. This
126+
includes a table of flags based on LittleCMS version 1 which has been replaced with a
127+
new class :py:class:`.ImageCms.Flags` based on LittleCMS 2 flags.
128+
129+
============================================ ====================================================
130+
Deprecated Use instead
131+
============================================ ====================================================
132+
``ImageCms.DESCRIPTION`` No replacement
133+
``ImageCms.VERSION`` ``PIL.__version__``
134+
``ImageCms.FLAGS["MATRIXINPUT"]`` :py:attr:`.ImageCms.Flags.CLUT_POST_LINEARIZATION`
135+
``ImageCms.FLAGS["MATRIXOUTPUT"]`` :py:attr:`.ImageCms.Flags.FORCE_CLUT`
136+
``ImageCms.FLAGS["MATRIXONLY"]`` No replacement
137+
``ImageCms.FLAGS["NOWHITEONWHITEFIXUP"]`` :py:attr:`.ImageCms.Flags.NOWHITEONWHITEFIXUP`
138+
``ImageCms.FLAGS["NOPRELINEARIZATION"]`` :py:attr:`.ImageCms.Flags.CLUT_PRE_LINEARIZATION`
139+
``ImageCms.FLAGS["GUESSDEVICECLASS"]`` :py:attr:`.ImageCms.Flags.GUESSDEVICECLASS`
140+
``ImageCms.FLAGS["NOTCACHE"]`` :py:attr:`.ImageCms.Flags.NOCACHE`
141+
``ImageCms.FLAGS["NOTPRECALC"]`` :py:attr:`.ImageCms.Flags.NOOPTIMIZE`
142+
``ImageCms.FLAGS["NULLTRANSFORM"]`` :py:attr:`.ImageCms.Flags.NULLTRANSFORM`
143+
``ImageCms.FLAGS["HIGHRESPRECALC"]`` :py:attr:`.ImageCms.Flags.HIGHRESPRECALC`
144+
``ImageCms.FLAGS["LOWRESPRECALC"]`` :py:attr:`.ImageCms.Flags.LOWRESPRECALC`
145+
``ImageCms.FLAGS["GAMUTCHECK"]`` :py:attr:`.ImageCms.Flags.GAMUTCHECK`
146+
``ImageCms.FLAGS["WHITEBLACKCOMPENSATION"]`` :py:attr:`.ImageCms.Flags.BLACKPOINTCOMPENSATION`
147+
``ImageCms.FLAGS["BLACKPOINTCOMPENSATION"]`` :py:attr:`.ImageCms.Flags.BLACKPOINTCOMPENSATION`
148+
``ImageCms.FLAGS["SOFTPROOFING"]`` :py:attr:`.ImageCms.Flags.SOFTPROOFING`
149+
``ImageCms.FLAGS["PRESERVEBLACK"]`` :py:attr:`.ImageCms.Flags.NONEGATIVES`
150+
``ImageCms.FLAGS["NODEFAULTRESOURCEDEF"]`` :py:attr:`.ImageCms.Flags.NODEFAULTRESOURCEDEF`
151+
``ImageCms.FLAGS["GRIDPOINTS"]`` :py:attr:`.ImageCms.Flags.GRIDPOINTS()`
152+
``ImageCms.versions()`` :py:func:`PIL.features.version_module` with
153+
``feature="littlecms2"``, :py:data:`sys.version` or
154+
:py:data:`sys.version_info`, and ``PIL.__version__``
155+
============================================ ====================================================
156+
157+
ImageMath eval()
158+
^^^^^^^^^^^^^^^^
159+
160+
.. deprecated:: 10.3.0
161+
.. versionremoved:: 12.0.0
162+
163+
``ImageMath.eval()`` has been removed. Use :py:meth:`~PIL.ImageMath.lambda_eval` or
164+
:py:meth:`~PIL.ImageMath.unsafe_eval` instead.
165+
166+
BGR;15, BGR 16 and BGR;24
167+
^^^^^^^^^^^^^^^^^^^^^^^^^
168+
169+
.. deprecated:: 10.4.0
170+
.. versionremoved:: 12.0.0
171+
172+
The experimental BGR;15, BGR;16 and BGR;24 modes have been removed.
173+
174+
Support for LibTIFF earlier than 4
175+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
176+
177+
.. deprecated:: 10.4.0
178+
.. versionremoved:: 12.0.0
179+
180+
Support for LibTIFF earlier than version 4 has been removed.
181+
Upgrade to a newer version of LibTIFF instead.
182+
183+
ImageDraw.getdraw hints parameter
184+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
185+
186+
.. deprecated:: 10.4.0
187+
.. versionremoved:: 12.0.0
188+
189+
The ``hints`` parameter in :py:meth:`~PIL.ImageDraw.getdraw()` has been removed.
190+
156191
Image isImageType()
157192
^^^^^^^^^^^^^^^^^^^
158193

@@ -201,40 +236,6 @@ removed. They were used for obtaining raw pointers to ``ImagingCore`` internals.
201236
interact with C code, you can use ``Image.Image.getim()``, which returns a ``Capsule``
202237
object.
203238

204-
ImageMath eval()
205-
^^^^^^^^^^^^^^^^
206-
207-
.. deprecated:: 10.3.0
208-
.. versionremoved:: 12.0.0
209-
210-
``ImageMath.eval()`` has been removed. Use :py:meth:`~PIL.ImageMath.lambda_eval` or
211-
:py:meth:`~PIL.ImageMath.unsafe_eval` instead.
212-
213-
BGR;15, BGR 16 and BGR;24
214-
^^^^^^^^^^^^^^^^^^^^^^^^^
215-
216-
.. deprecated:: 10.4.0
217-
.. versionremoved:: 12.0.0
218-
219-
The experimental BGR;15, BGR;16 and BGR;24 modes have been removed.
220-
221-
Support for LibTIFF earlier than 4
222-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
223-
224-
.. deprecated:: 10.4.0
225-
.. versionremoved:: 12.0.0
226-
227-
Support for LibTIFF earlier than version 4 has been removed.
228-
Upgrade to a newer version of LibTIFF instead.
229-
230-
ImageDraw.getdraw hints parameter
231-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
232-
233-
.. deprecated:: 10.4.0
234-
.. versionremoved:: 12.0.0
235-
236-
The ``hints`` parameter in :py:meth:`~PIL.ImageDraw.getdraw()` has been removed.
237-
238239
TiffImagePlugin IFD_LEGACY_API
239240
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
240241

docs/reference/ImageCms.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ Functions
5656
.. autofunction:: get_display_profile
5757
.. autofunction:: isIntentSupported
5858
.. autofunction:: profileToProfile
59-
.. autofunction:: versions
6059

6160
CmsProfile
6261
----------

src/PIL/ImageCms.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -108,20 +108,6 @@
108108
_VERSION = "1.0.0 pil"
109109

110110

111-
def __getattr__(name: str) -> Any:
112-
if name == "DESCRIPTION":
113-
deprecate("PIL.ImageCms.DESCRIPTION", 12)
114-
return _DESCRIPTION
115-
elif name == "VERSION":
116-
deprecate("PIL.ImageCms.VERSION", 12)
117-
return _VERSION
118-
elif name == "FLAGS":
119-
deprecate("PIL.ImageCms.FLAGS", 12, "PIL.ImageCms.Flags")
120-
return _FLAGS
121-
msg = f"module '{__name__}' has no attribute '{name}'"
122-
raise AttributeError(msg)
123-
124-
125111
# --------------------------------------------------------------------.
126112

127113

@@ -1108,16 +1094,3 @@ def isIntentSupported(
11081094
return -1
11091095
except (AttributeError, OSError, TypeError, ValueError) as v:
11101096
raise PyCMSError(v) from v
1111-
1112-
1113-
def versions() -> tuple[str, str | None, str, str]:
1114-
"""
1115-
(pyCMS) Fetches versions.
1116-
"""
1117-
1118-
deprecate(
1119-
"PIL.ImageCms.versions()",
1120-
12,
1121-
'(PIL.features.version("littlecms2"), sys.version, PIL.__version__)',
1122-
)
1123-
return _VERSION, core.littlecms_version, sys.version.split()[0], __version__

0 commit comments

Comments
 (0)