diff --git a/utils/datasets.py b/utils/datasets.py index f18569a7665b..0bb657f30414 100755 --- a/utils/datasets.py +++ b/utils/datasets.py @@ -1095,7 +1095,7 @@ def dataset_stats(path='coco128.yaml', autodownload=False, verbose=False): autodownload: Attempt to download dataset if not found locally verbose: Print stats dictionary """ - with open(check_file(Path(path))) as f: + with open(check_file(path)) as f: data = yaml.safe_load(f) # data dict check_dataset(data, autodownload) # download dataset if missing nc = data['nc'] # number of classes diff --git a/utils/general.py b/utils/general.py index 1d61f16d7771..3e3bd6997a7c 100755 --- a/utils/general.py +++ b/utils/general.py @@ -206,9 +206,9 @@ def check_file(file): file = str(file) # convert to str() if Path(file).is_file() or file == '': # exists return file - elif file.startswith(('http://', 'https://')): # download - url, file = file, Path(urllib.parse.unquote(str(file))).name # url, file (decode '%2F' to '/' etc.) - file = file.split('?')[0] # parse authentication https://url.com/file.txt?auth... + elif file.startswith(('http:/', 'https:/')): # download + url = str(Path(file)).replace(':/', '://') # Pathlib turns :// -> :/ + file = Path(urllib.parse.unquote(file)).name.split('?')[0] # '%2F' to '/', split https://url.com/file.txt?auth print(f'Downloading {url} to {file}...') torch.hub.download_url_to_file(url, file) assert Path(file).exists() and Path(file).stat().st_size > 0, f'File download failed: {url}' # check