#20295: Teach imghdr to recognize OpenEXR format images.
Patch by Martin Vignali, test by Claudiu Popa.
diff --git a/Doc/library/imghdr.rst b/Doc/library/imghdr.rst
index 06faa88..c60df24 100644
--- a/Doc/library/imghdr.rst
+++ b/Doc/library/imghdr.rst
@@ -50,6 +50,11 @@
+------------+-----------------------------------+
| ``'webp'`` | WebP files |
+------------+-----------------------------------+
+| ``'exr'`` | OpenEXR Files |
++------------+-----------------------------------+
+
+.. versionadded:: 3.5
+ The *exr* format was added.
.. versionchanged:: 3.5
The *webp* type was added.
diff --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst
index 1b4253c..9fff48c 100644
--- a/Doc/whatsnew/3.5.rst
+++ b/Doc/whatsnew/3.5.rst
@@ -141,6 +141,12 @@
*module* contains no docstrings instead of raising :exc:`ValueError`
(contributed by Glenn Jones in :issue:`15916`).
+imghdr
+------
+
+* :func:`~imghdr.what` now recognizes the `OpenEXR <http://www.openexr.com>`_
+ format (contributed by Martin vignali and Cladui Popa in :issue:`20295`).
+
importlib
---------
diff --git a/Lib/imghdr.py b/Lib/imghdr.py
index fe77e49..b267925 100644
--- a/Lib/imghdr.py
+++ b/Lib/imghdr.py
@@ -116,6 +116,12 @@
tests.append(test_webp)
+def test_exr(h, f):
+ if h.startswith(b'\x76\x2f\x31\x01'):
+ return 'exr'
+
+tests.append(test_exr)
+
#--------------------#
# Small test program #
#--------------------#
diff --git a/Lib/test/imghdrdata/python.exr b/Lib/test/imghdrdata/python.exr
new file mode 100644
index 0000000..773c81e
--- /dev/null
+++ b/Lib/test/imghdrdata/python.exr
Binary files differ
diff --git a/Lib/test/test_imghdr.py b/Lib/test/test_imghdr.py
index e2a1aca..b54daf8 100644
--- a/Lib/test/test_imghdr.py
+++ b/Lib/test/test_imghdr.py
@@ -18,6 +18,7 @@
('python.tiff', 'tiff'),
('python.xbm', 'xbm'),
('python.webp', 'webp'),
+ ('python.exr', 'exr'),
)
class UnseekableIO(io.FileIO):
diff --git a/Misc/NEWS b/Misc/NEWS
index 9ae200a..1cd7d58 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -103,6 +103,8 @@
Library
-------
+- Issue #20295: imghdr now recognizes OpenEXR format images.
+
- Issue #21729: Used the "with" statement in the dbm.dumb module to ensure
files closing. Patch by Claudiu Popa.