Files
seweb/chart_config.py

31 lines
1.1 KiB
Python

from configparser import ConfigParser
class ChartConfig:
def __init__(self, path):
cfgp = ConfigParser()
cfgp.read(path)
self.chart_config = cfgp["chart"]
def get_variable_parameter_config(self, key):
config = {}
positionnal = ["cat", "color", "unit"]
if key in self.chart_config.keys():
raw_value = self.chart_config[key]
arguments = raw_value.split(",")
keyword_mode = False
for i, argument in enumerate(arguments):
pieces = argument.split(":")
if len(pieces) == 2:
keyword_mode = True
if pieces[1] != "":
config[pieces[0]] = pieces[1]
else:
if not keyword_mode: #everything is going well
if pieces[0] != "":
config[positionnal[i]] = pieces[0]
else: #we cannot have a positionnal argument after a keyword argument
return None
return config
else:
return None