nomad-material-processing 0.0.10__tar.gz → 0.1.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 (68) hide show
  1. nomad_material_processing-0.1.0/.github/workflows/python-test.yml +55 -0
  2. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/PKG-INFO +32 -9
  3. nomad_material_processing-0.1.0/README.md +45 -0
  4. nomad_material_processing-0.1.0/pyproject.toml +135 -0
  5. nomad_material_processing-0.1.0/src/nomad_material_processing/__init__.py +32 -0
  6. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/src/nomad_material_processing/combinatorial.py +221 -173
  7. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/src/nomad_material_processing/crystal_growth.py +19 -17
  8. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/src/nomad_material_processing/epitaxy.py +35 -33
  9. nomad_material_processing-0.0.10/src/nomad_material_processing/__init__.py → nomad_material_processing-0.1.0/src/nomad_material_processing/general.py +448 -59
  10. nomad_material_processing-0.1.0/src/nomad_material_processing/solution/__init__.py +14 -0
  11. nomad_material_processing-0.1.0/src/nomad_material_processing/solution/general.py +942 -0
  12. nomad_material_processing-0.1.0/src/nomad_material_processing/solution/utils.py +133 -0
  13. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/src/nomad_material_processing/utils.py +5 -3
  14. nomad_material_processing-0.1.0/src/nomad_material_processing/vapor_deposition/__init__.py +32 -0
  15. nomad_material_processing-0.1.0/src/nomad_material_processing/vapor_deposition/cvd/__init__.py +14 -0
  16. nomad_material_processing-0.0.10/src/nomad_material_processing/vapor_deposition/cvd/__init__.py → nomad_material_processing-0.1.0/src/nomad_material_processing/vapor_deposition/cvd/general.py +84 -74
  17. nomad_material_processing-0.0.10/src/nomad_material_processing/vapor_deposition/__init__.py → nomad_material_processing-0.1.0/src/nomad_material_processing/vapor_deposition/general.py +223 -14
  18. nomad_material_processing-0.1.0/src/nomad_material_processing/vapor_deposition/pvd/__init__.py +88 -0
  19. nomad_material_processing-0.0.10/src/nomad_material_processing/vapor_deposition/pvd/__init__.py → nomad_material_processing-0.1.0/src/nomad_material_processing/vapor_deposition/pvd/general.py +28 -16
  20. nomad_material_processing-0.1.0/src/nomad_material_processing/vapor_deposition/pvd/mbe.py +76 -0
  21. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/src/nomad_material_processing/vapor_deposition/pvd/pld.py +18 -11
  22. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/src/nomad_material_processing/vapor_deposition/pvd/sputtering.py +15 -8
  23. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/src/nomad_material_processing/vapor_deposition/pvd/thermal.py +18 -12
  24. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/src/nomad_material_processing.egg-info/PKG-INFO +32 -9
  25. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/src/nomad_material_processing.egg-info/SOURCES.txt +15 -7
  26. nomad_material_processing-0.1.0/src/nomad_material_processing.egg-info/entry_points.txt +10 -0
  27. nomad_material_processing-0.1.0/src/nomad_material_processing.egg-info/requires.txt +6 -0
  28. nomad_material_processing-0.1.0/tests/conftest.py +11 -0
  29. nomad_material_processing-0.1.0/tests/data/test_physical_vapor_deposition.archive.yaml +2 -0
  30. nomad_material_processing-0.1.0/tests/data/test_pulsed_laser_deposition.archive.yaml +2 -0
  31. nomad_material_processing-0.1.0/tests/data/test_solution.archive.yaml +2 -0
  32. nomad_material_processing-0.1.0/tests/data/test_solution_component.archive.yaml +2 -0
  33. nomad_material_processing-0.1.0/tests/data/test_sputter_deposition.archive.yaml +2 -0
  34. nomad_material_processing-0.1.0/tests/data/test_thermal_evaporation.archive.yaml +2 -0
  35. nomad_material_processing-0.1.0/tests/solution/test_solution_schema.py +173 -0
  36. nomad_material_processing-0.1.0/tests/test_schema.py +15 -0
  37. nomad_material_processing-0.0.10/README.md +0 -26
  38. nomad_material_processing-0.0.10/nomad.yaml +0 -9
  39. nomad_material_processing-0.0.10/pyproject.toml +0 -88
  40. nomad_material_processing-0.0.10/src/nomad_material_processing/nomad_plugin.yaml +0 -3
  41. nomad_material_processing-0.0.10/src/nomad_material_processing/vapor_deposition/cvd/nomad_plugin.yaml +0 -3
  42. nomad_material_processing-0.0.10/src/nomad_material_processing/vapor_deposition/nomad_plugin.yaml +0 -3
  43. nomad_material_processing-0.0.10/src/nomad_material_processing/vapor_deposition/pvd/nomad_plugin.yaml +0 -3
  44. nomad_material_processing-0.0.10/src/nomad_material_processing.egg-info/requires.txt +0 -5
  45. nomad_material_processing-0.0.10/tests/data/test_activity_step.archive.yaml +0 -2
  46. nomad_material_processing-0.0.10/tests/data/test_physical_vapor_deposition.archive.yaml +0 -2
  47. nomad_material_processing-0.0.10/tests/data/test_pulsed_laser_deposition.archive.yaml +0 -2
  48. nomad_material_processing-0.0.10/tests/data/test_sputter_deposition.archive.yaml +0 -2
  49. nomad_material_processing-0.0.10/tests/data/test_thermal_evaporation.archive.yaml +0 -2
  50. nomad_material_processing-0.0.10/tests/test_schema.py +0 -10
  51. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/.github/workflows/python-publish.yml +0 -0
  52. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/.gitignore +0 -0
  53. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/.vscode/settings.json +0 -0
  54. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/LICENSE +0 -0
  55. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/setup.cfg +0 -0
  56. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/setup.py +0 -0
  57. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/src/nomad_material_processing.egg-info/dependency_links.txt +0 -0
  58. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/src/nomad_material_processing.egg-info/top_level.txt +0 -0
  59. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/tests/data/test_crystal_growth.archive.yaml +0 -0
  60. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/tests/data/test_czochralski_process.archive.yaml +0 -0
  61. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/tests/data/test_epitaxy.archive.yaml +0 -0
  62. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/tests/data/test_metal_organic_vapor_phase_epitaxy.archive.yaml +0 -0
  63. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/tests/data/test_molecular_beam_epitaxy.archive.yaml +0 -0
  64. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/tests/data/test_sample_deposition.archive.yaml +0 -0
  65. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/tests/data/test_substrate.archive.yaml +0 -0
  66. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/tests/data/test_thin_film.archive.yaml +0 -0
  67. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/tests/data/test_thin_film_stack.archive.yaml +0 -0
  68. {nomad_material_processing-0.0.10 → nomad_material_processing-0.1.0}/tests/data/test_vapor_phase_epitaxy.archive.yaml +0 -0
@@ -0,0 +1,55 @@
1
+ # This workflow will install Python dependencies, run tests, and lint with multiple version of Python
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
3
+
4
+ name: Python test
5
+
6
+ on:
7
+ push:
8
+ branches: [ "main" ]
9
+ pull_request:
10
+ branches: [ "main" ]
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ env:
16
+ UV_SYSTEM_PYTHON: true
17
+
18
+ jobs:
19
+ test:
20
+ runs-on: ubuntu-latest
21
+ strategy:
22
+ fail-fast: false
23
+ matrix:
24
+ python_version: ["3.9", "3.10", "3.11"]
25
+ steps:
26
+ - uses: actions/checkout@v4
27
+ - name: Set up Python ${{matrix.python_version}}
28
+ uses: actions/setup-python@v5
29
+ with:
30
+ python-version: ${{matrix.python_version}}
31
+ - name: Install uv
32
+ run: |
33
+ curl -LsSf https://astral.sh/uv/install.sh | sh
34
+ - name: Install dependencies
35
+ run: |
36
+ uv pip install -e '.[dev]'
37
+ - name: Test with pytest
38
+ run: |
39
+ pytest
40
+
41
+ ruff-linting:
42
+ runs-on: ubuntu-latest
43
+ steps:
44
+ - uses: actions/checkout@v4
45
+ - uses: chartboost/ruff-action@v1
46
+ with:
47
+ args: "check ."
48
+
49
+ ruff-formatting:
50
+ runs-on: ubuntu-latest
51
+ steps:
52
+ - uses: actions/checkout@v4
53
+ - uses: chartboost/ruff-action@v1
54
+ with:
55
+ args: "format . --check"
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nomad-material-processing
3
- Version: 0.0.10
3
+ Version: 0.1.0
4
4
  Summary: A plugin for NOMAD containing base sections for material processing.
5
- Author-email: Hampus Näsström <hampus.naesstroem@physik.hu-berlin.de>, Andrea Albino <andrea.albino@physik.hu-berlin.de>, Sebastian Brückner <sebastian.brueckner@ikz-berlin.de>
5
+ Author-email: Sarthak Kapoor <sarthak.kapoor@physik.hu-berlin.de>, Hampus Näsström <hampus.naesstroem@physik.hu-berlin.de>, Andrea Albino <andrea.albino@physik.hu-berlin.de>, Sebastian Brückner <sebastian.brueckner@ikz-berlin.de>
6
6
  License: Apache License
7
7
  Version 2.0, January 2004
8
8
  http://www.apache.org/licenses/
@@ -207,17 +207,21 @@ License: Apache License
207
207
 
208
208
  Project-URL: Homepage, https://github.com/FAIRmat-NFDI/nomad-material-processing
209
209
  Project-URL: Bug Tracker, https://github.com/FAIRmat-NFDI/nomad-material-processing/issues
210
- Classifier: Programming Language :: Python :: 3
211
- Classifier: Programming Language :: Python :: 3 :: Only
210
+ Classifier: Intended Audience :: Developers
211
+ Classifier: Operating System :: OS Independent
212
+ Classifier: Programming Language :: Python
212
213
  Classifier: Programming Language :: Python :: 3.9
213
- Classifier: License :: OSI Approved :: Apache Software License
214
- Requires-Python: >=3.9
214
+ Classifier: Programming Language :: Python :: 3.10
215
+ Classifier: Programming Language :: Python :: 3.11
216
+ Classifier: Programming Language :: Python :: 3.12
217
+ Classifier: License :: OSI Approved :: MIT License
215
218
  Description-Content-Type: text/markdown
216
219
  License-File: LICENSE
217
- Requires-Dist: nomad-lab>=1.2.1
220
+ Requires-Dist: nomad-lab>=1.3.4dev
218
221
  Provides-Extra: dev
219
222
  Requires-Dist: pytest; extra == "dev"
220
- Requires-Dist: structlog>=22.3.0; extra == "dev"
223
+ Requires-Dist: ruff; extra == "dev"
224
+ Requires-Dist: structlog; extra == "dev"
221
225
 
222
226
  ![](https://github.com/FAIRmat-NFDI/nomad-material-processing/actions/workflows/publish.yml/badge.svg)
223
227
  ![](https://img.shields.io/pypi/pyversions/nomad-material-processing)
@@ -234,6 +238,25 @@ material processing.
234
238
  pip install nomad-material-processing
235
239
  ```
236
240
 
241
+ ### Setting up your OASIS
242
+ 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.
243
+
244
+ You don't need to modify the ```nomad.yaml``` configuration file of your NOMAD instance, beacuse the package is pip installed and all the available modules (entry points) are loaded.
245
+ To include, instead, only some of the entry points, you need to specify them in the ```include``` section of the ```nomad.yaml```. In the following lines, a list of all the available entry points:
246
+
247
+ ```yaml
248
+ plugins:
249
+ include:
250
+ - "nomad_material_processing:schema"
251
+ - "nomad_material_processing.solution:schema"
252
+ - "nomad_material_processing.vapor_deposition.cvd:schema"
253
+ - "nomad_material_processing.vapor_deposition.pvd:schema"
254
+ - "nomad_material_processing.vapor_deposition.pvd:mbe_schema"
255
+ - "nomad_material_processing.vapor_deposition.pvd:pld_schema"
256
+ - "nomad_material_processing.vapor_deposition.pvd:sputtering_schema"
257
+ - "nomad_material_processing.vapor_deposition.pvd:thermal_schema"
258
+ ```
259
+
237
260
  ### Development
238
261
  This code is currently under development and for installing and contributing you should clone the repository:
239
262
  ```sh
@@ -243,5 +266,5 @@ cd nomad-material-processing
243
266
 
244
267
  And install the package in editable mode:
245
268
  ```sh
246
- pip install -e .
269
+ pip install -e .[dev] --index-url https://gitlab.mpcdf.mpg.de/api/v4/projects/2187/packages/pypi/simple
247
270
  ```
@@ -0,0 +1,45 @@
1
+ ![](https://github.com/FAIRmat-NFDI/nomad-material-processing/actions/workflows/publish.yml/badge.svg)
2
+ ![](https://img.shields.io/pypi/pyversions/nomad-material-processing)
3
+ ![](https://img.shields.io/pypi/l/nomad-material-processing)
4
+ ![](https://img.shields.io/pypi/v/nomad-material-processing)
5
+
6
+ # NOMAD's Material Processing Plugin
7
+ This is a plugin for [NOMAD](https://nomad-lab.eu) which contains base sections for
8
+ material processing.
9
+
10
+ ## Getting started
11
+ `nomad-material-processing` can be installed from PyPI using `pip`:
12
+ ```sh
13
+ pip install nomad-material-processing
14
+ ```
15
+
16
+ ### Setting up your OASIS
17
+ 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.
18
+
19
+ You don't need to modify the ```nomad.yaml``` configuration file of your NOMAD instance, beacuse the package is pip installed and all the available modules (entry points) are loaded.
20
+ To include, instead, only some of the entry points, you need to specify them in the ```include``` section of the ```nomad.yaml```. In the following lines, a list of all the available entry points:
21
+
22
+ ```yaml
23
+ plugins:
24
+ include:
25
+ - "nomad_material_processing:schema"
26
+ - "nomad_material_processing.solution:schema"
27
+ - "nomad_material_processing.vapor_deposition.cvd:schema"
28
+ - "nomad_material_processing.vapor_deposition.pvd:schema"
29
+ - "nomad_material_processing.vapor_deposition.pvd:mbe_schema"
30
+ - "nomad_material_processing.vapor_deposition.pvd:pld_schema"
31
+ - "nomad_material_processing.vapor_deposition.pvd:sputtering_schema"
32
+ - "nomad_material_processing.vapor_deposition.pvd:thermal_schema"
33
+ ```
34
+
35
+ ### Development
36
+ This code is currently under development and for installing and contributing you should clone the repository:
37
+ ```sh
38
+ git clone git@github.com:FAIRmat-NFDI/nomad-material-processing.git
39
+ cd nomad-material-processing
40
+ ```
41
+
42
+ And install the package in editable mode:
43
+ ```sh
44
+ pip install -e .[dev] --index-url https://gitlab.mpcdf.mpg.de/api/v4/projects/2187/packages/pypi/simple
45
+ ```
@@ -0,0 +1,135 @@
1
+ [build-system]
2
+ requires = [
3
+ "setuptools>=61.0.0",
4
+ "setuptools-scm>=8.0",
5
+ ]
6
+ build-backend = "setuptools.build_meta"
7
+
8
+ [project]
9
+ classifiers = [
10
+ "Intended Audience :: Developers",
11
+ "Operating System :: OS Independent",
12
+ "Programming Language :: Python",
13
+ "Programming Language :: Python :: 3.9",
14
+ "Programming Language :: Python :: 3.10",
15
+ "Programming Language :: Python :: 3.11",
16
+ "Programming Language :: Python :: 3.12",
17
+ "License :: OSI Approved :: MIT License",
18
+ ]
19
+ name = "nomad-material-processing"
20
+ dynamic = ["version"]
21
+ description = "A plugin for NOMAD containing base sections for material processing."
22
+ readme = "README.md"
23
+ authors = [
24
+ { name = "Sarthak Kapoor", email = 'sarthak.kapoor@physik.hu-berlin.de' },
25
+ { name = "Hampus Näsström", email = 'hampus.naesstroem@physik.hu-berlin.de' },
26
+ { name = "Andrea Albino", email = 'andrea.albino@physik.hu-berlin.de' },
27
+ { name = "Sebastian Brückner", email = 'sebastian.brueckner@ikz-berlin.de' },
28
+ ]
29
+ license = { file = "LICENSE" }
30
+ dependencies = [
31
+ "nomad-lab>=1.3.4dev",
32
+ ]
33
+
34
+ [project.urls]
35
+ "Homepage" = "https://github.com/FAIRmat-NFDI/nomad-material-processing"
36
+ "Bug Tracker" = "https://github.com/FAIRmat-NFDI/nomad-material-processing/issues"
37
+
38
+ [tool.uv]
39
+ index-url = "https://gitlab.mpcdf.mpg.de/api/v4/projects/2187/packages/pypi/simple"
40
+
41
+
42
+ [project.optional-dependencies]
43
+ dev = [
44
+ "pytest",
45
+ "ruff",
46
+ "structlog",
47
+ ]
48
+
49
+ [tool.ruff]
50
+ include = ["src/*.py", "tests/*.py"]
51
+ # Exclude a variety of commonly ignored directories.
52
+ exclude = [
53
+ ".bzr",
54
+ ".direnv",
55
+ ".eggs",
56
+ ".git",
57
+ ".git-rewrite",
58
+ ".hg",
59
+ ".mypy_cache",
60
+ ".nox",
61
+ ".pants.d",
62
+ ".pytype",
63
+ ".ruff_cache",
64
+ ".svn",
65
+ ".tox",
66
+ ".venv",
67
+ "__pypackages__",
68
+ "_build",
69
+ "buck-out",
70
+ "build",
71
+ "dist",
72
+ "node_modules",
73
+ "venv",
74
+ ]
75
+
76
+ # Same as Black.
77
+ line-length = 88
78
+ indent-width = 4
79
+
80
+ [tool.ruff.lint]
81
+ select = [
82
+ # pycodestyle
83
+ "E",
84
+ # Pyflakes
85
+ "F",
86
+ # pyupgrade
87
+ "UP",
88
+ # isort
89
+ "I",
90
+ # pylint
91
+ "PL",
92
+ ]
93
+
94
+ ignore = [
95
+ "F403", # 'from module import *' used; unable to detect undefined names
96
+ ]
97
+
98
+ fixable = ["ALL"]
99
+
100
+ # Allow unused variables when underscore-prefixed.
101
+ dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
102
+
103
+ # this is entirely optional, you can remove this if you wish to
104
+ [tool.ruff.format]
105
+ # use single quotes for strings.
106
+ quote-style = "single"
107
+
108
+ # indent with spaces, rather than tabs.
109
+ indent-style = "space"
110
+
111
+ # Like Black, respect magic trailing commas.
112
+ skip-magic-trailing-comma = false
113
+
114
+ # Like Black, automatically detect the appropriate line ending.
115
+ line-ending = "auto"
116
+
117
+ [tool.setuptools]
118
+ package-dir = { "" = "src" }
119
+
120
+ [tool.setuptools.packages.find]
121
+ where = ["src"]
122
+
123
+ [project.entry-points.'nomad.plugin']
124
+
125
+ general_schema = "nomad_material_processing:schema"
126
+ solution_schema = "nomad_material_processing.solution:schema"
127
+ vd_schema = "nomad_material_processing.vapor_deposition:schema"
128
+ cvd_schema = "nomad_material_processing.vapor_deposition.cvd:schema"
129
+ pvd_schema = "nomad_material_processing.vapor_deposition.pvd:schema"
130
+ mbe_schema = "nomad_material_processing.vapor_deposition.pvd:mbe_schema"
131
+ pld_schema = "nomad_material_processing.vapor_deposition.pvd:pld_schema"
132
+ sputtering_schema = "nomad_material_processing.vapor_deposition.pvd:sputtering_schema"
133
+ thermal_schema = "nomad_material_processing.vapor_deposition.pvd:thermal_schema"
134
+
135
+ [tool.setuptools_scm]
@@ -0,0 +1,32 @@
1
+ #
2
+ # Copyright The NOMAD Authors.
3
+ #
4
+ # This file is part of NOMAD. See https://nomad-lab.eu for further info.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ from nomad.config.models.plugins import SchemaPackageEntryPoint
19
+
20
+
21
+ class GeneralSchemaPackageEntryPoint(SchemaPackageEntryPoint):
22
+ def load(self):
23
+ from nomad_material_processing.general import m_package
24
+
25
+ return m_package
26
+
27
+
28
+ schema = GeneralSchemaPackageEntryPoint(
29
+ name='General Schema',
30
+ description="""Schema package containing basic classes used
31
+ in the nomad_material_processing plugin.""",
32
+ )