from configparser import ConfigParser from shutil import copy # TODO: Set up actual logging def log(text: str): print(text) def read_config() -> dict: """ Returns the contents of config.ini as a a dict, assuming it exists and has no empty fields. """ config = ConfigParser() # Reads the file and checks if it exists if config.read('config.ini') == []: copy("config.ini.sample","config.ini") log("Creating config.ini file") exit() # Creates the dict and removes the "DEFAULTS" section config_dict = { key: dict(value) for key,value in dict(config).items() if key != "DEFAULT" } # Checks if every field is filled out all_filled_out = all( all(v2 != '' for _,v2 in v1.items()) for _,v1 in config_dict.items() ) if not all_filled_out: log("Empty fields in config.ini") exit() return config_dict def main(): # Reading the config file config = read_config() # Step 2: # Get data from Trello API # - Time each card has been in the step it's in # - Escalation level # - Who is assigned (as well as their email) # Step 3: # For each card, compare to escalation rules to see if it's at the step # and escalation level it should be at. If not, flag it. # Step 4: # Generate reports for each person, showing their own cards. # Perhaps a "master report" with every card. # Step 5: # Send out the reports via email. if __name__ == "__main__": main()