mirror of
https://github.com/clearml/clearml
synced 2025-02-07 13:23:40 +00:00
Add make Task serializable
This commit is contained in:
parent
a129e39e22
commit
f0c1a98c47
@ -47,7 +47,7 @@ from .binding.frameworks.xgboost_bind import PatchXGBoostModelIO
|
|||||||
from .binding.joblib_bind import PatchedJoblib
|
from .binding.joblib_bind import PatchedJoblib
|
||||||
from .binding.matplotlib_bind import PatchedMatplotlib
|
from .binding.matplotlib_bind import PatchedMatplotlib
|
||||||
from .binding.hydra_bind import PatchHydra
|
from .binding.hydra_bind import PatchHydra
|
||||||
from .binding.click import PatchClick
|
from .binding.click_bind import PatchClick
|
||||||
from .config import (
|
from .config import (
|
||||||
config, DEV_TASK_NO_REUSE, get_is_master_node, DEBUG_SIMULATE_REMOTE_TASK, PROC_MASTER_ID_ENV_VAR,
|
config, DEV_TASK_NO_REUSE, get_is_master_node, DEBUG_SIMULATE_REMOTE_TASK, PROC_MASTER_ID_ENV_VAR,
|
||||||
DEV_DEFAULT_OUTPUT_URI, )
|
DEV_DEFAULT_OUTPUT_URI, )
|
||||||
@ -3534,3 +3534,20 @@ class Task(_Task):
|
|||||||
|
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def __getstate__(self):
|
||||||
|
# type: () -> dict
|
||||||
|
return {'main': self.is_main_task(), 'id': self.id, 'offline': self.is_offline()}
|
||||||
|
|
||||||
|
def __setstate__(self, state):
|
||||||
|
if state['main'] and not self.__main_task:
|
||||||
|
Task.__forked_proc_main_pid = None
|
||||||
|
Task.__update_master_pid_task(task=state['id'])
|
||||||
|
if state['offline']:
|
||||||
|
Task.set_offline(offline_mode=state['offline'])
|
||||||
|
|
||||||
|
task = Task.init(
|
||||||
|
continue_last_task=state['id'],
|
||||||
|
auto_connect_frameworks={'detect_repository': False}) \
|
||||||
|
if state['main'] else Task.get_task(task_id=state['id'])
|
||||||
|
self.__dict__ = task.__dict__
|
||||||
|
Loading…
Reference in New Issue
Block a user