예제 #1
0
    def get_value(self, param, **kwargs):
        """
        Retorna el valor del parámetro param.

        Keywords:
            - autoNumberify (bool) = Activa la auto-conversión a números

        :param param: Parámetro a obtener valor
        :type param: object
        :param kwargs: Keywords

        :return: Valor del parámetro
        :rtype: object
        """
        if str(param).isdigit():
            param = int(param)
            if 0 <= param < len(self.config_single):
                param_value = str(self.config_single[param])

                # noinspection PyTypeChecker
                if kwarg_is_true_param(kwargs, "autoNumberify"):  # Auto-conversión a números
                    return convert_to_number(param_value)
                # El resultado se entrega sin convertir
                else:
                    return param_value

            else:
                errors.throw(errors.ERROR_BADINDEXCONFIG, str(param))
        else:
            if param in self.get_parameters():
                param_value = self.configs[param]

                # noinspection PyTypeChecker
                if kwarg_is_true_param(kwargs, "autoNumberify"):  # Auto-conversión a números
                    return convert_to_number(param_value)
                # El resultado se entrega sin convertir
                else:
                    return param_value

            else:
                errors.warning(errors.ERROR_CONFIGNOTEXISTENT, param)
        return None
예제 #2
0
    def __init__(self, directory, conffile, **kwargs):
        """
        Función constructora de la clase.

        Keywords:
            - verbose (bool) = Indica si se imprime el estado de ejecución o no en consola

        :param directory: Ubicación del archivo de configuraciones
        :type directory: str
        :param conffile: Nombre del archivo de configuraciones
        :type conffile: str
        :param kwargs: Parámetros adicionales
        :type kwargs: list

        :return: void
        """
        # Se carga el archivo de configuraciones
        filename = directory + conffile
        try:
            # noinspection PyShadowingBuiltins
            file = open(filename.replace("\\", "/"), "r")  # @ReservedAssignment
        except:
            errors.throw(errors.ERROR_NOCONFIGFILE, filename)

        # Variables
        self.config_single = []
        self.configs = {}
        self.filename = filename
        self.filename_title = conffile
        self.totalconfigs = 0

        # Se cargan las configuraciones
        for configline in file:
            if configline[0] != CONFIG_COMMENT and configline != "\n":
                config = string2list(configline, CONFIG_SEPARATOR)
                if len(config) == 1:
                    self.config_single.append(config[0])
                elif len(config) == 2:
                    self.totalconfigs += 1
                    self.configs[config[0]] = config[1]
                else:
                    errors.throw(errors.ERROR_BADCONFIG, configline, filename)
        if kwarg_is_true_param(kwargs, "verbose"):
            self.verbose = True
            if not (self.totalconfigs + len(self.config_single)):
                errors.warning(errors.WARNING_NOCONFIGFOUND, filename)
            else:
                print CONFIG_LOAD.format(filename)
        else:
            self.verbose = False
        file.close()