import logging import datetime SESSION = None def __gen_session_name__(): now = datetime.datetime.utcnow() return "treeNLU-session-{}.org".format( now.strftime("%y_%m_%d %H:%M:%S_%f")) def create_global_session(fname): global SESSION SESSION = OrgModeSession(fname) def global_session(): if SESSION is None: session_name = __gen_session_name__() logging.warn("Session not created, saved on {}".format(session_name)) create_global_session(session_name) assert(SESSION is not None) return SESSION class OrgModeSession: def __init__(self, fname): self.f = open(fname, 'wt') self.last_level = 0 def annotate(self, annotation): self.f.write("{indentation} {data}\n".format( indentation=' ' * (self.last_level + 2 + 1), data=annotation)) def log_step(self, string, level): self.f.write("{indentation} {data}\n".format( indentation='*' * (level + 1), data=string)) self.last_level = level def close(self): self.f.close()