Shift functions around for poetry

This commit is contained in:
Timothy Allen 2024-03-21 20:58:30 +02:00
parent be75d8fd88
commit ae26cdf3c6

View File

@ -29,6 +29,7 @@ try:
writeapi = None writeapi = None
except: except:
can_export_influxdb = False can_export_influxdb = False
influxclient = None
DAEMON_UPDATE_PERIOD = 30 DAEMON_UPDATE_PERIOD = 30
SERIALPORT = "/dev/ttyUSB0" SERIALPORT = "/dev/ttyUSB0"
@ -550,21 +551,6 @@ def collect_data():
return data return data
def main():
global debug
data = dict()
while bool(data) is False:
data = collect_data()
time.sleep(1)
if args.report_json:
print(json.dumps(data))
elif args.report_print:
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(data)
def prometheus_export(daemonize=True, filename=None): def prometheus_export(daemonize=True, filename=None):
global debug global debug
if not can_export_prometheus: if not can_export_prometheus:
@ -738,37 +724,39 @@ def influxdb_create_snapshot(data):
return points return points
def parse_args():
parser = argparse.ArgumentParser(
description='Query JBD BMS and report status',
add_help=True,
)
parser.add_argument('--json', '-j', dest='report_json', action='store_true',
default=False, help='Report data as JSON')
parser.add_argument('--prometheus', '-p', dest='report_prometheus', action='store_true',
default=False, help='Daemonize and report data to Prometheus')
parser.add_argument('--file', '-f', dest='report_textfile', type=str, action='store',
default=False, help='Report data to Prometheus using textfile <file>')
parser.add_argument('--influxdb', '-i', dest='report_influxdb', action='store_true',
default=False, help='Daemonize and report data to InfluxDB using INFLUXDB_V2_URL, INFLUXDB_V2_ORG and INFLUXDB_V2_TOKEN environment variables')
parser.add_argument('--bucket', '-b', dest='influx_bucket', type=str, action='store',
default="ups", help='Set the bucket name when sending data to influxdb (defaults to "ups")')
parser.add_argument('--url', '-u', dest='influx_url', type=str, action='store',
default=False, help='Set the URL when sending data to influxdb (overrides INFLUXDB environment variables)')
parser.add_argument('--org', '-o', dest='influx_org', type=str, action='store',
default=False, help='Set the influx organization when sending data to influxdb (overrides INFLUXDB environment variables)')
parser.add_argument('--token', '-t', dest='influx_token', type=str, action='store',
default=False, help='Set the influx token when sending data to influxdb (overrides INFLUXDB environment variables)')
parser.add_argument('--print', dest='report_print', action='store_true',
default=True, help='Report data as text')
parser.add_argument('--verbose', '-v', action='count',
default=0, help='Print more verbose information (can be specified multiple times)')
args = parser.parse_args()
return args
if __name__ == '__main__':
debug = 0 def main():
atexit.register(cleanup) global debug
atexit.register(shutdown)
try: try:
parser = argparse.ArgumentParser( args = parse_args()
description='Query JBD BMS and report status',
add_help=True,
)
parser.add_argument('--json', '-j', dest='report_json', action='store_true',
default=False, help='Report data as JSON')
parser.add_argument('--prometheus', '-p', dest='report_prometheus', action='store_true',
default=False, help='Daemonize and report data to Prometheus')
parser.add_argument('--file', '-f', dest='report_textfile', type=str, action='store',
default=False, help='Report data to Prometheus using textfile <file>')
parser.add_argument('--influxdb', '-i', dest='report_influxdb', action='store_true',
default=False, help='Daemonize and report data to InfluxDB using INFLUXDB_V2_URL, INFLUXDB_V2_ORG and INFLUXDB_V2_TOKEN environment variables')
parser.add_argument('--bucket', '-b', dest='influx_bucket', type=str, action='store',
default="ups", help='Set the bucket name when sending data to influxdb (defaults to "ups")')
parser.add_argument('--url', '-u', dest='influx_url', type=str, action='store',
default=False, help='Set the URL when sending data to influxdb (overrides INFLUXDB environment variables)')
parser.add_argument('--org', '-o', dest='influx_org', type=str, action='store',
default=False, help='Set the influx organization when sending data to influxdb (overrides INFLUXDB environment variables)')
parser.add_argument('--token', '-t', dest='influx_token', type=str, action='store',
default=False, help='Set the influx token when sending data to influxdb (overrides INFLUXDB environment variables)')
parser.add_argument('--print', dest='report_print', action='store_true',
default=True, help='Report data as text')
parser.add_argument('--verbose', '-v', action='count',
default=0, help='Print more verbose information (can be specified multiple times)')
args = parser.parse_args()
debug=args.verbose debug=args.verbose
@ -791,6 +779,24 @@ if __name__ == '__main__':
elif args.report_textfile: elif args.report_textfile:
prometheus_export(daemonize=False, filename=args.report_textfile) prometheus_export(daemonize=False, filename=args.report_textfile)
else: else:
main() data = dict()
while bool(data) is False:
data = collect_data()
time.sleep(1)
if args.report_json:
print(json.dumps(data))
elif args.report_print:
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(data)
except KeyboardInterrupt: except KeyboardInterrupt:
cleanup() cleanup()
if __name__ == '__main__':
debug = 0
atexit.register(cleanup)
atexit.register(shutdown)
main()