mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 09:57:43 +03:00 
			
		
		
		
	Only close __fp if not fp
This commit is contained in:
		
							parent
							
								
									f073be52dc
								
							
						
					
					
						commit
						194f599f27
					
				
							
								
								
									
										
											BIN
										
									
								
								Tests/images/hopper_unknown_pixel_mode.tif
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Tests/images/hopper_unknown_pixel_mode.tif
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -220,6 +220,10 @@ class TestFileTiff(PillowTestCase):
 | 
				
			||||||
        self.assertEqual(
 | 
					        self.assertEqual(
 | 
				
			||||||
            im.getextrema(), (-3.140936851501465, 3.140684127807617))
 | 
					            im.getextrema(), (-3.140936851501465, 3.140684127807617))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_unknown_pixel_mode(self):
 | 
				
			||||||
 | 
					        self.assertRaises(
 | 
				
			||||||
 | 
					            IOError, Image.open, 'Tests/images/hopper_unknown_pixel_mode.tif')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_n_frames(self):
 | 
					    def test_n_frames(self):
 | 
				
			||||||
        for path, n_frames in [
 | 
					        for path, n_frames in [
 | 
				
			||||||
            ['Tests/images/multipage-lastframe.tif', 1],
 | 
					            ['Tests/images/multipage-lastframe.tif', 1],
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,6 +83,7 @@ class DcxImageFile(PcxImageFile):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _close__fp(self):
 | 
					    def _close__fp(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
 | 
					            if self.__fp != self.fp:
 | 
				
			||||||
                self.__fp.close()
 | 
					                self.__fp.close()
 | 
				
			||||||
        except AttributeError:
 | 
					        except AttributeError:
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -159,6 +159,7 @@ class FliImageFile(ImageFile.ImageFile):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _close__fp(self):
 | 
					    def _close__fp(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
 | 
					            if self.__fp != self.fp:
 | 
				
			||||||
                self.__fp.close()
 | 
					                self.__fp.close()
 | 
				
			||||||
        except AttributeError:
 | 
					        except AttributeError:
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -304,6 +304,7 @@ class GifImageFile(ImageFile.ImageFile):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _close__fp(self):
 | 
					    def _close__fp(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
 | 
					            if self.__fp != self.fp:
 | 
				
			||||||
                self.__fp.close()
 | 
					                self.__fp.close()
 | 
				
			||||||
        except AttributeError:
 | 
					        except AttributeError:
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -292,6 +292,7 @@ class ImImageFile(ImageFile.ImageFile):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _close__fp(self):
 | 
					    def _close__fp(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
 | 
					            if self.__fp != self.fp:
 | 
				
			||||||
                self.__fp.close()
 | 
					                self.__fp.close()
 | 
				
			||||||
        except AttributeError:
 | 
					        except AttributeError:
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -594,10 +594,10 @@ class Image(object):
 | 
				
			||||||
        :ref:`file-handling` for more information.
 | 
					        :ref:`file-handling` for more information.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.fp.close()
 | 
					 | 
				
			||||||
            self.fp = None
 | 
					 | 
				
			||||||
            if hasattr(self, "_close__fp"):
 | 
					            if hasattr(self, "_close__fp"):
 | 
				
			||||||
                self._close__fp()
 | 
					                self._close__fp()
 | 
				
			||||||
 | 
					            self.fp.close()
 | 
				
			||||||
 | 
					            self.fp = None
 | 
				
			||||||
        except Exception as msg:
 | 
					        except Exception as msg:
 | 
				
			||||||
            logger.debug("Error closing: %s", msg)
 | 
					            logger.debug("Error closing: %s", msg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -611,12 +611,12 @@ class Image(object):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if sys.version_info.major >= 3:
 | 
					    if sys.version_info.major >= 3:
 | 
				
			||||||
        def __del__(self):
 | 
					        def __del__(self):
 | 
				
			||||||
 | 
					            if hasattr(self, "_close__fp"):
 | 
				
			||||||
 | 
					                self._close__fp()
 | 
				
			||||||
            if (hasattr(self, 'fp') and hasattr(self, '_exclusive_fp')
 | 
					            if (hasattr(self, 'fp') and hasattr(self, '_exclusive_fp')
 | 
				
			||||||
               and self.fp and self._exclusive_fp):
 | 
					               and self.fp and self._exclusive_fp):
 | 
				
			||||||
                self.fp.close()
 | 
					                self.fp.close()
 | 
				
			||||||
            self.fp = None
 | 
					            self.fp = None
 | 
				
			||||||
            if hasattr(self, "_close__fp"):
 | 
					 | 
				
			||||||
                self._close__fp()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _copy(self):
 | 
					    def _copy(self):
 | 
				
			||||||
        self.load()
 | 
					        self.load()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,6 +99,7 @@ class MicImageFile(TiffImagePlugin.TiffImageFile):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _close__fp(self):
 | 
					    def _close__fp(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
 | 
					            if self.__fp != self.fp:
 | 
				
			||||||
                self.__fp.close()
 | 
					                self.__fp.close()
 | 
				
			||||||
        except AttributeError:
 | 
					        except AttributeError:
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -86,6 +86,7 @@ class MpoImageFile(JpegImagePlugin.JpegImageFile):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _close__fp(self):
 | 
					    def _close__fp(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
 | 
					            if self.__fp != self.fp:
 | 
				
			||||||
                self.__fp.close()
 | 
					                self.__fp.close()
 | 
				
			||||||
        except AttributeError:
 | 
					        except AttributeError:
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -195,6 +195,7 @@ class SpiderImageFile(ImageFile.ImageFile):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _close__fp(self):
 | 
					    def _close__fp(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
 | 
					            if self.__fp != self.fp:
 | 
				
			||||||
                self.__fp.close()
 | 
					                self.__fp.close()
 | 
				
			||||||
        except AttributeError:
 | 
					        except AttributeError:
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1361,6 +1361,7 @@ class TiffImageFile(ImageFile.ImageFile):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _close__fp(self):
 | 
					    def _close__fp(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
 | 
					            if self.__fp != self.fp:
 | 
				
			||||||
                self.__fp.close()
 | 
					                self.__fp.close()
 | 
				
			||||||
        except AttributeError:
 | 
					        except AttributeError:
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user