Pin downloads to release version (#7790)
Browse files* Pin downloads to release version
Fixes a release version to avoid forward-compatibility issues in future releases.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- utils/downloads.py +29 -14
utils/downloads.py
CHANGED
@@ -16,6 +16,15 @@ import requests
|
|
16 |
import torch
|
17 |
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
def gsutil_getsize(url=''):
|
20 |
# gs://bucket/file size https://cloud.google.com/storage/docs/gsutil/commands/du
|
21 |
s = subprocess.check_output(f'gsutil du {url}', shell=True).decode('utf-8')
|
@@ -43,10 +52,17 @@ def safe_download(file, url, url2=None, min_bytes=1E0, error_msg=''):
|
|
43 |
LOGGER.info('')
|
44 |
|
45 |
|
46 |
-
def attempt_download(file, repo='ultralytics/yolov5', release='
|
47 |
-
# Attempt file download from GitHub release assets if not found locally
|
48 |
from utils.general import LOGGER
|
49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
file = Path(str(file).strip().replace("'", ''))
|
51 |
if not file.exists():
|
52 |
# URL specified
|
@@ -61,22 +77,21 @@ def attempt_download(file, repo='ultralytics/yolov5', release='latest'):
|
|
61 |
return file
|
62 |
|
63 |
# GitHub assets
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
try:
|
68 |
-
|
69 |
-
|
70 |
-
tag = response['tag_name'] # i.e. 'v1.0'
|
71 |
-
except Exception: # fallback plan
|
72 |
-
assets = [
|
73 |
-
'yolov5n.pt', 'yolov5s.pt', 'yolov5m.pt', 'yolov5l.pt', 'yolov5x.pt', 'yolov5n6.pt', 'yolov5s6.pt',
|
74 |
-
'yolov5m6.pt', 'yolov5l6.pt', 'yolov5x6.pt']
|
75 |
try:
|
76 |
-
tag =
|
77 |
except Exception:
|
78 |
-
|
|
|
|
|
|
|
79 |
|
|
|
80 |
if name in assets:
|
81 |
url3 = 'https://drive.google.com/drive/folders/1EFQTEUeXWSFww0luse2jB9M1QNZQGwNl' # backup gdrive mirror
|
82 |
safe_download(
|
|
|
16 |
import torch
|
17 |
|
18 |
|
19 |
+
def is_url(url):
|
20 |
+
# Check if online file exists
|
21 |
+
try:
|
22 |
+
r = urllib.request.urlopen(url) # response
|
23 |
+
return r.getcode() == 200
|
24 |
+
except urllib.request.HTTPError:
|
25 |
+
return False
|
26 |
+
|
27 |
+
|
28 |
def gsutil_getsize(url=''):
|
29 |
# gs://bucket/file size https://cloud.google.com/storage/docs/gsutil/commands/du
|
30 |
s = subprocess.check_output(f'gsutil du {url}', shell=True).decode('utf-8')
|
|
|
52 |
LOGGER.info('')
|
53 |
|
54 |
|
55 |
+
def attempt_download(file, repo='ultralytics/yolov5', release='v6.1'):
|
56 |
+
# Attempt file download from GitHub release assets if not found locally. release = 'latest', 'v6.1', etc.
|
57 |
from utils.general import LOGGER
|
58 |
|
59 |
+
def github_assets(repository, version='latest'):
|
60 |
+
# Return GitHub repo tag (i.e. 'v6.1') and assets (i.e. ['yolov5s.pt', 'yolov5m.pt', ...])
|
61 |
+
if version != 'latest':
|
62 |
+
version = f'tags/{version}' # i.e. tags/v6.1
|
63 |
+
response = requests.get(f'https://api.github.com/repos/{repository}/releases/{version}').json() # github api
|
64 |
+
return response['tag_name'], [x['name'] for x in response['assets']] # tag, assets
|
65 |
+
|
66 |
file = Path(str(file).strip().replace("'", ''))
|
67 |
if not file.exists():
|
68 |
# URL specified
|
|
|
77 |
return file
|
78 |
|
79 |
# GitHub assets
|
80 |
+
assets = [
|
81 |
+
'yolov5n.pt', 'yolov5s.pt', 'yolov5m.pt', 'yolov5l.pt', 'yolov5x.pt', 'yolov5n6.pt', 'yolov5s6.pt',
|
82 |
+
'yolov5m6.pt', 'yolov5l6.pt', 'yolov5x6.pt']
|
83 |
try:
|
84 |
+
tag, assets = github_assets(repo, release)
|
85 |
+
except Exception:
|
|
|
|
|
|
|
|
|
|
|
86 |
try:
|
87 |
+
tag, assets = github_assets(repo) # latest release
|
88 |
except Exception:
|
89 |
+
try:
|
90 |
+
tag = subprocess.check_output('git tag', shell=True, stderr=subprocess.STDOUT).decode().split()[-1]
|
91 |
+
except Exception:
|
92 |
+
tag = release
|
93 |
|
94 |
+
file.parent.mkdir(parents=True, exist_ok=True) # make parent dir (if required)
|
95 |
if name in assets:
|
96 |
url3 = 'https://drive.google.com/drive/folders/1EFQTEUeXWSFww0luse2jB9M1QNZQGwNl' # backup gdrive mirror
|
97 |
safe_download(
|