diff --git a/RLA/easy_log/log_tools.py b/RLA/easy_log/log_tools.py index a9b704e..0e851b3 100644 --- a/RLA/easy_log/log_tools.py +++ b/RLA/easy_log/log_tools.py @@ -243,23 +243,24 @@ def archive_log(self, skip_ask=False): s = input("archive these files? (y/n) \n ") if s == 'y': print("archiving ...") + self._archive_log(show=False) -class MoveLogTool(BasicLogTool): +class MigrateLogTool(BasicLogTool): def __init__(self, proj_root, task_table_name, regex, target_task_table_name, *args, **kwargs): self.proj_root = proj_root self.task_table_name = task_table_name self.regex = regex self.target_task_table_name = target_task_table_name - super(MoveLogTool, self).__init__(*args, **kwargs) + super(MigrateLogTool, self).__init__(*args, **kwargs) - def _archive_log(self, show=False): + def _migrate_log(self, show=False): for log_type in self.log_types: root_dir_regex = osp.join(self.proj_root, log_type, self.task_table_name, self.regex) target_root_dir = osp.join(self.proj_root, log_type, self.target_task_table_name) - prefix_dir = osp.join(self.proj_root, log_type) + prefix_dir = osp.join(self.proj_root, log_type, self.task_table_name) prefix_len = len(prefix_dir) empty = True # os.system("chmod +x -R \"{}\"".format(prefix_dir)) @@ -288,15 +289,15 @@ def _archive_log(self, show=False): if empty: print("empty regex {}".format(root_dir_regex)) pass - def archive_log(self, skip_ask=False): - self._archive_log(show=True) + def migrate_log(self, skip_ask=False): + self._migrate_log(show=True) if skip_ask: s = 'y' else: - s = input("archive these files? (y/n) \n ") + s = input("migrate these files? (y/n) \n ") if s == 'y': - print("moving ...") - self._archive_log(show=False) + print("migrating ...") + self._migrate_log(show=False) diff --git a/rla_scripts/migrate_expt.py b/rla_scripts/migrate_expt.py index d5e66cc..58a4ce5 100644 --- a/rla_scripts/migrate_expt.py +++ b/rla_scripts/migrate_expt.py @@ -1,12 +1,12 @@ # Created by xionghuichen at 2022/12/6 # Email: chenxh@lamda.nju.edu.cn """ -A script to move some important experiments to another task_table +A script to migrate some important experiments in one task table to the target task table. """ from rla_script_config import * -from RLA.easy_log.log_tools import MoveLogTool +from RLA.easy_log.log_tools import MigrateLogTool import argparse def argsparser(): @@ -21,6 +21,6 @@ def argsparser(): if __name__=='__main__': args = argsparser() - dlt = MoveLogTool(proj_root=DATA_ROOT, task_table_name=args.task_table, regex=args.regex, - target_task_table_name=args.target_task_table) - dlt.archive_log() \ No newline at end of file + dlt = MigrateLogTool(proj_root=DATA_ROOT, task_table_name=args.task_table, regex=args.regex, + target_task_table_name=args.target_task_table) + dlt.migrate_log() diff --git a/test/test_scripts.py b/test/test_scripts.py index 5b23387..6f773bc 100644 --- a/test/test_scripts.py +++ b/test/test_scripts.py @@ -1,6 +1,6 @@ from test._base import BaseTest from RLA.easy_log.log_tools import DeleteLogTool, Filter -from RLA.easy_log.log_tools import ArchiveLogTool, ViewLogTool +from RLA.easy_log.log_tools import ArchiveLogTool, ViewLogTool, MigrateLogTool from RLA.easy_log.tester import exp_manager import os @@ -57,6 +57,17 @@ def test_archive(self) -> None: log_found = dlt.delete_related_log(skip_ask=True) assert log_found == 10 + def test_migrate(self) -> None: + self.remove_and_copy_data() + dlt = MigrateLogTool(proj_root=self.TARGET_DATA_ROOT, task_table_name=self.TASK_NAME, + regex='2022/03/01/21-13*', target_task_table_name=self.TASK_NAME + '_v2') + dlt.migrate_log(skip_ask=True) + filter = Filter() + filter.config(type=Filter.ALL, timstep_bound=1) + dlt = DeleteLogTool(proj_root=self.TARGET_DATA_ROOT, regex='2022/03/01/21-13*', filter=filter, task_table_name=self.TASK_NAME + '_v2') + log_found = dlt.delete_related_log(skip_ask=True) + assert log_found == 10, f"found {log_found} expts." + def test_view(self) -> None: """ view experiment log.See rla_scripts/view_expt.py