def __init__(self, provider_def): """ Initialize object :param provider_def: provider definition dict :returns: `geomet_data_registry.layer.base.BaseLayer` """ # list of dictionaries self.items = [] self.model_run_list = [] self.receive_datetime = get_today_and_now() self.identify_datetime = None self.register_datetime = None self.filepath = None self.url = None self.dimensions = None self.model = None self.model_run = None self.geomet_layers = None self.wx_variable = None self.date_ = None self.file_dict = None self.new_key_store = False self.name = provider_def['name'] self.store = load_plugin('store', STORE_PROVIDER_DEF) self.tileindex = load_plugin('tileindex', TILEINDEX_PROVIDER_DEF)
def handle(self): """ handle incoming file :returns: `bool` of status result """ LOGGER.debug('Detecting filename pattern') for key in DATASET_HANDLERS.keys(): if key in self.filepath: plugin_def = { 'type': DATASET_HANDLERS[key], } LOGGER.debug('Loading plugin {}'.format(plugin_def)) self.layer_plugin = load_plugin('layer', plugin_def) if self.layer_plugin is None: msg = 'Plugin not found' LOGGER.error(msg) raise RuntimeError(msg) LOGGER.debug('Identifying file') identify_status = self.layer_plugin.identify(self.filepath) if identify_status: self.layer_plugin.identify_datetime = get_today_and_now() LOGGER.debug('Registering file') self.layer_plugin.register() if self.layer_plugin.new_key_store: self.layer_plugin.add_time_key() return True