Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"""
2@file
3@brief Functions to remember a step was done, uses files.
4"""
5import os
6import datetime
7import sys
9if sys.version_info[0] == 2:
10 from codecs import open
13def mark_step(folder, step_name, content=""):
14 """
15 create a file to remember was done (running it again takes times)
17 @param folder folder where to write
18 @param step_name step_name
19 @param content what to write in the file
20 @return created file name
21 """
22 name = os.path.join(folder, "log.step.{0}.txt".format(step_name))
23 with open(name, "w", encoding="utf8") as f:
24 f.write("# -- STEP {0} DONE --\n\n".format(step_name))
25 f.write("# -- {0}\n\n".format(datetime.datetime.now()))
26 if content is not None:
27 f.write(content)
28 f.write("\n# -- {0}".format(datetime.datetime.now()))
29 return name
32def is_step_done(folder, step_name):
33 """
34 checks a file was written with function @see fn mark_step
36 @param folder folder where to write
37 @param step_name step_name
38 @return boolean
39 """
40 name = os.path.join(folder, "log.step.{0}.txt".format(step_name))
41 if not os.path.exists(name):
42 return False
43 s = "# -- STEP {0} DONE --\n\n".format(step_name)
44 with open(name, "r", encoding="utf8") as f:
45 content = f.read()
46 if content.startswith(s):
47 with open(name, "a", encoding="utf8") as f:
48 f.write("\n# skip {0}".format(datetime.datetime.now()))
49 return True
50 else:
51 return False