From 9fcfbd6204a2df4fecb0f35a8f96668e33a1aabc Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Thu, 1 Sep 2022 11:52:48 +0200 Subject: [PATCH 1/3] Add `url_getsize()` function Signed-off-by: Glenn Jocher --- utils/downloads.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/utils/downloads.py b/utils/downloads.py index b56fc28c3bde..12c73f25dfa1 100644 --- a/utils/downloads.py +++ b/utils/downloads.py @@ -10,6 +10,7 @@ import time import urllib from pathlib import Path +from urllib.request import urlopen from zipfile import ZipFile import requests @@ -22,7 +23,7 @@ def is_url(url, check_online=True): url = str(url) result = urllib.parse.urlparse(url) assert all([result.scheme, result.netloc, result.path]) # check if is url - return (urllib.request.urlopen(url).getcode() == 200) if check_online else True # check if exists online + return (urlopen(url).getcode() == 200) if check_online else True # check if exists online except (AssertionError, urllib.request.HTTPError): return False @@ -33,6 +34,12 @@ def gsutil_getsize(url=''): return eval(s.split(' ')[0]) if len(s) else 0 # bytes +def url_getsize(url='https://ultralytics.com/images/bus.jpg'): + # Return downloadable file size in bytes + response = requests.head(url, allow_redirects=True) + return int(response.headers.get('content-length', -1)) + + def safe_download(file, url, url2=None, min_bytes=1E0, error_msg=''): # Attempts to download file from url or url2, checks and removes incomplete downloads < min_bytes from utils.general import LOGGER @@ -154,7 +161,6 @@ def get_token(cookie="./cookie"): return line.split()[-1] return "" - # Google utils: https://cloud.google.com/storage/docs/reference/libraries ---------------------------------------------- # # From fd20b40e26fbad72b3e3e8803ed75f5bd1d3015e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 1 Sep 2022 09:53:09 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- utils/downloads.py | 1 + 1 file changed, 1 insertion(+) diff --git a/utils/downloads.py b/utils/downloads.py index 12c73f25dfa1..e87ee4b4201c 100644 --- a/utils/downloads.py +++ b/utils/downloads.py @@ -161,6 +161,7 @@ def get_token(cookie="./cookie"): return line.split()[-1] return "" + # Google utils: https://cloud.google.com/storage/docs/reference/libraries ---------------------------------------------- # # From 0e2bbcfa64ad124fee164f9f7142a239d8fc6ab4 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Thu, 1 Sep 2022 11:54:00 +0200 Subject: [PATCH 3/3] Update downloads.py Signed-off-by: Glenn Jocher --- utils/downloads.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/utils/downloads.py b/utils/downloads.py index e87ee4b4201c..dd2698f995a4 100644 --- a/utils/downloads.py +++ b/utils/downloads.py @@ -10,7 +10,6 @@ import time import urllib from pathlib import Path -from urllib.request import urlopen from zipfile import ZipFile import requests @@ -23,7 +22,7 @@ def is_url(url, check_online=True): url = str(url) result = urllib.parse.urlparse(url) assert all([result.scheme, result.netloc, result.path]) # check if is url - return (urlopen(url).getcode() == 200) if check_online else True # check if exists online + return (urllib.request.urlopen(url).getcode() == 200) if check_online else True # check if exists online except (AssertionError, urllib.request.HTTPError): return False