From 806ac3be78372ff703fcd8f0cbb6bb7f85c9f446 Mon Sep 17 00:00:00 2001 From: Paradoxdruid Date: Sat, 29 Oct 2022 08:29:02 -0600 Subject: [PATCH] fix: improved module structure for packaging --- pyLIDAR/__main__.py | 54 +++++++++++++++++++++++++-------------------- pyproject.toml | 5 ++++- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/pyLIDAR/__main__.py b/pyLIDAR/__main__.py index f23ac7e..b6d0051 100644 --- a/pyLIDAR/__main__.py +++ b/pyLIDAR/__main__.py @@ -6,7 +6,7 @@ import serial -from pyLIDAR.pyLIDAR import main +from pyLIDAR import pyLIDAR def signal_handler(signal: int, frame: Optional[FrameType]) -> None: @@ -14,32 +14,38 @@ def signal_handler(signal: int, frame: Optional[FrameType]) -> None: sys.exit(0) -signal.signal(signal.SIGINT, signal_handler) +def main() -> None: + """Run pyLIDAR, parsing command line options.""" + signal.signal(signal.SIGINT, signal_handler) -# Set up argument parsing -import argparse + # Set up argument parsing + import argparse -parser = argparse.ArgumentParser(description="Collect LIDAR data") -parser.add_argument("-p", "--port", required=True, help="serial port") -parser.add_argument("-g", "--graph", action="store_true", help="graph data") -parser.add_argument("-s", "--save", action="store_true", help="save data") + parser = argparse.ArgumentParser(description="Collect LIDAR data") + parser.add_argument("-p", "--port", required=True, help="serial port") + parser.add_argument("-g", "--graph", action="store_true", help="graph data") + parser.add_argument("-s", "--save", action="store_true", help="save data") -args = parser.parse_args() + args = parser.parse_args() -port: str = args.port -plot: bool = args.graph -save: bool = args.save + port: str = args.port + plot: bool = args.graph + save: bool = args.save -print("Starting LIDAR data collection") + print("Starting LIDAR data collection") -if port == "test": # Use local server for testing - with serial.serial_for_url("socket://127.0.0.1:8000", timeout=1) as ser: - print("Entered") - main(ser, plot, save) - print("Exited") -else: - # Open serial port connection to LD06 LIDAR - with serial.Serial(port, 230400, timeout=1) as ser: - print("Entered") - main(ser, plot, save) - print("Exited") + if port == "test": # Use local server for testing + with serial.serial_for_url("socket://127.0.0.1:8000", timeout=1) as ser: + print("Entered") + pyLIDAR.main(ser, plot, save) + print("Exited") + else: + # Open serial port connection to LD06 LIDAR + with serial.Serial(port, 230400, timeout=1) as ser: + print("Entered") + pyLIDAR.main(ser, plot, save) + print("Exited") + + +if __name__ == "__main__": + main() diff --git a/pyproject.toml b/pyproject.toml index 42c0ee5..655ee6c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ dependencies = [ "pyserial", "matplotlib", ] -urls = [{homepage = "https://github.com/Paradoxdruid/pyLIDAR"}] +urls = {homepage = "https://github.com/Paradoxdruid/pyLIDAR"} [project.optional-dependencies] dev = [ @@ -28,6 +28,9 @@ dev = [ requires = ["flit_core >=3.4,<4"] build-backend = "flit_core.buildapi" +[project.scripts] +pyLIDAR = "pyLIDAR.__main__:main" + [tool.mypy] ignore_missing_imports = true strict = true