class Pusher: def __init__(self, session_creator): self.tms_operator = Timeseries(session_creator) def push_timeseries(self, meta_data, tms, force=False): tms_id = self.tms_operator.get_timeseries_id(meta_data) if tms_id is None: raise NoTimeseriesFound( 'No timeseries id found for the given meta data', meta_data) return self.tms_operator.update_timeseries(tms_id, tms, force) def push_collection(self, meta_dic): # TODO pass
class Extractor: def __init__(self, session_creator): self.tms_operator = Timeseries(session_creator) def pull_timeseries(self, meta_data, start_dt, end_dt): tms_id = self.tms_operator.get_timeseries_id(meta_data) return self.tms_operator.get_timeseries(tms_id, start_dt, end_dt) def pull_collection(self, meta_dic): output_dic = {} for key in meta_dic.keys(): output_dic[key] = self.pull_timeseries(meta_dic[key], meta_dic[key]['from'], meta_dic[key]['to']) return output_dic
def get_timeseries_adapter(self): db_config = self.input_config['db_config'] db_engine = get_engine(host=db_config['host'], port=db_config['port'], user=db_config['user'], password=db_config['password'], db=db_config['db']) return Timeseries(get_sessionmaker(engine=db_engine))
run_date=run_date.strftime(DATE_FORMAT)) rainfall_arr = read_rainfall(run_dir, rainfall_file_name)[0:TIME_INDEX.size] rainfall_df_acc = pd.DataFrame({ 'time': TIME_INDEX, 'value': rainfall_arr }).set_index(keys='time') rainfall_df_inst = rainfall_df_acc.diff(axis=0) rainfall_df_inst.dropna(inplace=True) db_engine = get_engine(host=DB_CONFIG['host'], port=DB_CONFIG['port'], user=DB_CONFIG['user'], password=DB_CONFIG['password'], db=DB_CONFIG['db']) tms_adapter = Timeseries(get_sessionmaker(engine=db_engine)) TMS_META['station_name'] = station['name_in_db'] TMS_META['source'] = wrf_model['name_in_db'] tmss = separate_rainfall_for_event_types(today, rainfall_df_inst) for tms in tmss: TMS_META['event_type'] = tms['event_type'] tms_id = tms_adapter.get_timeseries_id(TMS_META) if tms_id is None: tms_id = tms_adapter.create_timeseries_id( run_name=TMS_META['run_name'], station={ 'name': station['name_in_db'], 'id': station['id_in_db'] },
def __init__(self, session_creator): self.tms_operator = Timeseries(session_creator)