mirror of
https://github.com/espressif/esp-idf.git
synced 2024-09-19 14:26:01 -04:00
tools: idf_tools.py: fix compatibility with Python <= 2.7.8
Multiple ssl-related features have been backported from Python 3.x to Python 2.7.9. This adds a fallback so that idf_tools.py can work on older versions.
This commit is contained in:
parent
e43a4d51f2
commit
d9db49d9f7
@ -307,7 +307,11 @@ def unpack(filename, destination):
|
||||
def urlretrieve_ctx(url, filename, reporthook=None, data=None, context=None):
|
||||
url_type, path = splittype(url)
|
||||
|
||||
with contextlib.closing(urlopen(url, data, context=context)) as fp:
|
||||
# urlopen doesn't have context argument in Python <=2.7.9
|
||||
extra_urlopen_args = {}
|
||||
if context:
|
||||
extra_urlopen_args["context"] = context
|
||||
with contextlib.closing(urlopen(url, data, **extra_urlopen_args)) as fp:
|
||||
headers = fp.info()
|
||||
|
||||
# Just return the local path and the "headers" for file://
|
||||
@ -665,8 +669,13 @@ class IDFTool(object):
|
||||
# For dl.espressif.com, add the ISRG x1 root certificate.
|
||||
# This works around the issue with outdated certificate stores in some installations.
|
||||
if "dl.espressif.com" in url:
|
||||
ctx = ssl.create_default_context()
|
||||
ctx.load_verify_locations(cadata=ISRG_X1_ROOT_CERT)
|
||||
try:
|
||||
ctx = ssl.create_default_context()
|
||||
ctx.load_verify_locations(cadata=ISRG_X1_ROOT_CERT)
|
||||
except AttributeError:
|
||||
# no ssl.create_default_context or load_verify_locations cadata argument
|
||||
# in Python <=2.7.8
|
||||
pass
|
||||
|
||||
urlretrieve_ctx(url, local_temp_path, report_progress if not global_non_interactive else None, context=ctx)
|
||||
sys.stdout.write("\rDone\n")
|
||||
|
Loading…
Reference in New Issue
Block a user