mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 07:57:27 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| 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):
 | |
| 
 | |
|         def retrieve(request_url):
 | |
|             print("Fetching", request_url)
 | |
|             try:
 | |
|                 return urllib.request.urlopen(request_url)
 | |
|             except urllib.error.URLError:
 | |
|                 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)
 | |
|     return name
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     fetch(sys.argv[1])
 |