mirror of
https://github.com/huchenlei/HandRefinerPortable.git
synced 2026-01-26 15:49:45 +00:00
52 lines
1.8 KiB
Python
52 lines
1.8 KiB
Python
import datetime
|
|
import os
|
|
import pickle
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
def print_args(args):
|
|
opts = vars(args)
|
|
print('======= Options ========')
|
|
for k, v in sorted(opts.items()):
|
|
print('{}: {}'.format(k, v))
|
|
print('========================')
|
|
|
|
|
|
def save_args(args, save_folder, opt_prefix='opt', verbose=True):
|
|
opts = vars(args)
|
|
# Create checkpoint folder
|
|
if not os.path.exists(save_folder):
|
|
os.makedirs(save_folder, exist_ok=True)
|
|
|
|
# Save options
|
|
opt_filename = '{}.txt'.format(opt_prefix)
|
|
opt_path = os.path.join(save_folder, opt_filename)
|
|
with open(opt_path, 'a') as opt_file:
|
|
opt_file.write('====== Options ======\n')
|
|
for k, v in sorted(opts.items()):
|
|
opt_file.write(
|
|
'{option}: {value}\n'.format(option=str(k), value=str(v)))
|
|
opt_file.write('=====================\n')
|
|
opt_file.write('launched {} at {}\n'.format(
|
|
str(sys.argv[0]), str(datetime.datetime.now())))
|
|
|
|
# Add git info
|
|
label = subprocess.check_output(["git", "describe",
|
|
"--always"]).strip()
|
|
if subprocess.call(
|
|
["git", "branch"],
|
|
stderr=subprocess.STDOUT,
|
|
stdout=open(os.devnull, 'w')) == 0:
|
|
opt_file.write('=== Git info ====\n')
|
|
opt_file.write('{}\n'.format(label))
|
|
commit = subprocess.check_output(['git', 'rev-parse', 'HEAD'])
|
|
opt_file.write('commit : {}\n'.format(commit.strip()))
|
|
|
|
opt_picklename = '{}.pkl'.format(opt_prefix)
|
|
opt_picklepath = os.path.join(save_folder, opt_picklename)
|
|
with open(opt_picklepath, 'wb') as opt_file:
|
|
pickle.dump(opts, opt_file)
|
|
if verbose:
|
|
print('Saved options to {}'.format(opt_path))
|