Explorar el Código

Update `check_git_status()` to run under `ROOT` working directory (#5441)

* Updating check_git_status() to switch to the repository root before performing git ops

* More pythonic

* Linting

* Remove redundant Path() call

* Generalizing the context manager

* Fixing error in context manager

* Cleanup

* Change to decorator

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
modifyDataloader
Mrinal Jain GitHub hace 3 años
padre
commit
7476012a4d
No se encontró ninguna clave conocida en la base de datos para esta firma ID de clave GPG: 4AEE18F83AFDEB23
Se han modificado 1 ficheros con 14 adiciones y 0 borrados
  1. +14
    -0
      utils/general.py

+ 14
- 0
utils/general.py Ver fichero

@@ -81,6 +81,19 @@ class Timeout(contextlib.ContextDecorator):
return True


class WorkingDirectory(contextlib.ContextDecorator):
# Usage: @WorkingDirectory(dir) decorator or 'with WorkingDirectory(dir):' context manager
def __init__(self, new_dir):
self.dir = new_dir # new dir
self.cwd = Path.cwd().resolve() # current dir

def __enter__(self):
os.chdir(self.dir)

def __exit__(self, exc_type, exc_val, exc_tb):
os.chdir(self.cwd)


def try_except(func):
# try-except function. Usage: @try_except decorator
def handler(*args, **kwargs):
@@ -203,6 +216,7 @@ def check_online():


@try_except
@WorkingDirectory(ROOT)
def check_git_status():
# Recommend 'git pull' if code is out of date
msg = ', for updates see https://github.com/ultralytics/yolov5'

Cargando…
Cancelar
Guardar