def main2(): parser = argparse.ArgumentParser() parser.add_argument( "--date", type=str, help="The date used to load meetings from RMBS. Format: YYYY-MM-DD", required=True) parser.add_argument("--noMinWaste", help="If set, then we will skip minWaste optimization", action="store_true") parser.add_argument("--debug", action="store_true") parser.add_argument("--maxTime", help="Max. resolving time in sec", type=int, default=600) args = parser.parse_args() _debug = args.debug # We have 3 rooms (A, B and C) # Use edge to mark which room is next to which # g_rooms = networkx.Graph() # for rm in list(room_names): # g_rooms.add_node(rm) # g_rooms.add_edge("A", "B") # g_rooms.add_edge("B", "C") rmbs = Rmbs() applications = Application.get_applications(rmbs) if not applications: logger.info("No applications found") return df_apps = Application.applications_to_df(applications) df_apps_too_late = df_apps.query( f'status == "{Application.STATUS_TOO_LATE}"') # Please note that each app form can apply for multiple days. Some may succeeed, and some may fail! if len(df_apps_too_late) > 0: logger.info(f"{len(df_apps_too_late)} found to be too_late") Site.send_too_late_bookings_email(df_apps_too_late) df_apps = df_apps.query(f'status != "{Application.STATUS_TOO_LATE}"') if len(df_apps) == 0: logger.info("No more non-too-late found") return grouped_apps = df_apps.groupby(['event_site', 'event_date']) for group_name, df_entries in grouped_apps: ret = process_site_applications(area=group_name[0], rmbs=rmbs, event_date=group_name[1], requests=df_entries, max_resolve_time=args.maxTime, no_min_waste=args.noMinWaste) Application.update_entries_status(df_entries, ret, rmbs)