From b29067a188013a559da28d52c973ef626ecea0b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20D=C3=BCrr?= Date: Sat, 12 Aug 2017 14:53:25 +0200 Subject: [PATCH] Better handle Python dependencies * Add requirements.txt file with required Python packages * Read requirements.txt from CMakeLists.txt to check dependencies and alert the user if necessary. --- EKF/CMakeLists.txt | 10 +++++----- EKF/tests/pytest/requirements.txt | 6 ++++++ 2 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 EKF/tests/pytest/requirements.txt diff --git a/EKF/CMakeLists.txt b/EKF/CMakeLists.txt index ecde1b4097..eb595a265a 100644 --- a/EKF/CMakeLists.txt +++ b/EKF/CMakeLists.txt @@ -102,11 +102,11 @@ if(PythonTests) find_package(PythonInterp 3 REQUIRED) # Check for required python packages - set(ECL_TEST_PYTHON_PACKAGES - pytest - hypothesis - numpy - ) + file(READ "${CMAKE_SOURCE_DIR}/tests/pytest/requirements.txt" ECL_TEST_PYTHON_PACKAGES) + # Strip version information and split into cmake list + string(REGEX REPLACE "\n" ";" ECL_TEST_PYTHON_PACKAGES "${ECL_TEST_PYTHON_PACKAGES}") + string(REGEX REPLACE "-" "_" ECL_TEST_PYTHON_PACKAGES "${ECL_TEST_PYTHON_PACKAGES}") + string(REGEX REPLACE "[>=]+[^;]*" "" ECL_TEST_PYTHON_PACKAGES "${ECL_TEST_PYTHON_PACKAGES}") foreach(package ${ECL_TEST_PYTHON_PACKAGES}) execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import ${package}" RESULT_VARIABLE PytestAvailable OUTPUT_QUIET ERROR_QUIET) diff --git a/EKF/tests/pytest/requirements.txt b/EKF/tests/pytest/requirements.txt new file mode 100644 index 0000000000..9a952d9960 --- /dev/null +++ b/EKF/tests/pytest/requirements.txt @@ -0,0 +1,6 @@ +pytest>=3.2.1 +hypothesis>=3.17.0 +numpy>=1.12.1 +matplotlib>=2.0.0 +seaborn>=0.7.1 +pytest-benchmark>=3.1.1