8000 Espressif master by Jason2866 · Pull Request #28 · Jason2866/arduino-esp32 · GitHub
[go: up one dir, main page]

Skip to content
8000

Espressif master #28

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Sep 6, 2022
Prev Previous commit
Next Next commit
Update get.py to support python 3.10+ (espressif#7166)
* Update get.py to support python 3.10+

* Use try/except to remove version check
  • Loading branch information
me-no-dev authored Aug 22, 2022
commit 3f69bcfca4225ead422f322e524008408ae5e170
47 changes: 42 additions & 5 deletions tools/get.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,17 @@ def mkdir_p(path):

def report_progress(count, blockSize, totalSize):
if sys.stdout.isatty():
percent = int(count*blockSize*100/totalSize)
percent = min(100, percent)
sys.stdout.write("\r%d%%" % percent)
if totalSize > 0:
percent = int(count*blockSize*100/totalSize)
percent = min(100, percent)
sys.stdout.write("\r%d%%" % percent)
else:
sofar = (count*blockSize) / 1024
if sofar >= 1000:
sofar /= 1024
sys.stdout.write("\r%dMB " % (sofar))
else:
sys.stdout.write("\r%dKB" % (sofar))
sys.stdout.flush()

def unpack(filename, destination):
Expand All @@ -82,6 +90,32 @@ def unpack(filename, destination):
shutil.rmtree(rename_to)
shutil.move(dirname, rename_to)

def download_file_with_progress(url,filename):
import ssl
import contextlib
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
with contextlib.closing(urlopen(url,context=ctx)) as fp:
total_size = int(fp.getheader("Content-Length",fp.getheader("Content-length","0")))
block_count = 0
block_size = 1024 * 8
block = fp.read(block_size)
if block:
with open(filename,'wb') as out_file:
out_file.write(block)
block_count += 1
report_progress(block_count, block_size, total_size)
while True:
block = fp.read(block_size)
if not block:
break
out_file.write(block)
block_count += 1
report_progress(block_count, block_size, total_size)
else:
raise Exception ('nonexisting file or connection error')

def download_file(url,filename):
import ssl
import contextlib
Expand Down Expand Up @@ -126,8 +160,11 @@ def get_tool(tool):
if is_ci:
download_file(url, local_path)
else:
urlretrieve(url, local_path, report_progress)
sys.stdout.write("\rDone\n")
try:
urlretrieve(url, local_path, report_progress)
except:
download_file_with_progress(url, local_path)
sys.stdout.write("\rDone \n")
sys.stdout.flush()
else:
print('Tool {0} already downloaded'.format(archive_name))
Expand Down
0