Skip to content

Commit f83da57

Browse files
author
madhaven
committed
Update diary.py
added Exception for quick stops updated method documentation added a bool method for Entry cleaner code
1 parent 9bb1083 commit f83da57

File tree

1 file changed

+26
-16
lines changed

1 file changed

+26
-16
lines changed

diary.py

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
version = '3.2'
33
testing = version[-5:] == 'debug'
44
if testing: import traceback
5-
from os import sep, path
5+
from os import sep, path, system
66
import sys
77

88
from time import sleep
@@ -30,18 +30,22 @@
3030
input('include error '+str(e))
3131
exit()
3232

33+
class EmergencyStop(Exception):
34+
pass
3335

3436
class Entry:
3537
'''stores an entry that the user makes'''
3638

3739
def __init__(self, text:str='', time:datetime=None, intervals:list=None, printdate:bool=False):
38-
'''set empty strings, initialize the filename taken from globals'''
40+
'''set empty strings'''
3941
self.text:str = text
40-
41-
if time: self.time:datetime = time
42-
if intervals: self.intervals:list = intervals
42+
self.time:datetime = time
43+
self.intervals:list = intervals
4344
self.printdate:bool = printdate
4445

46+
def __bool__(self):
47+
return len(self.text) > 0
48+
4549
def __str__(self):
4650
'''
4751
Convert user input information and returns data alone\n
@@ -64,19 +68,22 @@ def record(self):
6468

6569
while True:
6670
#get pressed character
67-
char=str(getch())[2:-1]
71+
char = str(getch())[2:-1]
6872

6973
#format time
7074
t2 = datetime.now().timestamp()
71-
if (t2-t1)>60: t2, t1=(t2-t1)-int(t2-t1)+5, t2
72-
else: t2, t1 = t2-t1, t2
75+
if (t2-t1) > 60:
76+
t2, t1 = (t2-t1) - int(t2-t1) + 5, t2
77+
else:
78+
t2, t1 = t2 - t1, t2
7379
t2 = round(t2, 4)
7480

75-
#Return key pressed
76-
if char=='\\r':
81+
#Return key
82+
if char == '\\r':
7783

7884
#do nothing if text is empty
79-
if len(entry) == 0: continue
85+
if len(entry) == 0:
86+
continue
8087

8188
#add a new line character to the entry and format the entry object
8289
entry.append(['\n', t2])
@@ -85,17 +92,17 @@ def record(self):
8592
print()
8693
return self
8794

88-
#Escape seq pressed
95+
#Escape char
8996
elif char == '\\\\':
9097
print('\\', end='', flush=True)
9198
char = "\\"
9299

93-
#Tabspace pressed
100+
#Tabspace
94101
elif char == '\\t':
95102
print('\t', end='', flush=True)
96103
char = '\t'
97104

98-
#Backspace pressed, I think
105+
#Backspace?
99106
elif char == '\\x08':
100107
print('\b \b', end='', flush=True)
101108
char = '\b'
@@ -149,7 +156,8 @@ def add(self, *entries):
149156
if f.tell()==0:
150157
f.writelines([self.headerFormat%self.version])
151158
for entry in entries:
152-
f.write(self.entryFormat%(entry.time.ctime(), entry.text, str(entry.intervals)))
159+
if entry:
160+
f.write(self.entryFormat%(entry.time.ctime(), entry.text, str(entry.intervals)))
153161

154162
def record(self, entry:Entry=Entry()):
155163
'''
@@ -164,6 +172,8 @@ def record(self, entry:Entry=Entry()):
164172
self.add(entry)
165173
if self.sessionStopWord in str(entry).lower():
166174
break
175+
except EmergencyStop as e:
176+
self.add(entry)
167177
except Exception as e:
168178
print('your last entry : '+str(entry))
169179
raise e
@@ -318,7 +328,7 @@ def diaryinfo():
318328

319329
#get cli args
320330
cliargs = [arg.lower() for arg in sys.argv][1:]
321-
log('cli args', sys.argv, '->', cliargs)
331+
log('DIARY cli args', sys.argv, '->', cliargs)
322332
diary = Diary(filename=filename, typespeed=typespeed)
323333

324334
# parse cli args to select menu

0 commit comments

Comments
 (0)