mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-27 10:26:19 +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])
|