Improved check_online() robustness (#10000)
* Improved check_online() robustness YOLOv5-wide improvement, not just in check_requirements() Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> * Update general.py Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
This commit is contained in:
1 parent
c55e2cd73b
commit
067ad9a2d1
1 file changed
+6
-1
+6
-1
@@ -283,12 +283,17 @@ def file_size(path):
|
|||||||
def check_online():
|
def check_online():
|
||||||
# Check internet connectivity
|
# Check internet connectivity
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
|
def run_once():
|
||||||
|
# Check once
|
||||||
try:
|
try:
|
||||||
socket.create_connection(("1.1.1.1", 443), 5) # check host accessibility
|
socket.create_connection(("1.1.1.1", 443), 5) # check host accessibility
|
||||||
return True
|
return True
|
||||||
except OSError:
|
except OSError:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
return run_once() or run_once() # check twice to increase robustness to intermittent connectivity issues
|
||||||
|
|
||||||
|
|
||||||
def git_describe(path=ROOT): # path must be a directory
|
def git_describe(path=ROOT): # path must be a directory
|
||||||
# Return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe
|
# Return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe
|
||||||
@@ -369,7 +374,7 @@ def check_requirements(requirements=ROOT / 'requirements.txt', exclude=(), insta
|
|||||||
if s and install and AUTOINSTALL: # check environment variable
|
if s and install and AUTOINSTALL: # check environment variable
|
||||||
LOGGER.info(f"{prefix} YOLOv5 requirement{'s' * (n > 1)} {s}not found, attempting AutoUpdate...")
|
LOGGER.info(f"{prefix} YOLOv5 requirement{'s' * (n > 1)} {s}not found, attempting AutoUpdate...")
|
||||||
try:
|
try:
|
||||||
assert check_online() or check_online(), "AutoUpdate skipped (offline)"
|
assert check_online(), "AutoUpdate skipped (offline)"
|
||||||
LOGGER.info(check_output(f'pip install {s} {cmds}', shell=True).decode())
|
LOGGER.info(check_output(f'pip install {s} {cmds}', shell=True).decode())
|
||||||
source = file if 'file' in locals() else requirements
|
source = file if 'file' in locals() else requirements
|
||||||
s = f"{prefix} {n} package{'s' * (n > 1)} updated per {source}\n" \
|
s = f"{prefix} {n} package{'s' * (n > 1)} updated per {source}\n" \
|
||||||
|
|||||||
Reference in new issue
Block a user