diff --git a/trains/backend_interface/task/task.py b/trains/backend_interface/task/task.py index 67ce4f44..fbac40a4 100644 --- a/trains/backend_interface/task/task.py +++ b/trains/backend_interface/task/task.py @@ -41,7 +41,7 @@ from ...storage.helper import StorageHelper, StorageError from .access import AccessMixin from .log import TaskHandler from .repo import ScriptInfo -from ...config import config, PROC_MASTER_ID_ENV_VAR +from ...config import config, PROC_MASTER_ID_ENV_VAR, SUPPRESS_UPDATE_MESSAGE_ENV_VAR class Task(IdObjectBase, AccessMixin, SetupUploadMixin): @@ -235,7 +235,7 @@ class Task(IdObjectBase, AccessMixin, SetupUploadMixin): # check latest version from ...utilities.check_updates import CheckPackageUpdates latest_version = CheckPackageUpdates.check_new_package_available(only_once=True) - if latest_version: + if latest_version and not SUPPRESS_UPDATE_MESSAGE_ENV_VAR.get(default=config.get('development.suppress_update_message', False)): if not latest_version[1]: sep = os.linesep self.get_logger().report_text( @@ -526,15 +526,15 @@ class Task(IdObjectBase, AccessMixin, SetupUploadMixin): self.reload() - def started(self, ignore_errors=True): - # type: (bool) -> () + def started(self, ignore_errors=True, force=False): + # type: (bool, bool) -> () """ The signal that this Task started. """ - return self.send(tasks.StartedRequest(self.id), ignore_errors=ignore_errors) + return self.send(tasks.StartedRequest(self.id, force=force), ignore_errors=ignore_errors) - def stopped(self, ignore_errors=True): - # type: (bool) -> () + def stopped(self, ignore_errors=True, force=False): + # type: (bool, bool) -> () """ The signal that this Task stopped. """ - return self.send(tasks.StoppedRequest(self.id), ignore_errors=ignore_errors) + return self.send(tasks.StoppedRequest(self.id, force=force), ignore_errors=ignore_errors) def completed(self, ignore_errors=True): # type: (bool) -> () diff --git a/trains/config/default/sdk.conf b/trains/config/default/sdk.conf index d067a67e..8b67eed8 100644 --- a/trains/config/default/sdk.conf +++ b/trains/config/default/sdk.conf @@ -147,6 +147,10 @@ # do not analyze the entire repository. force_analyze_entire_repo: false + # If set to true, *trains* update message will not be printed to the console + # this value can be overwritten with os environment variable TRAINS_SUPPRESS_UPDATE_MESSAGE=1 + suppress_update_message: false + # Development mode worker worker { # Status report period in seconds diff --git a/trains/config/defs.py b/trains/config/defs.py index c60faa1c..87a9cb5e 100644 --- a/trains/config/defs.py +++ b/trains/config/defs.py @@ -20,6 +20,8 @@ TRAINS_CACHE_DIR = EnvEntry("TRAINS_CACHE_DIR", "ALG_CACHE_DIR") LOG_LEVEL_ENV_VAR = EnvEntry("TRAINS_LOG_LEVEL", "ALG_LOG_LEVEL", converter=or_(int, str)) +SUPPRESS_UPDATE_MESSAGE_ENV_VAR = EnvEntry("TRAINS_SUPPRESS_UPDATE_MESSAGE", "ALG_SUPPRESS_UPDATE_MESSAGE", type=bool) + # Repository detection VCS_REPO_TYPE = EnvEntry("TRAINS_VCS_REPO_TYPE", "ALG_VCS_REPO_TYPE", default="git") VCS_REPOSITORY_URL = EnvEntry("TRAINS_VCS_REPO_URL", "ALG_VCS_REPO_URL")