Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions utils/general.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ def isdocker():
return Path('/workspace').exists() # or Path('/.dockerenv').exists()


def emojis(str=''):
# Return platform-dependent emoji-safe version of string
return str.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else str


def check_online():
# Check internet connectivity
import socket
Expand Down Expand Up @@ -79,7 +84,7 @@ def check_git_status():
f"Use 'git pull' to update or 'git clone {url}' to download latest."
else:
s = f'up to date with {url} ✅'
print(s.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else s) # emoji-safe
print(emojis(s)) # emoji-safe
except Exception as e:
print(e)

Expand All @@ -93,14 +98,20 @@ def check_requirements(file='requirements.txt', exclude=()):
print(f"{prefix} {file.resolve()} not found, check failed.")
return

n = 0 # number of packages updates
requirements = [f'{x.name}{x.specifier}' for x in pkg.parse_requirements(file.open()) if x.name not in exclude]
for r in requirements:
try:
pkg.require(r)
except Exception as e: # DistributionNotFound or VersionConflict if requirements not met
print(f"{prefix} {e.req} not found and is required by YOLOv5, attempting auto-install...")
n += 1
print(f"{prefix} {e.req} not found and is required by YOLOv5, attempting auto-update...")
print(subprocess.check_output(f"pip install '{e.req}'", shell=True).decode())
print(f'Please restart runtime or rerun command for update to take effect.')

if n: # if packages updated
s = f"{prefix} {n} package{'s' * (n > 1)} updated per {file.resolve()}\n" \
f"{prefix} ⚠️ {colorstr('bold', 'Restart runtime or rerun command for updates to take effect')}\n"
print(emojis(s)) # emoji-safe


def check_img_size(img_size, s=32):
Expand Down