From 8bfcbbf66a2edb38a00e8f3b801ca162b93877e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Grenotton?= Date: Mon, 6 Nov 2023 22:43:10 +0100 Subject: [PATCH] Fix entry point for packaging Python scripts packaging expects a parameter-less entry point. --- .github/workflows/pythonpackage.yaml | 5 ++++- pyhgtmap/main.py | 10 ++++++++-- tests/test_main.py | 6 +++--- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pythonpackage.yaml b/.github/workflows/pythonpackage.yaml index 7587a5e..b5da1a8 100644 --- a/.github/workflows/pythonpackage.yaml +++ b/.github/workflows/pythonpackage.yaml @@ -35,7 +35,10 @@ jobs: hatch run geotiff:all - name: Run unit test without Geotiff dependencies run: | - hatch run test + hatch run test + - name: Ensure script entrypoint is executable + run: | + hatch run pyhgtmap -v - name: Report test-coverage to DeepSource # Deepsource doesn't seem super stable continue-on-error: true diff --git a/pyhgtmap/main.py b/pyhgtmap/main.py index 72f24e6..a40b8a8 100644 --- a/pyhgtmap/main.py +++ b/pyhgtmap/main.py @@ -554,7 +554,7 @@ def parseCommandLine(sys_args: List[str]) -> Tuple[Values, List[str]]: return opts, args -def main(sys_args: List[str]) -> None: +def main_internal(sys_args: List[str]) -> None: opts, args = parseCommandLine(sys_args) configure_logging(opts.logLevel) @@ -589,5 +589,11 @@ def main(sys_args: List[str]) -> None: ) +def main() -> None: + """Parameter-less entry point, required for python packaging scripts""" + # https://packaging.python.org/en/latest/specifications/entry-points/#use-for-scripts + main_internal(sys.argv[1:]) + + if __name__ == "__main__": - main(sys.argv[1:]) + main() diff --git a/tests/test_main.py b/tests/test_main.py index 92c7a42..2ca624a 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -22,7 +22,7 @@ def test_main_download_from_poly(HgtFilesProcessor_mock, NASASRTMUtil_mock) -> N ] # Test - main.main(sys_args) + main.main_internal(sys_args) # Check NASASRTMUtil_mock.getFiles.assert_called_once() @@ -65,7 +65,7 @@ def test_main_manual_input_poly(HgtFilesProcessor_mock, NASASRTMUtil_mock) -> No ] # Test - main.main(sys_args) + main.main_internal(sys_args) # Check NASASRTMUtil_mock.getFiles.assert_not_called() @@ -93,7 +93,7 @@ def test_main_manual_input_no_poly(HgtFilesProcessor_mock, NASASRTMUtil_mock) -> ] # Test - main.main(sys_args) + main.main_internal(sys_args) # Check NASASRTMUtil_mock.getFiles.assert_not_called()