From 135b6b60e6274443ade7e20a9b89dbcd900e86f1 Mon Sep 17 00:00:00 2001 From: trevor grayson Date: Sat, 18 Sep 2021 20:35:34 -0700 Subject: [PATCH] telemetry/__main__ --- example/__init__.py | 0 example/__main__.py | 9 +++++++++ telemetry/__init__.py | 6 ++++++ telemetry/__main__.py | 22 ++++++++++++++++++++++ 4 files changed, 37 insertions(+) create mode 100644 example/__init__.py create mode 100644 example/__main__.py create mode 100644 telemetry/__main__.py diff --git a/example/__init__.py b/example/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/example/__main__.py b/example/__main__.py new file mode 100644 index 0000000..4f2f9c2 --- /dev/null +++ b/example/__main__.py @@ -0,0 +1,9 @@ +from argparse import ArgumentParser + +parser = ArgumentParser(description="telemetry python wrapper") +parser.add_argument("bob", help="python module to run") + +args = parser.parse_args() + +if __name__ == '__main__': + print(args.bob) diff --git a/telemetry/__init__.py b/telemetry/__init__.py index eeec28b..82d2987 100644 --- a/telemetry/__init__.py +++ b/telemetry/__init__.py @@ -31,6 +31,12 @@ def is_logger(meter: Telemeter): return hasattr(loggers, meter.__name__) +def env_loggers(): + for meter in REGISTRY: + if is_configured(meter) and is_logger(meter): + yield meter + + def load_env(logger=None): global ACTIVE_TELEMETERS ACTIVE_TELEMETERS = [] # TODO scan if each telemeter is loaded already. diff --git a/telemetry/__main__.py b/telemetry/__main__.py new file mode 100644 index 0000000..9b9a656 --- /dev/null +++ b/telemetry/__main__.py @@ -0,0 +1,22 @@ +import sys +import runpy +import logging +from argparse import ArgumentParser + +import telemetry + +parser = ArgumentParser(description="telemetry python wrapper") +parser.add_argument("module", help="python module to run") +args, _ = parser.parse_known_args() + +main_logger = logging.getLogger() +telem_logger = logging.getLogger("telemetry") + +loggers = telemetry.env_loggers() +for logger in loggers: + logging.info(f"loading {logger.__name__}") + main_logger.addHandler(logger) + telem_logger.addHandler(logger) + +sys.argv = sys.argv[1:] +runpy.run_module(args.module, run_name="__main__")