adding current date as default for cli args

This commit is contained in:
2024-06-19 15:49:20 +02:00
parent 6fa1c5a4c3
commit bb5364d021
4 changed files with 25 additions and 9 deletions

12
main.py
View File

@@ -1,6 +1,6 @@
#!/usr/bin/python3
from datetime import datetime
from util.str_to_datetime import datetime
from model.DataStore import DataStore
from model.TimeSlot import TimeSlot
@@ -25,8 +25,7 @@ if __name__ == "__main__":
print("An event is already running.")
else:
if args.start is not None:
s = datetime.strptime(args.start, '%d.%m.%y %H:%M')
ds.add_time_slot(TimeSlot(args.name, start=s))
ds.add_time_slot(TimeSlot(args.name, start=datetime(args.start)))
else:
ds.add_time_slot(TimeSlot(args.name))
print(f"Started event {args.name}.")
@@ -40,8 +39,7 @@ if __name__ == "__main__":
raise Exception("Found multiple running event.")
else:
if args.end is not None:
s = datetime.strptime(args.end, '%d.%m.%y %H:%M')
running[0].end = s
running[0].end = datetime(args.end)
else:
running[0].end_now()
ds.write_update()
@@ -60,9 +58,9 @@ if __name__ == "__main__":
else:
ts = TimeSlot(args.name)
if args.start is not None:
ts.start = datetime.strptime(args.start, '%d.%m.%y %H:%M')
ts.start = datetime(args.start)
if args.end is not None:
ts.end = datetime.strptime(args.end, '%d.%m.%y %H:%M')
ts.end = datetime(args.end)
ds.add_time_slot(ts)
ds.write_update()
print("The event was added.")

View File

@@ -28,4 +28,3 @@ def create_parser():
parser_end.add_argument("-e", "--end", help="End datetime")
return parser

19
util/str_to_datetime.py Normal file
View File

@@ -0,0 +1,19 @@
from datetime import datetime as dt
def datetime(s: str) -> dt:
s = s.strip()
try:
return dt.strptime(s, '%d.%m.%y %H:%M')
except ValueError:
pass
try:
tim = dt.strptime(s, '%H:%M').time()
dat = dt.now().date()
return dt.combine(dat, tim)
except ValueError:
pass
raise ValueError("The given string can not be interpreted as a datetime.")

View File

@@ -1,7 +1,7 @@
from model.TimeSlot import TimeSlot
def convert_to_table(time_slot_list: list[TimeSlot]):
def convert_to_table(time_slot_list: list[TimeSlot]) -> str:
widths = [30, 26, 26]
r_str = f"+{'-'*(widths[0]+2)}+{'-'*(widths[1]+2)}+{'-'*(widths[2]+2)}+\n"