nomad-catalysis 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. nomad_catalysis-1.0.0/.cruft.json +26 -0
  2. nomad_catalysis-1.0.0/.devcontainer/devcontainer.json +28 -0
  3. nomad_catalysis-1.0.0/.github/dependabot.yml +12 -0
  4. nomad_catalysis-1.0.0/.github/workflows/actions.yml +56 -0
  5. nomad_catalysis-1.0.0/.github/workflows/mkdocs-deploy.yml +24 -0
  6. nomad_catalysis-1.0.0/.github/workflows/python-publish.yml +70 -0
  7. nomad_catalysis-1.0.0/.gitignore +130 -0
  8. nomad_catalysis-1.0.0/.vscode/settings.json +21 -0
  9. nomad_catalysis-1.0.0/LICENSE +22 -0
  10. nomad_catalysis-1.0.0/MANIFEST.in +1 -0
  11. nomad_catalysis-1.0.0/PKG-INFO +143 -0
  12. nomad_catalysis-1.0.0/README.md +95 -0
  13. nomad_catalysis-1.0.0/docs/assets/.gitignore +1 -0
  14. nomad_catalysis-1.0.0/docs/assets/favicon.png +0 -0
  15. nomad_catalysis-1.0.0/docs/assets/nomad-plugin-logo.png +0 -0
  16. nomad_catalysis-1.0.0/docs/how_to/ScreenshotCreateBuiltInSchema.png +0 -0
  17. nomad_catalysis-1.0.0/docs/how_to/ScreenshotReactionMeasurementEntry.png +0 -0
  18. nomad_catalysis-1.0.0/docs/how_to/ScreenshotSampleEntry.png +0 -0
  19. nomad_catalysis-1.0.0/docs/how_to/contribute_to_this_plugin.md +8 -0
  20. nomad_catalysis-1.0.0/docs/how_to/install_this_plugin.md +13 -0
  21. nomad_catalysis-1.0.0/docs/how_to/use_this_plugin.md +208 -0
  22. nomad_catalysis-1.0.0/docs/index.md +55 -0
  23. nomad_catalysis-1.0.0/docs/reference/references.md +142 -0
  24. nomad_catalysis-1.0.0/docs/stylesheets/extra.css +69 -0
  25. nomad_catalysis-1.0.0/docs/theme/partials/header.html +86 -0
  26. nomad_catalysis-1.0.0/docs/tutorial/tutorial.md +4 -0
  27. nomad_catalysis-1.0.0/mkdocs.yml +60 -0
  28. nomad_catalysis-1.0.0/move_template_files.sh +4 -0
  29. nomad_catalysis-1.0.0/pyproject.toml +124 -0
  30. nomad_catalysis-1.0.0/requirements_docs.txt +4 -0
  31. nomad_catalysis-1.0.0/setup.cfg +4 -0
  32. nomad_catalysis-1.0.0/src/nomad_catalysis/__init__.py +0 -0
  33. nomad_catalysis-1.0.0/src/nomad_catalysis/apps/__init__.py +11 -0
  34. nomad_catalysis-1.0.0/src/nomad_catalysis/apps/py_het_cat_app.py +410 -0
  35. nomad_catalysis-1.0.0/src/nomad_catalysis/example_uploads/__init__.py +12 -0
  36. nomad_catalysis-1.0.0/src/nomad_catalysis/example_uploads/het_catalysis_example/README.md +13 -0
  37. nomad_catalysis-1.0.0/src/nomad_catalysis/example_uploads/het_catalysis_example/catalysis_sample.archive.json +37 -0
  38. nomad_catalysis-1.0.0/src/nomad_catalysis/example_uploads/het_catalysis_example/methanol_synthesis.archive.json +61 -0
  39. nomad_catalysis-1.0.0/src/nomad_catalysis/example_uploads/het_catalysis_example/methanol_synthesis_CuZnAl.xlsx +0 -0
  40. nomad_catalysis-1.0.0/src/nomad_catalysis/example_uploads/het_catalysis_example/nomad.yaml +6 -0
  41. nomad_catalysis-1.0.0/src/nomad_catalysis/schema_packages/__init__.py +17 -0
  42. nomad_catalysis-1.0.0/src/nomad_catalysis/schema_packages/catalysis.py +2598 -0
  43. nomad_catalysis-1.0.0/src/nomad_catalysis/schema_packages/chemical_data.py +497 -0
  44. nomad_catalysis-1.0.0/src/nomad_catalysis.egg-info/PKG-INFO +143 -0
  45. nomad_catalysis-1.0.0/src/nomad_catalysis.egg-info/SOURCES.txt +60 -0
  46. nomad_catalysis-1.0.0/src/nomad_catalysis.egg-info/dependency_links.txt +1 -0
  47. nomad_catalysis-1.0.0/src/nomad_catalysis.egg-info/entry_points.txt +4 -0
  48. nomad_catalysis-1.0.0/src/nomad_catalysis.egg-info/requires.txt +6 -0
  49. nomad_catalysis-1.0.0/src/nomad_catalysis.egg-info/top_level.txt +1 -0
  50. nomad_catalysis-1.0.0/tests/apps/test_app.py +5 -0
  51. nomad_catalysis-1.0.0/tests/conftest.py +0 -0
  52. nomad_catalysis-1.0.0/tests/data/.gitkeep +0 -0
  53. nomad_catalysis-1.0.0/tests/data/2022-11-21_10.56.35_S36891_B. Alkan_.h5 +0 -0
  54. nomad_catalysis-1.0.0/tests/data/MoO3_C2_performance.xlsx +0 -0
  55. nomad_catalysis-1.0.0/tests/data/Reactor1_xs_vs_TOF.xlsx +0 -0
  56. nomad_catalysis-1.0.0/tests/data/hte_COhydrogenation_0_measurement.archive.json +348 -0
  57. nomad_catalysis-1.0.0/tests/data/test_reaction.archive.yaml +37 -0
  58. nomad_catalysis-1.0.0/tests/data/test_reaction_COhydrogenation.archive.yaml +10 -0
  59. nomad_catalysis-1.0.0/tests/data/test_reaction_clean_data.archive.yaml +12 -0
  60. nomad_catalysis-1.0.0/tests/data/test_reaction_haber.archive.yaml +7 -0
  61. nomad_catalysis-1.0.0/tests/data/test_sample.archive.yaml +17 -0
  62. nomad_catalysis-1.0.0/tests/schema_packages/test_schema.py +38 -0
@@ -0,0 +1,26 @@
1
+ {
2
+ "template": "https://github.com/FAIRmat-NFDI/cookiecutter-nomad-plugin",
3
+ "commit": "c40010ce548126347c5fd7b36c2a5031bcd0b34b",
4
+ "checkout": null,
5
+ "context": {
6
+ "cookiecutter": {
7
+ "full_name": "Julia Schumann",
8
+ "email": "jschumann@physik.hu-berlin.de",
9
+ "github_username": "schumannj",
10
+ "plugin_name": "catalysis",
11
+ "module_name": "catalysis",
12
+ "short_description": "a NOMAD plugin for heterogeneous catalysis data",
13
+ "version": "0.1.0",
14
+ "license": "MIT",
15
+ "include_schema_package": true,
16
+ "include_normalizer": false,
17
+ "include_parser": false,
18
+ "include_app": true,
19
+ "_copy_without_render": [
20
+ "*.html"
21
+ ],
22
+ "_template": "https://github.com/FAIRmat-NFDI/cookiecutter-nomad-plugin"
23
+ }
24
+ },
25
+ "directory": null
26
+ }
@@ -0,0 +1,28 @@
1
+ // For format details, see https://aka.ms/devcontainer.json. For config options, see the
2
+ // README at: https://github.com/devcontainers/templates/tree/main/src/python
3
+ {
4
+ "name": "Python 3",
5
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6
+ "image": "mcr.microsoft.com/devcontainers/python:1-3.9-bookworm",
7
+ "features": {
8
+ "ghcr.io/devcontainers-contrib/features/ruff:1": {}
9
+ },
10
+ // Features to add to the dev container. More info: https://containers.dev/features.
11
+ // "features": {},
12
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
13
+ // "forwardPorts": [],
14
+ // Use 'postCreateCommand' to run commands after the container is created.
15
+ "postCreateCommand": "pipx install cruft",
16
+ // Configure tool-specific properties.
17
+ "customizations": {
18
+ // Configure properties specific to VS Code.
19
+ "vscode": {
20
+ // Add the IDs of extensions you want installed when the container is created.
21
+ "extensions": [
22
+ "charliermarsh.ruff"
23
+ ]
24
+ }
25
+ }
26
+ // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
27
+ // "remoteUser": "root"
28
+ }
@@ -0,0 +1,12 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for more information:
4
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+ # https://containers.dev/guide/dependabot
6
+
7
+ version: 2
8
+ updates:
9
+ - package-ecosystem: "devcontainers"
10
+ directory: "/"
11
+ schedule:
12
+ interval: weekly
@@ -0,0 +1,56 @@
1
+ name: install-and-test-workflow
2
+ on: [push]
3
+ jobs:
4
+ install-and-test:
5
+ runs-on: ubuntu-latest
6
+ steps:
7
+ - uses: actions/checkout@v4
8
+ - name: Set up Python 3.9
9
+ uses: actions/setup-python@v5
10
+ with:
11
+ python-version: 3.9
12
+ - name: Install dependencies
13
+ run: |
14
+ pip install --upgrade pip
15
+ pip install '.[dev]' --index-url https://gitlab.mpcdf.mpg.de/api/v4/projects/2187/packages/pypi/simple
16
+ pip install coverage coveralls
17
+ - name: Test with pytest
18
+ run: |
19
+ python -m coverage run -m pytest -sv
20
+ - name: Submit to coveralls
21
+ continue-on-error: true
22
+ env:
23
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
24
+ run: |
25
+ coveralls --service=github
26
+ build-and-install:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+ - name: Set up Python 3.9
31
+ uses: actions/setup-python@v5
32
+ with:
33
+ python-version: 3.9
34
+ - name: Build the package
35
+ run: |
36
+ pip install --upgrade pip
37
+ pip install build
38
+ python -m build --sdist
39
+ - name: Install the package
40
+ run: |
41
+ pip install dist/*.tar.gz --index-url https://gitlab.mpcdf.mpg.de/api/v4/projects/2187/packages/pypi/simple
42
+ ruff-linting:
43
+ runs-on: ubuntu-latest
44
+ steps:
45
+ - uses: actions/checkout@v4
46
+ - uses: chartboost/ruff-action@v1
47
+ with:
48
+ args: "check ."
49
+ # to enable auto-formatting check, uncomment the following lines below
50
+ # ruff-formatting:
51
+ # runs-on: ubuntu-latest
52
+ # steps:
53
+ # - uses: actions/checkout@v4
54
+ # - uses: chartboost/ruff-action@v1
55
+ # with:
56
+ # args: "format . --check"
@@ -0,0 +1,24 @@
1
+ name: Deploy MkDocs Site
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main # Triggers deployment on push to the main branch
7
+
8
+ permissions:
9
+ contents: write
10
+
11
+ jobs:
12
+ deploy:
13
+ runs-on: ubuntu-latest
14
+
15
+ steps:
16
+ - name: Checkout Repository
17
+ uses: actions/checkout@v4
18
+
19
+ - name: Deploy docs
20
+ uses: mhausenblas/mkdocs-deploy-gh-pages@master
21
+ env:
22
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23
+ CONFIG_FILE: mkdocs.yml
24
+ REQUIREMENTS: requirements_docs.txt
@@ -0,0 +1,70 @@
1
+ # This workflow will upload a Python Package to PyPI when a release is created
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
3
+
4
+ # This workflow uses actions that are not certified by GitHub.
5
+ # They are provided by a third-party and are governed by
6
+ # separate terms of service, privacy policy, and support
7
+ # documentation.
8
+
9
+ name: Upload Python Package
10
+
11
+ on:
12
+ release:
13
+ types: [published]
14
+
15
+ permissions:
16
+ contents: read
17
+
18
+ jobs:
19
+ release-build:
20
+ runs-on: ubuntu-latest
21
+
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+
25
+ - uses: actions/setup-python@v5
26
+ with:
27
+ python-version: "3.x"
28
+
29
+ - name: Build release distributions
30
+ run: |
31
+ python -m pip install --upgrade pip
32
+ pip install build
33
+ python -m build
34
+
35
+ - name: Upload distributions
36
+ uses: actions/upload-artifact@v4
37
+ with:
38
+ name: release-dists
39
+ path: dist/
40
+
41
+ pypi-publish:
42
+ runs-on: ubuntu-latest
43
+ needs:
44
+ - release-build
45
+ permissions:
46
+ # IMPORTANT: this permission is mandatory for trusted publishing
47
+ id-token: write
48
+
49
+ # Dedicated environments with protections for publishing are strongly recommended.
50
+ # For more information, see: https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#deployment-protection-rules
51
+ environment:
52
+ name: pypi
53
+ # OPTIONAL: uncomment and update to include your PyPI project URL in the deployment status:
54
+ # url: https://pypi.org/p/YOURPROJECT
55
+ #
56
+ # ALTERNATIVE: if your GitHub Release name is the PyPI project version string
57
+ # ALTERNATIVE: exactly, uncomment the following line instead:
58
+ # url: https://pypi.org/project/YOURPROJECT/${{ github.event.release.name }}
59
+
60
+ steps:
61
+ - name: Retrieve release distributions
62
+ uses: actions/download-artifact@v4
63
+ with:
64
+ name: release-dists
65
+ path: dist/
66
+
67
+ - name: Publish release distributions to PyPI
68
+ uses: pypa/gh-action-pypi-publish@release/v1
69
+ with:
70
+ packages-dir: dist/
@@ -0,0 +1,130 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default/
82
+ ipython_config.py
83
+
84
+ # pyenv
85
+ .python-version
86
+
87
+ # pipenv
88
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
90
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
91
+ # install all needed dependencies.
92
+ #Pipfile.lock
93
+
94
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95
+ __pypackages__/
96
+
97
+ # Celery stuff
98
+ celerybeat-schedule
99
+ celerybeat.pid
100
+
101
+ # SageMath parsed files
102
+ *.sage.py
103
+
104
+ # Environments
105
+ .env
106
+ .venv
107
+ env/
108
+ venv/
109
+ ENV/
110
+ env.bak/
111
+ venv.bak/
112
+ .pyenv
113
+
114
+ # Spyder project settings
115
+ .spyderproject
116
+ .spyproject
117
+
118
+ # Rope project settings
119
+ .ropeproject
120
+
121
+ # mkdocs documentation
122
+ /site
123
+
124
+ # mypy
125
+ .mypy_cache/
126
+ .dmypy.json
127
+ dmypy.json
128
+
129
+ # Pyre type checker
130
+ .pyre/
@@ -0,0 +1,21 @@
1
+ {
2
+ "editor.rulers": [
3
+ 90
4
+ ],
5
+ "editor.renderWhitespace": "all",
6
+ "editor.tabSize": 4,
7
+ "files.trimTrailingWhitespace": true,
8
+ "[python]": {
9
+ "editor.formatOnSave": true,
10
+ "editor.codeActionsOnSave": {
11
+ "source.fixAll": "explicit",
12
+ "source.organizeImports": "explicit"
13
+ },
14
+ "editor.defaultFormatter": "charliermarsh.ruff"
15
+ },
16
+ "python.testing.pytestArgs": [
17
+ "tests"
18
+ ],
19
+ "python.testing.unittestEnabled": false,
20
+ "python.testing.pytestEnabled": true
21
+ }
@@ -0,0 +1,22 @@
1
+
2
+ The MIT License (MIT)
3
+
4
+ Copyright (c) 2024 Julia Schumann
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in
14
+ all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ THE SOFTWARE.
@@ -0,0 +1 @@
1
+ recursive-include * nomad_plugin.yaml
@@ -0,0 +1,143 @@
1
+ Metadata-Version: 2.2
2
+ Name: nomad-catalysis
3
+ Version: 1.0.0
4
+ Summary: A NOMAD plugin for heterogeneous catalysis data.
5
+ Author: Julia Schumann, Hampus Näsström, Michael Götte
6
+ Author-email: fairmat@physik.hu-berlin.de
7
+ Maintainer-email: Julia Schumann <jschumann@physik.hu-berlin.de>, FAIRmat <fairmat@physik.hu-berlin.de>
8
+ License:
9
+ The MIT License (MIT)
10
+
11
+ Copyright (c) 2024 Julia Schumann
12
+
13
+ Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ of this software and associated documentation files (the "Software"), to deal
15
+ in the Software without restriction, including without limitation the rights
16
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ copies of the Software, and to permit persons to whom the Software is
18
+ furnished to do so, subject to the following conditions:
19
+
20
+ The above copyright notice and this permission notice shall be included in
21
+ all copies or substantial portions of the Software.
22
+
23
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
29
+ THE SOFTWARE.
30
+
31
+ Project-URL: Repository, https://github.com/FAIRmat-NFDI/nomad-catalysis-plugin
32
+ Classifier: Intended Audience :: Developers
33
+ Classifier: Operating System :: OS Independent
34
+ Classifier: Programming Language :: Python
35
+ Classifier: Programming Language :: Python :: 3.9
36
+ Classifier: Programming Language :: Python :: 3.10
37
+ Classifier: Programming Language :: Python :: 3.11
38
+ Classifier: Programming Language :: Python :: 3.12
39
+ Classifier: License :: OSI Approved :: MIT License
40
+ Requires-Python: >=3.9
41
+ Description-Content-Type: text/markdown
42
+ License-File: LICENSE
43
+ Requires-Dist: nomad-lab>=1.3.11
44
+ Provides-Extra: dev
45
+ Requires-Dist: ruff; extra == "dev"
46
+ Requires-Dist: pytest; extra == "dev"
47
+ Requires-Dist: structlog; extra == "dev"
48
+
49
+ ![nomad plugin logo](docs/assets/nomad-plugin-logo.png)
50
+ # nomad-catalysis
51
+
52
+ This is a NOMAD plugin for heterogeneous catalysis data. You can find the full documentation [here](https://fairmat-nfdi.github.io/nomad-catalysis-plugin/). For some default information about NOMAD plugins see below.
53
+
54
+
55
+ ----
56
+
57
+ This `nomad`_ plugin was generated with `Cookiecutter`_ along with `@nomad`_'s `cookiecutter-nomad-plugin`_ template.
58
+
59
+
60
+ ### Install
61
+
62
+ You should create a virtual environment. You will need the `nomad-lab` package (and `pytest`).
63
+ We recommend using Python 3.11.
64
+
65
+ ```sh
66
+ python3 -m venv .pyenv
67
+ source .pyenv/bin/activate
68
+ pip install --upgrade pip
69
+ pip install -e '.[dev]' --index-url https://gitlab.mpcdf.mpg.de/api/v4/projects/2187/packages/pypi/simple
70
+ ```
71
+
72
+ **Note!**
73
+ Until we have an official pypi NOMAD release with the plugins functionality. Make
74
+ sure to include NOMAD's internal package registry (e.g. via `--index-url`).
75
+
76
+ ### Testing
77
+
78
+ You can run automated tests with `pytest`:
79
+
80
+ ```sh
81
+ pytest -svx tests
82
+ ```
83
+
84
+ ### Run linting
85
+
86
+ ```sh
87
+ ruff check .
88
+ ```
89
+
90
+ ### Run auto-formatting
91
+
92
+ This is entirely optional. To add this as a check in github actions pipeline, uncomment the `ruff-formatting` step in `./github/workflows/actions.yaml`.
93
+
94
+ ```sh
95
+ ruff format .
96
+ ```
97
+
98
+ ### Developing a NOMAD plugin
99
+
100
+ Follow the [guide](https://nomad-lab.eu/prod/v1/staging/docs/howto/plugins/plugins.html) on how to develop NOMAD plugins.
101
+
102
+ ### Build the python package
103
+
104
+ The `pyproject.toml` file contains everything that is necessary to turn the project
105
+ into a pip installable python package. Run the python build tool to create a package distribution:
106
+
107
+ ```
108
+ pip install build
109
+ python -m build --sdist
110
+ ```
111
+
112
+ You can install the package with pip:
113
+
114
+ ```
115
+ pip install dist/nomad-catalysis-0.1.0
116
+ ```
117
+
118
+ Read more about python packages, `pyproject.toml`, and how to upload packages to PyPI
119
+ on the [PyPI documentation](https://packaging.python.org/en/latest/tutorials/packaging-projects/).
120
+
121
+ ### Documentation on Github pages
122
+
123
+ To deploy documentation on Github pages, make sure to [enable GitHub pages via the repo settings](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-from-a-branch).
124
+
125
+ To view the documentation locally, install the documentation related packages using:
126
+
127
+ ```sh
128
+ pip install -r requirements_docs.txt
129
+ ```
130
+
131
+ Run the documentation server:
132
+ ```sh
133
+ mkdocs serve
134
+ ```
135
+
136
+ ### Template update
137
+
138
+ We use cruft to update the project based on template changes. A `cruft-update.yml` is included in Github workflows to automatically check for updates and create pull requests to apply updates. Follow the [instructions](https://github.blog/changelog/2022-05-03-github-actions-prevent-github-actions-from-creating-and-approving-pull-requests/) on how to enable Github Actions to create pull requests.
139
+
140
+ To run the check for updates locally, follow the instructions on [`cruft` website](https://cruft.github.io/cruft/#updating-a-project).
141
+
142
+ ### License
143
+ Distributed under the terms of the `MIT`_ license, "nomad-catalysis" is free and open source software.
@@ -0,0 +1,95 @@
1
+ ![nomad plugin logo](docs/assets/nomad-plugin-logo.png)
2
+ # nomad-catalysis
3
+
4
+ This is a NOMAD plugin for heterogeneous catalysis data. You can find the full documentation [here](https://fairmat-nfdi.github.io/nomad-catalysis-plugin/). For some default information about NOMAD plugins see below.
5
+
6
+
7
+ ----
8
+
9
+ This `nomad`_ plugin was generated with `Cookiecutter`_ along with `@nomad`_'s `cookiecutter-nomad-plugin`_ template.
10
+
11
+
12
+ ### Install
13
+
14
+ You should create a virtual environment. You will need the `nomad-lab` package (and `pytest`).
15
+ We recommend using Python 3.11.
16
+
17
+ ```sh
18
+ python3 -m venv .pyenv
19
+ source .pyenv/bin/activate
20
+ pip install --upgrade pip
21
+ pip install -e '.[dev]' --index-url https://gitlab.mpcdf.mpg.de/api/v4/projects/2187/packages/pypi/simple
22
+ ```
23
+
24
+ **Note!**
25
+ Until we have an official pypi NOMAD release with the plugins functionality. Make
26
+ sure to include NOMAD's internal package registry (e.g. via `--index-url`).
27
+
28
+ ### Testing
29
+
30
+ You can run automated tests with `pytest`:
31
+
32
+ ```sh
33
+ pytest -svx tests
34
+ ```
35
+
36
+ ### Run linting
37
+
38
+ ```sh
39
+ ruff check .
40
+ ```
41
+
42
+ ### Run auto-formatting
43
+
44
+ This is entirely optional. To add this as a check in github actions pipeline, uncomment the `ruff-formatting` step in `./github/workflows/actions.yaml`.
45
+
46
+ ```sh
47
+ ruff format .
48
+ ```
49
+
50
+ ### Developing a NOMAD plugin
51
+
52
+ Follow the [guide](https://nomad-lab.eu/prod/v1/staging/docs/howto/plugins/plugins.html) on how to develop NOMAD plugins.
53
+
54
+ ### Build the python package
55
+
56
+ The `pyproject.toml` file contains everything that is necessary to turn the project
57
+ into a pip installable python package. Run the python build tool to create a package distribution:
58
+
59
+ ```
60
+ pip install build
61
+ python -m build --sdist
62
+ ```
63
+
64
+ You can install the package with pip:
65
+
66
+ ```
67
+ pip install dist/nomad-catalysis-0.1.0
68
+ ```
69
+
70
+ Read more about python packages, `pyproject.toml`, and how to upload packages to PyPI
71
+ on the [PyPI documentation](https://packaging.python.org/en/latest/tutorials/packaging-projects/).
72
+
73
+ ### Documentation on Github pages
74
+
75
+ To deploy documentation on Github pages, make sure to [enable GitHub pages via the repo settings](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-from-a-branch).
76
+
77
+ To view the documentation locally, install the documentation related packages using:
78
+
79
+ ```sh
80
+ pip install -r requirements_docs.txt
81
+ ```
82
+
83
+ Run the documentation server:
84
+ ```sh
85
+ mkdocs serve
86
+ ```
87
+
88
+ ### Template update
89
+
90
+ We use cruft to update the project based on template changes. A `cruft-update.yml` is included in Github workflows to automatically check for updates and create pull requests to apply updates. Follow the [instructions](https://github.blog/changelog/2022-05-03-github-actions-prevent-github-actions-from-creating-and-approving-pull-requests/) on how to enable Github Actions to create pull requests.
91
+
92
+ To run the check for updates locally, follow the instructions on [`cruft` website](https://cruft.github.io/cruft/#updating-a-project).
93
+
94
+ ### License
95
+ Distributed under the terms of the `MIT`_ license, "nomad-catalysis" is free and open source software.
@@ -0,0 +1 @@
1
+ nomad-oasis*.zip
@@ -0,0 +1,8 @@
1
+ # Contribute to This Plugin
2
+
3
+ Contributions to the development of the catalysis plugin are highly welcome. If you have example datasets you want to publish or general feedback and suggestions to improve the plugin, please get in touch by opening an issue in the plugin repository or sending and email.
4
+
5
+ # Contribute to the documentation
6
+
7
+ If you want to contribute to the documentation, please create an issue in the repo or get in touch with the authors.
8
+
@@ -0,0 +1,13 @@
1
+ # Install This Plugin
2
+
3
+
4
+ To include this plugin as part of your local or institutional NOMAD Oasis the following
5
+ line needs to be added to the `pyproject.toml` file of the Oasis repo:
6
+ ```git+https://github.com/FAIRmat-NFDI/nomad-catalysis-plugin.git@main```
7
+
8
+ For a detailed guide on how to setup and install a new Oasis, see the [Tutorial 13 part 4](https://github.com/FAIRmat-NFDI/AreaA-Examples/tree/main/tutorial13/part4)
9
+
10
+
11
+ ## Add This Plugin to Your NOMAD installation
12
+
13
+ Read the [NOMAD plugin documentation](https://nomad-lab.eu/prod/v1/staging/docs/plugins/plugins.html#add-a-plugin-to-your-nomad) for all details on how to deploy the plugin on your NOMAD instance.