Hide keyboard shortcuts

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 

8 

9if sys.version_info[0] == 2: 

10 from codecs import open 

11 

12 

13def mark_step(folder, step_name, content=""): 

14 """ 

15 create a file to remember was done (running it again takes times) 

16 

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 

30 

31 

32def is_step_done(folder, step_name): 

33 """ 

34 checks a file was written with function @see fn mark_step 

35 

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