# options.py # class for wrapping options for esa_master_downloader script # Author: Hal DiMarchi from . import log import json import os from importlib.machinery import SourceFileLoader as load options = load("share.options", "../shared/options.py").load_module() class Options(options.Main_Options): def __init__(self, downloader_path): self.name = "esa_master_downloader" self.config_path = os.path.abspath( os.path.join(downloader_path, "config")) self.config_file = os.path.join(self.config_path, self.name + '.cfg') super().get_config() self.get_options() def get_options(self): self.esa_data_db = self.db_connection_string('esa_data') self.get_granule_from_esa_data = self.config.get('sql', 'get_granule') self.update_downloaded_for_esa_data = self.config.get( 'sql', 'download') self.max_processes = int( self.config.get('multiprocessing', 'max_processes')) self.wait_period = int(self.config.get('general', 'wait_period')) self.run = int(self.config.get('general', 'run'))
# sql.py # class for connecting with esa_data # Author: Hal DiMarchi from . import log try: import psycopg2 except ImportError: import psycopg2cffi as psycopg2 from importlib.machinery import SourceFileLoader as load sql = load("share.options", "../shared/sql.py").load_module() class Esa_Data_Sql(sql.Sql): def __init__(self, options): super().__init__(options) self.get_connections() def get_connections(self): try: self.esa_data_db_connection = psycopg2.connect(self.options.esa_data_db) self.esa_data_db_connection.autocommit = True except Exception as e: log.error(str(e)) self.options.set_running('0') raise e def close_connections(self): self.esa_data_db_connection.close()