Created
July 4, 2022 15:00
-
-
Save DBoyara/5a1a47e1cdfe11beca3e4976f03de4ce to your computer and use it in GitHub Desktop.
Revisions
-
DBoyara created this gist
Jul 4, 2022 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,47 @@ import tkinter as tk import time from argparse import ArgumentParser from logging import getLogger from tkinter import messagebox import schedule logger = getLogger(__name__) def _init_parser() -> ArgumentParser: parser = ArgumentParser() parser.add_argument("hour", help="An hour for an alarm clock", type=int) parser.add_argument("minute", help="An minute for an alarm clock", type=int) return parser def _init_messagebox(hour: int, minute: int): root = tk.Tk() root.withdraw() messagebox.showwarning("Alarm Clock!", f"Ding Dong! Time is {hour}:{minute}") return schedule.CancelJob def main(): parser = _init_parser() args = parser.parse_args() if not 0 <= args.hour <= 24: return logger.error("Hour must be between 0 and 24 value") if not 0 <= args.minute <= 60: return logger.error("Minute must be between 0 and 60 value") (schedule .every() .day .at(f"{args.hour}:{args.minute}") .do(_init_messagebox, hour=args.hour, minute=args.minute)) while True: schedule.run_pending() time.sleep(1) if __name__ == '__main__': main()