mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 07:57:27 +03:00 
			
		
		
		
	Use pillow-depends on HTTPError
This commit is contained in:
		
							parent
							
								
									bb1fc75e55
								
							
						
					
					
						commit
						2296614e5f
					
				|  | @ -45,8 +45,6 @@ def extract(src, dest): | |||
| 
 | ||||
| def extract_libs(): | ||||
|     for name, lib in libs.items(): | ||||
|         filename = lib["filename"] | ||||
|         if not os.path.exists(filename): | ||||
|         filename = fetch(lib["url"]) | ||||
|         if name == "openjpeg": | ||||
|             for compiler in all_compilers(): | ||||
|  |  | |||
|  | @ -28,96 +28,95 @@ libs = { | |||
|     # }, | ||||
|     "zlib": { | ||||
|         "url": "http://zlib.net/zlib1211.zip", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "zlib1211.zip", | ||||
|         "filename": "zlib1211.zip", | ||||
|         "dir": "zlib-1.2.11", | ||||
|     }, | ||||
|     "jpeg": { | ||||
|         "url": "http://www.ijg.org/files/jpegsr9c.zip", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "jpegsr9c.zip", | ||||
|         "filename": "jpegsr9c.zip", | ||||
|         "dir": "jpeg-9c", | ||||
|     }, | ||||
|     "tiff": { | ||||
|         "url": "ftp://download.osgeo.org/libtiff/tiff-4.0.10.tar.gz", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "tiff-4.0.10.tar.gz", | ||||
|         "filename": "tiff-4.0.10.tar.gz", | ||||
|         "dir": "tiff-4.0.10", | ||||
|     }, | ||||
|     "freetype": { | ||||
|         "url": "https://download.savannah.gnu.org/releases/freetype/freetype-2.10.1.tar.gz",  # noqa: E501 | ||||
|         "filename": PILLOW_DEPENDS_DIR + "freetype-2.10.1.tar.gz", | ||||
|         "filename": "freetype-2.10.1.tar.gz", | ||||
|         "dir": "freetype-2.10.1", | ||||
|     }, | ||||
|     "lcms-2.7": { | ||||
|         "url": SF_MIRROR + "/project/lcms/lcms/2.7/lcms2-2.7.zip", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "lcms2-2.7.zip", | ||||
|         "filename": "lcms2-2.7.zip", | ||||
|         "dir": "lcms2-2.7", | ||||
|     }, | ||||
|     "lcms-2.8": { | ||||
|         "url": SF_MIRROR + "/project/lcms/lcms/2.8/lcms2-2.8.zip", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "lcms2-2.8.zip", | ||||
|         "filename": "lcms2-2.8.zip", | ||||
|         "dir": "lcms2-2.8", | ||||
|     }, | ||||
|     "ghostscript": { | ||||
|         "url": "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs927/ghostscript-9.27.tar.gz",  # noqa: E501 | ||||
|         "filename": PILLOW_DEPENDS_DIR + "ghostscript-9.27.tar.gz", | ||||
|         "filename": "ghostscript-9.27.tar.gz", | ||||
|         "dir": "ghostscript-9.27", | ||||
|     }, | ||||
|     "tcl-8.5": { | ||||
|         "url": SF_MIRROR + "/project/tcl/Tcl/8.5.19/tcl8519-src.zip", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "tcl8519-src.zip", | ||||
|         "filename": "tcl8519-src.zip", | ||||
|         "dir": "", | ||||
|     }, | ||||
|     "tk-8.5": { | ||||
|         "url": SF_MIRROR + "/project/tcl/Tcl/8.5.19/tk8519-src.zip", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "tk8519-src.zip", | ||||
|         "filename": "tk8519-src.zip", | ||||
|         "dir": "", | ||||
|         "version": "8.5.19", | ||||
|     }, | ||||
|     "tcl-8.6": { | ||||
|         "url": SF_MIRROR + "/project/tcl/Tcl/8.6.9/tcl869-src.zip", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "tcl869-src.zip", | ||||
|         "filename": "tcl869-src.zip", | ||||
|         "dir": "", | ||||
|     }, | ||||
|     "tk-8.6": { | ||||
|         "url": SF_MIRROR + "/project/tcl/Tcl/8.6.9/tk869-src.zip", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "tk869-src.zip", | ||||
|         "filename": "tk869-src.zip", | ||||
|         "dir": "", | ||||
|         "version": "8.6.9", | ||||
|     }, | ||||
|     "webp": { | ||||
|         "url": "http://downloads.webmproject.org/releases/webp/libwebp-1.0.3.tar.gz", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "libwebp-1.0.3.tar.gz", | ||||
|         "filename": "libwebp-1.0.3.tar.gz", | ||||
|         "dir": "libwebp-1.0.3", | ||||
|     }, | ||||
|     "openjpeg": { | ||||
|         "url": "https://github.com/uclouvain/openjpeg/archive/v2.3.1.tar.gz", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "openjpeg-2.3.1.tar.gz", | ||||
|         "filename": "openjpeg-2.3.1.tar.gz", | ||||
|         "dir": "openjpeg-2.3.1", | ||||
|     }, | ||||
|     "jpeg-turbo": { | ||||
|         "url": SF_MIRROR + "/project/libjpeg-turbo/2.0.3/libjpeg-turbo-2.0.3.tar.gz", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "libjpeg-turbo-2.0.3.tar.gz", | ||||
|         "filename": "libjpeg-turbo-2.0.3.tar.gz", | ||||
|         "dir": "libjpeg-turbo-2.0.3", | ||||
|     }, | ||||
|     # ba653c8: Merge tag '2.12.5' into msvc | ||||
|     "imagequant": { | ||||
|         "url": "https://github.com/ImageOptim/libimagequant/archive/ba653c8ccb34dde4e21c6076d85a72d21ed9d971.zip",  # noqa: E501 | ||||
|         "filename": PILLOW_DEPENDS_DIR | ||||
|         + "libimagequant-ba653c8ccb34dde4e21c6076d85a72d21ed9d971.zip", | ||||
|         "filename": "libimagequant-ba653c8ccb34dde4e21c6076d85a72d21ed9d971.zip", | ||||
|         "dir": "libimagequant-ba653c8ccb34dde4e21c6076d85a72d21ed9d971", | ||||
|     }, | ||||
|     "harfbuzz": { | ||||
|         "url": "https://github.com/harfbuzz/harfbuzz/archive/2.6.1.zip", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "harfbuzz-2.6.1.zip", | ||||
|         "filename": "harfbuzz-2.6.1.zip", | ||||
|         "dir": "harfbuzz-2.6.1", | ||||
|     }, | ||||
|     "fribidi": { | ||||
|         "url": "https://github.com/fribidi/fribidi/archive/v1.0.7.zip", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "fribidi-1.0.7.zip", | ||||
|         "filename": "fribidi-1.0.7.zip", | ||||
|         "dir": "fribidi-1.0.7", | ||||
|     }, | ||||
|     "libraqm": { | ||||
|         "url": "https://github.com/HOST-Oman/libraqm/archive/v0.7.0.zip", | ||||
|         "filename": PILLOW_DEPENDS_DIR + "libraqm-0.7.0.zip", | ||||
|         "filename": "libraqm-0.7.0.zip", | ||||
|         "dir": "libraqm-0.7.0", | ||||
|     }, | ||||
| } | ||||
|  |  | |||
|  | @ -3,16 +3,37 @@ import sys | |||
| import urllib.parse | ||||
| import urllib.request | ||||
| 
 | ||||
| from config import libs | ||||
| 
 | ||||
| 
 | ||||
| def fetch(url): | ||||
|     depends_filename = None | ||||
|     for lib in libs.values(): | ||||
|         if lib["url"] == url: | ||||
|             depends_filename = lib["filename"] | ||||
|             break | ||||
|     if depends_filename and os.path.exists(depends_filename): | ||||
|         return depends_filename | ||||
|     name = urllib.parse.urlsplit(url)[2].split("/")[-1] | ||||
| 
 | ||||
|     if not os.path.exists(name): | ||||
|         print("Fetching", url) | ||||
| 
 | ||||
|         def retrieve(request_url): | ||||
|             print("Fetching", request_url) | ||||
|             try: | ||||
|             r = urllib.request.urlopen(url) | ||||
|                 return urllib.request.urlopen(request_url) | ||||
|             except urllib.error.URLError: | ||||
|             r = urllib.request.urlopen(url) | ||||
|                 return urllib.request.urlopen(request_url) | ||||
| 
 | ||||
|         try: | ||||
|             r = retrieve(url) | ||||
|         except urllib.error.HTTPError: | ||||
|             if depends_filename: | ||||
|                 r = retrieve( | ||||
|                     "https://github.com/python-pillow/pillow-depends/raw/master/" | ||||
|                     + depends_filename | ||||
|                 ) | ||||
|                 name = depends_filename | ||||
|         content = r.read() | ||||
|         with open(name, "wb") as fd: | ||||
|             fd.write(content) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user