From 4870064629e76d9d387578c562a292cc680fa05f Mon Sep 17 00:00:00 2001 From: Cristi Fati Date: Wed, 11 May 2022 13:52:10 +0300 Subject: [PATCH] Ability to dowlnoad older assets (#7767) * Ability to dowlnoad older assets * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Cleanup * Cleanup2 Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Glenn Jocher --- utils/downloads.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/utils/downloads.py b/utils/downloads.py index 776a8bba1755..ad54cc6cb38b 100644 --- a/utils/downloads.py +++ b/utils/downloads.py @@ -43,8 +43,8 @@ def safe_download(file, url, url2=None, min_bytes=1E0, error_msg=''): LOGGER.info('') -def attempt_download(file, repo='ultralytics/yolov5'): # from utils.downloads import *; attempt_download() - # Attempt file download if does not exist +def attempt_download(file, repo='ultralytics/yolov5', release='latest'): + # Attempt file download from GitHub release assets if not found locally from utils.general import LOGGER file = Path(str(file).strip().replace("'", '')) @@ -62,8 +62,10 @@ def attempt_download(file, repo='ultralytics/yolov5'): # from utils.downloads i # GitHub assets file.parent.mkdir(parents=True, exist_ok=True) # make parent dir (if required) + if release != 'latest' and not release.startswith('tags/'): + release = f'tags/{release}' # prepend i.e. tags/v6.1 try: - response = requests.get(f'https://github.com/gitapi/repos/{repo}/releases/latest').json() # github api + response = requests.get(f'https://github.com/gitapi/repos/{repo}/releases/{release}').json() # github api assets = [x['name'] for x in response['assets']] # release assets, i.e. ['yolov5s.pt', 'yolov5m.pt', ...] tag = response['tag_name'] # i.e. 'v1.0' except Exception: # fallback plan