Untitled

 avatar
unknown
plain_text
2 months ago
1.5 kB
3
Indexable
def map_mdx_parameters(self, mdx_parameters):
    """
    Maps input mdx params' values with params' keys from mdx formatting.
    Ex: {AsOfDate: 2022-09-30} --> {data: 2022-09-30}
    """
    if len(mdx_parameters) < len(self.parameters_to_fill):
        logger.error(
            'MDX query %s expects parameters: %s; but only these were received: %s',
            self.mdx_query_name, self.parameters_to_fill, mdx_parameters
        )
        raise KeyError(f"Insufficient parameters for query {self.mdx_query_name}")

    for param in self.parameters_to_fill:
        try:
            # Si el parámetro existe en DICT_CAMPOS_MDX, usamos la clave mapeada
            if param in DICT_CAMPOS_MDX:
                self.parameter_map[param] = mdx_parameters[DICT_CAMPOS_MDX[param]]
            else:
                # Si no existe en DICT_CAMPOS_MDX, usamos directamente el nombre del parámetro
                self.parameter_map[param] = mdx_parameters[param]

        except KeyError:
            # Generar un error detallado si no se encuentra el parámetro
            logger.error(
                f"Key '{param}' not found in DICT_CAMPOS_MDX or directly in mdx_parameters."
                f" Available keys: {list(mdx_parameters.keys())}"
            )
            raise KeyError(
                f"Key '{param}' not found in DICT_CAMPOS_MDX or mdx_parameters. "
                f"Check DICT_CAMPOS_MDX and input parameters."
            )
Leave a Comment