Python Forum
Help adding a loop inside a loop
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help adding a loop inside a loop
#15
First off, I just want to say thanks a lot for your time & patience in helping me to understand this, I really appreciate it.

So I got it to run, but there are still a couple of things I'm not sure about.

(1) Why do all the reminders popup when they haven't reached their scheduled/set time yet?
Ex: If you look at the output, the current time was 11:23 AM but all the reminders popped up even though they were set at 11:25, 11:28, & 11:30.
Is there a way to get it so nothing would have popped up until 11:25 (Then only the "Test 1" reminder should pop up because it's scheduled for 11:25, not the rest of them)?

(2) How do I get the AM/PM to display? I know the "%p" is supposed to do it in: "%Y-%m-%d %I:%M %p" but it doesn't show.

Thanks again.

My Output from (Test.py -> The code shown below):
Output:
Reminders in Database: ('Test 1', '2022-10-15 11:25:00') Reminders in Database: ('Test 2', '2022-10-15 11:28:00') Reminders in Database: ('Test 3', '2022-10-15 11:30:00') Scheduled Time: ('2022-10-15 11:25:00',) Scheduled Time: ('2022-10-15 11:28:00',) Scheduled Time: ('2022-10-15 11:30:00',) Current Date Time: 2022-10-15 11:23:00 Reminders Popup: ('2022-10-15 11:25:00',): Test 1 Reminders Popup: ('2022-10-15 11:28:00',): Test 2 Reminders Popup: ('2022-10-15 11:30:00',): Test 3
The code I have now (Test.py -> Not link to my main code yet):
import sched
import time
import sqlite3
from BX_External_Functions import checkForReminders, reminderPopup
from BX_Constants import MainDatabase, currentdate, currentTime
  
#Create schedule
scheduler = sched.scheduler(time.time, time.sleep)

#Read in reminders from database
#For each reminder, add an event to the schedule (enter/enterabs)
connection = sqlite3.connect(MainDatabase)
for row in connection.execute("SELECT Reminder, DateTime FROM Reminders"):
    print("Reminders in Database: ", row)
connection.close()

print("\n")

connection = sqlite3.connect(MainDatabase)
for row in connection.execute("SELECT DateTime FROM Reminders"):
    scheduled_time = row
    print("Scheduled Time: ",  scheduled_time)
connection.close()

import datetime
currentdate = datetime.date.today()
from datetime import datetime
timeNow = datetime.now()
currentTime = timeNow.strftime("%I:%M %p")

Current_DateTime = datetime.strptime(f"{currentdate} {currentTime}", "%Y-%m-%d %I:%M %p")
print("\nCurrent Date Time: ", Current_DateTime ,"\n")

# #If a new reminder is created, add it to the database & add an event to the schedule
# scheduler.enterabs()

# #Inside Baxter's while True loop, call schedule.run(blocking=False)
# print ('Checking for reminders...')
# scheduler.run(False)

def schedule_reminder(reminder):
    """Schedule a reminder"""
    scheduler.enterabs(
        time=Current_DateTime.timestamp(),
        priority=1,  
        action=send_reminder,
        argument=(reminder, scheduled_time))

def send_reminder(Reminder, scheduled_time):
    """Function called when time to send reminder"""
    print(f"Reminders Popup: {scheduled_time}: {Reminder}")


#Read in reminders from database
connection = sqlite3.connect(MainDatabase)
for reminder in connection.execute("SELECT Reminder FROM Reminders"):
    schedule_reminder(*reminder)
connection.close()

# somewhere later in your main code
while True:
    scheduler.run(False)
    # do other stuff
And this is how my Reminders Table/Database is set up:
def createBXDatabase():
        #Create a database (BX_Database.db)
        connection = sqlite3.connect("BX_Database.db")
        cursor = connection.cursor()
        #--------------------------------------------
        #               Reminders Table
        #--------------------------------------------
        remindersTable = """CREATE TABLE IF NOT EXISTS Reminders
                (ID INTEGER PRIMARY KEY  AUTOINCREMENT,
                Reminder            TEXT,
                DateTime            TEXT,
                DateAdded           datetime default current_timestamp);"""

        #Execute the creation of the table
        cursor.execute(remindersTable)
        #Commit the changes
        connection.commit()
        #Close the connection
        connection.close()
Reply


Messages In This Thread
Help adding a loop inside a loop - by Extra - Oct-09-2022, 09:37 PM
RE: Help adding a loop inside a loop - by Extra - Oct-09-2022, 10:41 PM
RE: Help adding a loop inside a loop - by Extra - Oct-10-2022, 02:36 PM
RE: Help adding a loop inside a loop - by Extra - Oct-10-2022, 03:01 PM
RE: Help adding a loop inside a loop - by Extra - Oct-10-2022, 05:07 PM
RE: Help adding a loop inside a loop - by Extra - Oct-10-2022, 06:38 PM
RE: Help adding a loop inside a loop - by Extra - Oct-10-2022, 07:31 PM
RE: Help adding a loop inside a loop - by Extra - Oct-15-2022, 03:52 PM
RE: Help adding a loop inside a loop - by Extra - Oct-15-2022, 07:10 PM
RE: Help adding a loop inside a loop - by Extra - Oct-15-2022, 11:12 PM
RE: Help adding a loop inside a loop - by Extra - Oct-16-2022, 12:17 AM
RE: Help adding a loop inside a loop - by Extra - Oct-16-2022, 06:10 PM
RE: Help adding a loop inside a loop - by Extra - Oct-17-2022, 10:41 PM
RE: Help adding a loop inside a loop - by Extra - Oct-17-2022, 11:23 PM
RE: Help adding a loop inside a loop - by Extra - Oct-19-2022, 01:01 AM
RE: Help adding a loop inside a loop - by Extra - Oct-23-2022, 12:16 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Need help with a while loop ampereap 4 171 May-31-2024, 02:25 PM
Last Post: ampereap
  problem program runs in a loop jasserin 0 179 May-18-2024, 03:07 PM
Last Post: jasserin
  [SOLVED] Loop through directories and files one level down? Winfried 3 408 Apr-28-2024, 02:31 PM
Last Post: Gribouillis
  Loop through all files in a directory? Winfried 10 769 Apr-23-2024, 07:38 PM
Last Post: FortuneCoins
  for loop not executing Abendrot47 2 349 Apr-09-2024, 07:14 PM
Last Post: deanhystad
  Re Try loop for "net use..." failures tester_V 10 805 Mar-02-2024, 08:15 AM
Last Post: tester_V
  File loop curiously skipping files - FIXED mbk34 10 1,055 Feb-10-2024, 07:08 AM
Last Post: buran
  Optimise multiply for loop in Python KenBCN 4 595 Feb-06-2024, 06:48 PM
Last Post: Gribouillis
  Basic binary search algorithm - using a while loop Drone4four 1 479 Jan-22-2024, 06:34 PM
Last Post: deanhystad
  loop through csv format from weburl in python maddyad82 3 539 Jan-17-2024, 10:08 PM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020