mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 16:07:30 +03:00 
			
		
		
		
	Merge pull request #4182 from radarhere/custom
Added UnidentifiedImageError
This commit is contained in:
		
						commit
						3a6cd40638
					
				|  | @ -1,4 +1,4 @@ | ||||||
| from PIL import GdImageFile | from PIL import GdImageFile, UnidentifiedImageError | ||||||
| 
 | 
 | ||||||
| from .helper import PillowTestCase | from .helper import PillowTestCase | ||||||
| 
 | 
 | ||||||
|  | @ -17,4 +17,4 @@ class TestFileGd(PillowTestCase): | ||||||
|     def test_invalid_file(self): |     def test_invalid_file(self): | ||||||
|         invalid_file = "Tests/images/flower.jpg" |         invalid_file = "Tests/images/flower.jpg" | ||||||
| 
 | 
 | ||||||
|         self.assertRaises(IOError, GdImageFile.open, invalid_file) |         self.assertRaises(UnidentifiedImageError, GdImageFile.open, invalid_file) | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ import os | ||||||
| import shutil | import shutil | ||||||
| import tempfile | import tempfile | ||||||
| 
 | 
 | ||||||
| from PIL import Image | from PIL import Image, UnidentifiedImageError | ||||||
| from PIL._util import py3 | from PIL._util import py3 | ||||||
| 
 | 
 | ||||||
| from .helper import PillowTestCase, hopper, is_win32, unittest | from .helper import PillowTestCase, hopper, is_win32, unittest | ||||||
|  | @ -48,6 +48,9 @@ class TestImage(PillowTestCase): | ||||||
|                 Image.new(mode, (1, 1)) |                 Image.new(mode, (1, 1)) | ||||||
|             self.assertEqual(str(e.exception), "unrecognized image mode") |             self.assertEqual(str(e.exception), "unrecognized image mode") | ||||||
| 
 | 
 | ||||||
|  |     def test_exception_inheritance(self): | ||||||
|  |         self.assertTrue(issubclass(UnidentifiedImageError, IOError)) | ||||||
|  | 
 | ||||||
|     def test_sanity(self): |     def test_sanity(self): | ||||||
| 
 | 
 | ||||||
|         im = Image.new("L", (100, 100)) |         im = Image.new("L", (100, 100)) | ||||||
|  | @ -88,7 +91,7 @@ class TestImage(PillowTestCase): | ||||||
|             import StringIO |             import StringIO | ||||||
| 
 | 
 | ||||||
|             im = StringIO.StringIO("") |             im = StringIO.StringIO("") | ||||||
|         self.assertRaises(IOError, Image.open, im) |         self.assertRaises(UnidentifiedImageError, Image.open, im) | ||||||
| 
 | 
 | ||||||
|     def test_bad_mode(self): |     def test_bad_mode(self): | ||||||
|         self.assertRaises(ValueError, Image.open, "filename", "bad mode") |         self.assertRaises(ValueError, Image.open, "filename", "bad mode") | ||||||
|  |  | ||||||
|  | @ -63,11 +63,11 @@ TODO | ||||||
| API Additions | API Additions | ||||||
| ============= | ============= | ||||||
| 
 | 
 | ||||||
| TODO | Custom unidentified image error | ||||||
| ^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||||||
| 
 |  | ||||||
| TODO |  | ||||||
| 
 | 
 | ||||||
|  | Pillow will now throw a custom ``UnidentifiedImageError`` when an image cannot be | ||||||
|  | identified. For backwards compatibility, this will inherit from ``IOError``. | ||||||
| 
 | 
 | ||||||
| Other Changes | Other Changes | ||||||
| ============= | ============= | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ | ||||||
| # purposes only. | # purposes only. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| from . import ImageFile, ImagePalette | from . import ImageFile, ImagePalette, UnidentifiedImageError | ||||||
| from ._binary import i8, i16be as i16, i32be as i32 | from ._binary import i8, i16be as i16, i32be as i32 | ||||||
| 
 | 
 | ||||||
| ## | ## | ||||||
|  | @ -82,4 +82,4 @@ def open(fp, mode="r"): | ||||||
|     try: |     try: | ||||||
|         return GdImageFile(fp) |         return GdImageFile(fp) | ||||||
|     except SyntaxError: |     except SyntaxError: | ||||||
|         raise IOError("cannot identify this image file") |         raise UnidentifiedImageError("cannot identify this image file") | ||||||
|  |  | ||||||
|  | @ -38,7 +38,7 @@ import warnings | ||||||
| # VERSION was removed in Pillow 6.0.0. | # VERSION was removed in Pillow 6.0.0. | ||||||
| # PILLOW_VERSION was removed in Pillow 7.0.0. | # PILLOW_VERSION was removed in Pillow 7.0.0. | ||||||
| # Use __version__ instead. | # Use __version__ instead. | ||||||
| from . import ImageMode, TiffTags, __version__, _plugins | from . import ImageMode, TiffTags, UnidentifiedImageError, __version__, _plugins | ||||||
| from ._binary import i8, i32le | from ._binary import i8, i32le | ||||||
| from ._util import deferred_error, isPath, isStringType, py3 | from ._util import deferred_error, isPath, isStringType, py3 | ||||||
| 
 | 
 | ||||||
|  | @ -2794,7 +2794,9 @@ def open(fp, mode="r"): | ||||||
|         fp.close() |         fp.close() | ||||||
|     for message in accept_warnings: |     for message in accept_warnings: | ||||||
|         warnings.warn(message) |         warnings.warn(message) | ||||||
|     raise IOError("cannot identify image file %r" % (filename if filename else fp)) |     raise UnidentifiedImageError( | ||||||
|  |         "cannot identify image file %r" % (filename if filename else fp) | ||||||
|  |     ) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # | # | ||||||
|  |  | ||||||
|  | @ -70,3 +70,7 @@ _plugins = [ | ||||||
|     "XpmImagePlugin", |     "XpmImagePlugin", | ||||||
|     "XVThumbImagePlugin", |     "XVThumbImagePlugin", | ||||||
| ] | ] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class UnidentifiedImageError(IOError): | ||||||
|  |     pass | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user