예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
 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]
예제 #4
0
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)