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
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()