import signal from logging import Logger from influxdb_client_3 import Point class SignalHandler: running: bool logger: Logger def __init__(self, logger): self.running: bool = True self.logger: Logger = logger signal.signal(signal.SIGINT, self._handle_sigint) signal.signal(signal.SIGTERM, self._handle_sigint) def _handle_sigint(self, signum, frame): self.logger.info(f"Received SIGNAL: {signal.strsignal(signum)}") self.running = False def dict2Point(measurement: str, fields: dict, tags: dict | None = None) -> Point: p = Point(measurement) for k,v in fields.items(): p.field(k,v) if tags: for k,v in tags.items(): p.tag(k,v) return p def convertInt(d: dict) -> dict: for k,v in d.items(): if str.isdecimal(v): d[k] = int(v) return d def convertIntList(l: list[dict]) -> list[dict]: for n,d in enumerate(l): l[n] = convertInt(d) return l