Source code for dpgen.generator.lib.utils

#!/usr/bin/env python3

import glob
import logging
import os
import re
import shutil

iter_format = "%06d"
task_format = "%02d"
log_iter_head = "iter " + iter_format + " task " + task_format + ": "


[docs] def make_iter_name(iter_index): return "iter." + (iter_format % iter_index)
[docs] def create_path(path): path += "/" if os.path.isdir(path): dirname = os.path.dirname(path) counter = 0 while True: bk_dirname = dirname + ".bk%03d" % counter if not os.path.isdir(bk_dirname): shutil.move(dirname, bk_dirname) break counter += 1 os.makedirs(path)
[docs] def replace(file_name, pattern, subst): file_handel = open(file_name) file_string = file_handel.read() file_handel.close() file_string = re.sub(pattern, subst, file_string) file_handel = open(file_name, "w") file_handel.write(file_string) file_handel.close()
[docs] def copy_file_list(file_list, from_path, to_path): for jj in file_list: if os.path.isfile(os.path.join(from_path, jj)): shutil.copy(os.path.join(from_path, jj), to_path) elif os.path.isdir(os.path.join(from_path, jj)): shutil.copytree(os.path.join(from_path, jj), os.path.join(to_path, jj))
[docs] def cmd_append_log(cmd, log_file): ret = cmd ret = ret + " 1> " + log_file ret = ret + " 2> " + log_file return ret
[docs] def log_iter(task, ii, jj): logging.info((log_iter_head + "%s") % (ii, jj, task))
[docs] def repeat_to_length(string_to_expand, length): ret = "" for ii in range(length): ret += string_to_expand return ret
[docs] def log_task(message): header = repeat_to_length(" ", len(log_iter_head % (0, 0))) logging.info(header + message)
[docs] def record_iter(record, ii, jj): with open(record, "a") as frec: frec.write("%d %d\n" % (ii, jj))