mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'fix/py_dep_check_v5.0' into 'release/v5.0'
fix(tools): catch more general errors in python dependency checker (v5.0) See merge request espressif/esp-idf!29165
This commit is contained in:
commit
21abe3eda6
@ -138,6 +138,8 @@
|
||||
|
||||
- "tools/split_paths_by_spaces.py"
|
||||
|
||||
- "tools/check_python_dependencies.py"
|
||||
|
||||
.patterns-windows: &patterns-windows
|
||||
- "tools/windows/**/*"
|
||||
|
||||
|
@ -1,8 +1,7 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2018-2023 Espressif Systems (Shanghai) CO LTD
|
||||
# SPDX-FileCopyrightText: 2018-2024 Espressif Systems (Shanghai) CO LTD
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import re
|
||||
@ -18,11 +17,11 @@ except ImportError:
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
from importlib.metadata import PackageNotFoundError, requires
|
||||
from importlib.metadata import requires
|
||||
from importlib.metadata import version as get_version
|
||||
except ImportError:
|
||||
# compatibility for python <=3.7
|
||||
from importlib_metadata import PackageNotFoundError, requires # type: ignore
|
||||
from importlib_metadata import requires # type: ignore
|
||||
from importlib_metadata import version as get_version # type: ignore
|
||||
|
||||
try:
|
||||
@ -92,8 +91,10 @@ if __name__ == '__main__':
|
||||
if not req.marker or req.marker.evaluate():
|
||||
try:
|
||||
version_check(req)
|
||||
except PackageNotFoundError as e:
|
||||
not_satisfied.append(f"'{e}' - was not found and is required by the application")
|
||||
except Exception as e:
|
||||
# Catch general exception, because get_version may return None (https://github.com/python/cpython/issues/91216)
|
||||
# log package name alongside the error message for easier debugging
|
||||
not_satisfied.append(f"Error while checking requirement '{req}'. Package was not found and is required by the application: {e}")
|
||||
new_req_list.remove(req)
|
||||
else:
|
||||
new_req_list.remove(req)
|
||||
@ -120,8 +121,10 @@ if __name__ == '__main__':
|
||||
# version is taken into account as well because packages can have different requirements for a given
|
||||
# Python package. The dependencies need to be checked for all of them because they can be different.
|
||||
new_req_list.extend(dependency_requirements - already_checked)
|
||||
except PackageNotFoundError as e:
|
||||
not_satisfied.append(f"'{e}' - was not found and is required by the application")
|
||||
except Exception as e:
|
||||
# Catch general exception, because get_version may return None (https://github.com/python/cpython/issues/91216)
|
||||
# log package name alongside the error message for easier debugging
|
||||
not_satisfied.append(f"Error while checking requirement '{req}'. Package was not found and is required by the application: {e}")
|
||||
|
||||
if len(not_satisfied) > 0:
|
||||
print('The following Python requirements are not satisfied:')
|
||||
|
@ -8,7 +8,6 @@ tools/ci/check_copyright_config.yaml
|
||||
tools/ci/get_all_test_results.py
|
||||
tools/gdb_panic_server.py
|
||||
tools/check_term.py
|
||||
tools/check_python_dependencies.py
|
||||
tools/python_version_checker.py
|
||||
tools/generate_debug_prefix_map.py
|
||||
tools/ci/checkout_project_ref.py
|
||||
|
Loading…
Reference in New Issue
Block a user