Files
seweb/chart_config.py
Markus Zolliker a4fda418b2 fix chart config parameters
- add SEA dil pressures
- read config each time when it is used
2025-05-13 11:11:19 +02:00

47 lines
1.5 KiB
Python

from configparser import ConfigParser
import logging
class ChartConfig:
"""
Class that holds the chart section of a configuration file (for an instrument).
Attributes :
chart_config (Section) : the Section corresponding to the "chart" section in the given configuration file
"""
KEYS = ["cat", "color", "unit", "label"]
def __init__(self, path):
"""
Parameters :
path (str) : the path to the configuration file
"""
self.variables = {}
cfgp = ConfigParser(interpolation=None)
cfgp.optionxform = str
cfgp.read(path)
try:
section = cfgp["chart"]
except KeyError:
return
for key, raw_value in section.items():
arguments = raw_value.split(",")
keyword_mode = False
config = {'cat': '*'}
for i, argument in enumerate(arguments):
argname, _, argvalue = argument.rpartition(':')
if argname:
keyword_mode = True
config[argname] = argvalue
else:
if keyword_mode:
logging.error('positional arg after keywd arg: %s=%r', key, raw_value)
else:
try:
if argvalue:
config[self.KEYS[i]] = argvalue
except Exception as e:
logging.error('%r in %s=%r', e, key, raw_value)
self.variables[key] = config