Source code for track.persistence.multiplexer

import traceback
from track.utils.log import error


[docs]class ProtocolMultiplexer: def __init__(self, *backends): self.protos = backends
[docs] def log_trial_start(self, *args, **kwargs): return self.__execute('log_trial_start', *args, **kwargs)
[docs] def log_trial_finish(self, *args, **kwargs): return self.__execute('log_trial_finish', *args, **kwargs)
[docs] def log_trial_chrono_start(self, *args, **kwargs): return self.__execute('log_trial_chrono_start', *args, **kwargs)
[docs] def log_trial_chrono_finish(self, *args, **kwargs): return self.__execute('log_trial_chrono_finish', *args, **kwargs)
[docs] def log_trial_arguments(self, *args, **kwargs): return self.__execute('log_trial_arguments', *args, **kwargs)
[docs] def log_trial_metadata(self, *args, **kwargs): return self.__execute('log_trial_metadata', *args, **kwargs)
[docs] def log_trial_metrics(self, *args, **kwargs): return self.__execute('log_trial_metrics', *args, **kwargs)
[docs] def set_trial_status(self, *args, **kwargs): return self.__execute('set_trial_status', *args, **kwargs)
[docs] def add_trial_tags(self, *args, **kwargs): return self.__execute('add_trial_tags', *args, **kwargs)
# Object Creation
[docs] def get_project(self, *args, **kwargs): return self.__execute('get_project', *args, **kwargs)
[docs] def new_project(self, *args, **kwargs): return self.__execute('new_project', *args, **kwargs)
[docs] def get_trial_group(self, *args, **kwargs): return self.__execute('get_trial_group', *args, **kwargs)
[docs] def new_trial_group(self, *args, **kwargs): return self.__execute('new_trial_group', *args, **kwargs)
[docs] def add_project_trial(self, *args, **kwargs): return self.__execute('add_project_trial', *args, **kwargs)
[docs] def add_group_trial(self, *args, **kwargs): return self.__execute('add_group_trial', *args, **kwargs)
[docs] def commit(self, *args, **kwargs): return self.__execute('commit', *args, **kwargs)
[docs] def get_trial(self, *args, **kwargs): return self.__execute('get_trial', *args, **kwargs)
[docs] def new_trial(self, *args, **kwargs): return self.__execute('new_trial', *args, **kwargs)
[docs] def fetch_trials(self, *args, **kwargs): return self.__execute('fetch_trials', *args, **kwargs)
[docs] def fetch_groups(self, *args, **kwargs): return self.__execute('fetch_groups', *args, **kwargs)
[docs] def fetch_projects(self, *args, **kwargs): return self.__execute('fetch_projects', *args, **kwargs)
[docs] def fetch_and_update_group(self, *args, **kwargs): return self.__execute('fetch_and_update_group', *args, **kwargs)
[docs] def fetch_and_update_trial(self, *args, **kwargs): return self.__execute('fetch_and_update_trial', *args, **kwargs)
def __execute(self, fun, *args, **kwargs): for p in self.protos[:-1]: try: getattr(p, fun)(*args, **kwargs) except Exception: error(traceback.format_exc()) return getattr(self.protos[-1], fun)(*args, **kwargs)