Source code for dpgen.auto_test.lib.utils

#!/usr/bin/env python3

import os, re, shutil, logging

iter_format = "%s"
task_format = "%s"
log_iter_head = "task type: " + iter_format + " task: " + task_format + " process: "

[docs]def make_iter_name (iter_index) : return "task type:" + (iter_format)
[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, 'r') 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, confs, ii, jj) : with open (record, "a") as frec : frec.write ("%s %s %s\n" % (confs, ii, jj))