From c843f0875b5c4a4bddf3eacb11a997fd28456584 Mon Sep 17 00:00:00 2001 From: Ben Thorner Date: Thu, 18 Nov 2021 08:20:46 +0000 Subject: [PATCH 1/2] Move logger config to CLI module Previously we configured the root logger in the PMS package itself, which would mean any code using the package as a library would get the logging config as a side effect. Rather than configure the root logger, which should be left to the toplevel program, this re-scopes how we set the config to apply to just the specific logger for the package. --- src/pms/__init__.py | 2 -- src/pms/cli.py | 8 ++++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/pms/__init__.py b/src/pms/__init__.py index b374b40..4549e10 100644 --- a/src/pms/__init__.py +++ b/src/pms/__init__.py @@ -1,7 +1,5 @@ import logging -import os -logging.basicConfig(level=os.getenv("LEVEL", "WARNING")) logger = logging.getLogger(__name__) diff --git a/src/pms/cli.py b/src/pms/cli.py index a5cfc8d..7428deb 100644 --- a/src/pms/cli.py +++ b/src/pms/cli.py @@ -1,3 +1,5 @@ +import logging +import os import sys from datetime import datetime from enum import Enum @@ -25,6 +27,9 @@ main.command(name=ep.name)(ep.load()) +logging.basicConfig(level=os.getenv("LEVEL", "WARNING")) + + def version_callback(value: bool): # pragma: no cover if not value: return @@ -45,8 +50,7 @@ def callback( version: Optional[bool] = Option(None, "--version", "-V", callback=version_callback), ): """Read serial sensor""" - if debug: # pragma: no cover - logger.setLevel("DEBUG") + logger.setLevel("DEBUG" if debug else os.getenv("LEVEL", "WARNING")) ctx.obj = {"reader": SensorReader(model, port, seconds, samples)} From a3b785751828bf3cdd71173a55c54ee22f823429 Mon Sep 17 00:00:00 2001 From: Ben Thorner Date: Thu, 18 Nov 2021 08:37:08 +0000 Subject: [PATCH 2/2] Add __main__ CLI hook to support local dev This follows the convention for typer prorams. Note the same can also be achieved with e.g. python -c 'from pms.cli import main; main()' but having it run automatically saves documenting this. --- src/pms/cli.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pms/cli.py b/src/pms/cli.py index 7428deb..d857644 100644 --- a/src/pms/cli.py +++ b/src/pms/cli.py @@ -131,3 +131,7 @@ def csv( csv.write("time,sensor,hex\n") for raw in reader(raw=True): csv.write(f"{raw.time},{sensor_name},{raw.hex}\n") + + +if __name__ == "__main__": # pragma: no cover + main()