import os import time from notifier_modules import PublisherO2MQ, Publisher class ClientITRO2MQ(PublisherO2MQ): def __init__(self, process_params): super().__init__(process_params) def client_set_type_metadata_file(self): self.trigger_settings["type_metadata_file"] = ".csv" def client_set_unique_field(self): self.trigger_settings["unique_field"] = "Cheque Number" class ContextMapException(Exception): pass class ContextMap: def __init__(self, process_params): self.process_params = process_params @property def client(self): return self.process_params["client"] @property def rule(self): return self.process_params["rule"] @property def client_key(self): return (self.client + "_" + self.rule).lower() @property def context_map(self): if "itr_itr" in self.client_key: return "O2MQ", ClientITRO2MQ else: raise ContextMapException( f"internal error, cannot match client_key {self.client_key}" ) class PubisherLauncher: def __init__(self, context_map, client_name): self.context_map = context_map self.client_name = client_name self.__run() def __run(self): while True: with Publisher(self.context_map, self.client_name) as p: sleep_time = 0.3 if os.environ["ENV"] == "dev" else 2 time.sleep(sleep_time) if __name__ == "__main__": PubisherLauncher(ContextMap, "itr")