def merge_sc_opex_unit_data(convmatrixdf, targetdf): if 'Unit' in convmatrixdf.columns and 'Unit' in targetdf.columns: unittest = targetdf['Unit'].isin(convmatrixdf['Unit']) if unittest[unittest.isin([False])].empty: df3 = pd.merge(convmatrixdf, targetdf, on='Unit', left_index=True) for column in df3._get_numeric_data(): if column == 'Conversion Rate' or column == 'Capacity': continue else: df3[column] = df3[column] * df3['Conversion Rate'] df3['Unit'] = df3['Uniform Unit'] df3 = df3.drop(columns=['Uniform Unit', 'Conversion Rate']) return df3 else: error_msg = "This unit is not handled by the canvas: %s" % targetdf[ 'Unit'][ targetdf['Unit'].isin(convmatrixdf['Unit']) is False] logger.error(error_msg) raise Exception(error_msg) else: if 'Unit' not in convmatrixdf.columns: error_msg = "Unit column is missing in conversion matrix: %s" % list( convmatrixdf.columns) else: error_msg = "Unit column is missing in table: %s" % list( targetdf.columns) logger.error(error_msg) raise Exception(error_msg)
def merge_capex_unit_data(convmatrixdf, targetdf): # unit conversion fct takes as argument the conversion matrix df & the target df to be treated if 'Unit' in convmatrixdf.columns and 'Unit' in targetdf.columns: unittest = targetdf['Unit'].isin(convmatrixdf['Unit']) if unittest[unittest.isin([False])].empty: df3 = pd.merge(convmatrixdf, targetdf, on='Unit', left_index=True) df3['CAPEX'] = df3['CAPEX'] * df3['Conversion Rate'] df3['Unit'] = df3['Uniform Unit'] df3 = df3.drop(columns=['Uniform Unit', 'Conversion Rate']) return df3 else: error_msg = "This unit is not handled by the canvas: %s" % targetdf[ 'Unit'][ targetdf['Unit'].isin(convmatrixdf['Unit']) is False] logger.error(error_msg) raise Exception(error_msg) else: if 'Unit' not in convmatrixdf.columns: error_msg = "Unit column is missing in conversion matrix: %s" % list( convmatrixdf.columns) else: error_msg = "Unit column is missing in table: %s" % list( targetdf.columns) logger.error(error_msg) raise Exception(error_msg)
def __init__(self, name): """ Constructor """ if name is None: msg = "Database name is not defined!" logger.error(msg) raise Exception(msg) self.db = MONGO_CLIENT[name]
def get_service_url(context): """ Get url to data service :param context: :return: string """ if env.DB_NAME is None: msg = "Database name is not defined!" logger.error(msg) raise Exception(msg) if context not in ["data", "results"]: msg = "%s is not a defined context, possible values are data or results" % context logger.error(msg) raise Exception(msg) return "%s/%s/%s/" % (DATA_SERVICE_URL, context, env.DB_NAME)