From 363e04a412b5e78783ad3acc90a6a300072d2666 Mon Sep 17 00:00:00 2001 From: aannabe Date: Mon, 16 Dec 2024 12:41:21 -0500 Subject: [PATCH 1/3] nexus dependencies --- nexus/requirements.txt | 13 +++++++++++++ nexus/sphinx_docs/installation.rst | 14 +++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 nexus/requirements.txt diff --git a/nexus/requirements.txt b/nexus/requirements.txt new file mode 100644 index 0000000000..9f467e14e2 --- /dev/null +++ b/nexus/requirements.txt @@ -0,0 +1,13 @@ +# While Nexus does not have strict version requirements, this requirements file +# corresponds to versions that have been tested and are known to work. +# Last updated: 2024/12/16 + +numpy==2.2.0 +scipy==1.14.1 +matplotlib==3.10.0 +h5py==3.12.1 +pydot==3.0.3 +spglib==2.4.0 # Some functionality is broken in 2.5.0 +pycifrw==4.4.6 +cif2cell==2.1.0 +seekpath==2.1.0 diff --git a/nexus/sphinx_docs/installation.rst b/nexus/sphinx_docs/installation.rst index 9168e6e493..972865e5f2 100644 --- a/nexus/sphinx_docs/installation.rst +++ b/nexus/sphinx_docs/installation.rst @@ -12,7 +12,7 @@ working python environment exists. Setting environment variables ----------------------------- -To make your Python installation (must be Python 2.x as 3.x is not supported) +To make your Python installation (must be Python 3.x, 2.x is no longer supported) aware of Nexus, simply set the PYTHONPATH environment variable. For example, in bash this would look like: .. code-block:: rest @@ -76,6 +76,14 @@ listed with ``apt`` above on Debian systems), try ‘pip3‘: pip3 install --user cif2cell pip3 install --user seekpath +While Nexus does not have strict version requirements, most recent +dependency versions that have been tested and are known to work can be +found at ``qmcpack/nexus/requirements.txt``. +These specific library versions can be installed using the following command: +:: + + pip3 install --user -r requirements.txt + The purpose of each library is described below: **numpy** Needed throughout Nexus for array computation. Nexus will not @@ -192,7 +200,7 @@ in your ``PATH``. Installation is successful if all tests pass: Only portions of Nexus consistent with your Python installed Python libraries will be tested. -To run the tests with ``pytest`` (``pip install –user pytest``), enter +To run the tests with ``pytest`` (``pip install --user pytest``), enter the unit test directory and simply invoke the ``pytest`` command: :: @@ -268,7 +276,7 @@ Assessing Test Coverage (Developer Topic) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Code coverage can be assessed by using the ``coverage`` tool -(``pip install –user coverage``): +(``pip install --user coverage``): :: From 92e443b684d1f70877341154144dd64cfe369c16 Mon Sep 17 00:00:00 2001 From: aannabe Date: Mon, 16 Dec 2024 14:03:30 -0500 Subject: [PATCH 2/3] minimal requirements --- nexus/requirements_minimal.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 nexus/requirements_minimal.txt diff --git a/nexus/requirements_minimal.txt b/nexus/requirements_minimal.txt new file mode 100644 index 0000000000..ebfce6219a --- /dev/null +++ b/nexus/requirements_minimal.txt @@ -0,0 +1,5 @@ +# While Nexus does not have strict version requirements, this requirements file +# corresponds to versions that have been tested and are known to work. +# Last updated: 2024/12/16 + +numpy==2.2.0 From bdb237d76d021565ecdb33a24c0c4f44c946cb6c Mon Sep 17 00:00:00 2001 From: Paul Kent Date: Thu, 19 Dec 2024 13:16:42 -0500 Subject: [PATCH 3/3] Mention minimal reqs --- nexus/sphinx_docs/installation.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nexus/sphinx_docs/installation.rst b/nexus/sphinx_docs/installation.rst index 972865e5f2..bed8de373f 100644 --- a/nexus/sphinx_docs/installation.rst +++ b/nexus/sphinx_docs/installation.rst @@ -84,6 +84,9 @@ These specific library versions can be installed using the following command: pip3 install --user -r requirements.txt +``qmcpack/nexus/requirements_minimal.txt`` can be used similarly but only contains +a recently tested version of numpy. + The purpose of each library is described below: **numpy** Needed throughout Nexus for array computation. Nexus will not