import argparse from configs.config import config from sources.BaseSource import BaseSource class Updater: def __init__(self): parser = argparse.ArgumentParser(description="Source parser.") parser.add_argument("--config", help='Update config action', action='store_true') parser.add_argument("--source", type=str) self.args = parser.parse_args() def is_source_exists(self, source): try: config.get_source_by_name(source) except ValueError: return False return True def parse_source(self, source): source_config = config.get_source_by_name(source) source_model = BaseSource(**source_config) if not source_model.check_is_update_needed(): print('Nothing to update') return else: updated = source_model.update_data() print('Rows added: ' + str(updated)) def update_config(self): config.update_sources() def do_action(self): print("Start Updater"); print("Start Configure") self.update_config() if hasattr(self.args, 'source') and self.is_source_exists(self.args.source): print("Start source update" + self.args.source) self.parse_source(self.args.source) return for source in config.get_sources_list(): try: print("Start source update" + source) self.parse_source(source) except: print(source + " has error") updater = Updater() updater.do_action()