From 591ce257f8c8f08d9609471e860349322d10c4a7 Mon Sep 17 00:00:00 2001 From: ng0 Date: Mon, 28 Oct 2019 13:32:12 +0000 Subject: Add PythonTool(). Contrary the code in sh/, it is limited to python3.7 - python4.0 right now. --- talerbuildconfig.py | 36 ++++++++++++++++++++++++++++++++++++ testconfigure.py | 1 + 2 files changed, 37 insertions(+) diff --git a/talerbuildconfig.py b/talerbuildconfig.py index 647a0a1..f0e6d92 100644 --- a/talerbuildconfig.py +++ b/talerbuildconfig.py @@ -213,6 +213,42 @@ class PyBabelTool(Tool): return True +class PythonTool(Tool): + # This exists in addition to the files in sh, so that + # the Makefiles can use this value instead. + name = "python" + + def args(self, parser): + parser.add_argument( + "--with-python", type=str, help="name of the python executable" + ) + + def check(self, buildconfig): + # No suffix. Would probably be cheaper to do this in + # the dict as well. + if existence("python"): + buildconfig._set_tool("python", "python") + return True + else: + # Has suffix, try suffix. We know the names in advance, + # so use a dictionary and iterate over it. Use enough names + # to safe updating this for another couple of years. + # + # Food for thought: If we only accept python 3.7 or higher, + # is checking pybabel + pybabel-3.[0-9]* too much and could + # be broken down to pybabel + pybabel-3.7 and later names? + version_dict = { + "3.7": "python3.7", + "3.8": "python3.8", + "3.9": "python3.9", + "4.0": "python4.0", + } + for value in version_dict.values(): + if existence(value): + buildconfig._set_tool("python", value) + return True + + class BrowserTool(Tool): name = "browser" diff --git a/testconfigure.py b/testconfigure.py index af7e85a..29d82a1 100644 --- a/testconfigure.py +++ b/testconfigure.py @@ -7,6 +7,7 @@ b.add_tool(YarnTool()) b.add_tool(BrowserTool()) b.add_tool(PyBabelTool()) b.add_tool(NodeJsTool()) +b.add_tool(PythonTool()) b.add_tool(PosixTool("find")) b.add_tool(PosixTool("xargs")) b.add_tool(PosixTool("msgmerge")) -- cgit v1.2.3