This is a plugin for NOMAD to facilitate analysis of processed entry archives. The plugin provides schemas to create entries for analysis that can interact with other entries, using them as analysis inputs. Jupyter Analysis schemas generate analysis entries that are connected with an external programming interface, JupyterHub, which allows users to run custom code on the connected input entries.
To install the package as a dependency for your NOMAD Oasis, add it to your
pyproject.toml
as under project.dependencies
table:
[project]
dependencies = [
...
"nomad-analysis",
]
Or you can use pip
to install the package in your Python environment:
pip install nomad-analysis
The plugin is still under development. If you would like to contribute, follow these steps:
Clone the project and go into the cloned directory. Create and start a virtual environment (note this project uses Python 3.11):
git clone https://github.com/FAIRmat-NFDI/nomad-analysis.git
cd nomad-analysis
python3.11 -m venv .pyenv
source .pyenv/bin/activate
Install the nomad-analysis
package in editable mode (with -e
flag) along
with development dependencies (with '.[dev]
'):
pip install --upgrade pip
uv pip install -e '.[dev]'
Note:
uv
uses NOMAD's internal package registry viaindex-url
defined undertool.uv.index-url
inpyproject.toml
. If you want to usepip
directly withoutuv
wrapper, use the following:
pip install -e '.[dev]' --index-url https://gitlab.mpcdf.mpg.de/api/v4/projects/2187/packages/pypi/simple
You can run the unit testing using the pytest
package:
python -m pytest -sv
We recommend to install the coverage
and coveralls
packages for a more comprehensive
output of the testing:
pip install coverage coveralls
python -m coverage run -m pytest -sv
Read the NOMAD plugin documentation for all details on how to deploy the plugin on your local NOMAD installation. In summary:
-
Install the plugin repo in your local installation environment
pip install -e <path to the plugin repo>
-
From the following available entry points, include the ones you want (or all) in the nomad.yaml of your local installation:
plugins: include: - nomad_analysis.general:schema - nomad_analysis.jupyter:schema
Ruff auto-formatting is also a part of the GitHub workflow actions. Make sure that before you make a Pull Request to add your contributions to this repo, the following commands run in your local without any errors otherwise the workflow action will fail.
ruff check .
ruff format . --check
Alternatively, if you are using VSCode as your IDE, we added the settings configuration
file, .vscode/settings.json
, such that it performs ruff format
whenever you save
progress in a file.