From b290a8254122f53d6477b7ba24366d81cfc5e99c Mon Sep 17 00:00:00 2001 From: Charles Brunet Date: Thu, 8 Feb 2024 10:15:37 -0500 Subject: Fix KeyError in Python module 0e7fb07 introduced a subtile bug in the Python module. If a python version is found, but is missing a required module, it is added to the list of python installations, but the `run_bytecompile` attribute for that version was not initialized. Therefore, if any other python version added something to install, it was raising a KeyError when trying to read the `run_bytecompile` attribute for the python version with missing module. --- mesonbuild/modules/python.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mesonbuild/modules/python.py') diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py index 7a2cd2837..59b5050c0 100644 --- a/mesonbuild/modules/python.py +++ b/mesonbuild/modules/python.py @@ -74,6 +74,7 @@ class PythonExternalProgram(BasicPythonExternalProgram): if ret: self.platlib = self._get_path(state, 'platlib') self.purelib = self._get_path(state, 'purelib') + self.run_bytecompile.setdefault(self.info['version'], False) return ret def _get_path(self, state: T.Optional['ModuleState'], key: str) -> str: @@ -544,7 +545,6 @@ class PythonModule(ExtensionModule): assert isinstance(python, PythonExternalProgram), 'for mypy' python = copy.copy(python) python.pure = kwargs['pure'] - python.run_bytecompile.setdefault(python.info['version'], False) return python raise mesonlib.MesonBugException('Unreachable code was reached (PythonModule.find_installation).') -- cgit v1.2.3