Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
4d88841
update: runtime items
k0stik Nov 20, 2025
5bd7c1d
update: runtime items title
k0stik Nov 20, 2025
21673d1
update: split runtime items schema
k0stik Nov 20, 2025
301877c
chore: create base unit mixin schema
k0stik Nov 24, 2025
3743923
chore: required name
k0stik Nov 24, 2025
a91ed64
chore: create unit mixin schemas
k0stik Nov 24, 2025
6111685
merge feature/SOF-7753-1
k0stik Nov 24, 2025
00bdb5f
fix: runtime items in units
k0stik Nov 24, 2025
0e2a2a3
update: create mixins for aplication/executable/flavor/template
k0stik Nov 25, 2025
a3d802c
update: create mixins for aplication/executable/flavor/template
k0stik Nov 25, 2025
a3947e4
update: create mixins for aplication/executable/flavor/template
k0stik Nov 25, 2025
0e75598
update: create mixins for aplication/executable/flavor/template
k0stik Nov 25, 2025
59aff7b
update: improve template schema
k0stik Nov 26, 2025
308beb3
update: improve flavor schema
k0stik Nov 26, 2025
f8b78fa
update: improve application schema
k0stik Nov 26, 2025
c248a30
update: improve application schema
k0stik Nov 26, 2025
9cd6ac3
chore: runtime_items
k0stik Nov 27, 2025
6c5c69c
chore: merge dev
k0stik Nov 28, 2025
1b47917
chore: re-generate python
k0stik Nov 28, 2025
5708b19
chore: improve materials metadata
k0stik Nov 28, 2025
ac95943
chore: improve materials metadata types
k0stik Nov 28, 2025
18907a6
chore: rename schema title
k0stik Dec 4, 2025
2036a78
chore: rename schema title
k0stik Dec 4, 2025
a95b90e
chore: resolve conflicts
k0stik Dec 22, 2025
d0c2150
update: execution unit input schema
k0stik Dec 26, 2025
9f15f6e
update: execution unit input schema
k0stik Dec 26, 2025
9e267dc
update: execution unit input schema
k0stik Dec 26, 2025
aa1aefc
update: execution unit input schema
k0stik Dec 26, 2025
9216482
update: keep template in execution input
k0stik Dec 29, 2025
a46a52c
chore: remove additionalProperties from workflow/unit/mixins/base
k0stik Dec 29, 2025
5824e37
update: improve execution context
k0stik Dec 29, 2025
2ff00f7
update: improve workflow/unit/io/api endpoint_options
k0stik Dec 30, 2025
a4c5dc8
update: remove additionalProperties from io endpoint_options
k0stik Dec 31, 2025
f67eb06
update: remove additionalProperties from application
k0stik Dec 31, 2025
dfa3f26
chore: change application schema title
k0stik Dec 31, 2025
ca7bfd4
update: io unit input
k0stik Jan 5, 2026
129b43a
chore: improve non-collinear-magnetization-context-provider
k0stik Jan 7, 2026
2c5663a
chore: improve non-collinear-magnetization-context-provider
k0stik Jan 7, 2026
0754f85
chore: improve points-grid-data-provider
k0stik Jan 7, 2026
268d34d
chore: improve points-grid-data-provider
k0stik Jan 7, 2026
70292d2
chore: improve collinear-magnetization-context-provider
k0stik Jan 7, 2026
7451da2
chore: workflows
k0stik Jan 9, 2026
6162221
chore: merge dev
k0stik Jan 9, 2026
8b70f90
chore: subworkflow mixin
k0stik Jan 9, 2026
f2b8209
update: add coordinates to points-path-data-provider
k0stik Jan 12, 2026
3a7eab6
update: add index to collinear-magnetization-context-provider
k0stik Jan 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
30 changes: 30 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,36 @@ When developing in python the following should be taken into account:
python -m unittest discover --verbose --catch --start-directory tests/py/esse/
```

3. **Resolving Merge Conflicts in Auto-generated Python Models**: The Python model files in `src/py/mat3ra/esse/models/` are auto-generated from JSON schemas using `datamodel-codegen`. If merge conflicts occur in these files, they should be resolved by regenerating the models rather than manually editing them. To resolve conflicts:

```bash
# Ensure you have the latest schemas built
npm run transpile-and-build-assets

# Regenerate Python models (requires datamodel-code-generator)
datamodel-codegen \
--input ./dist/js/schema/ \
--input-file-type jsonschema \
--output ./dist/py \
--output-model-type pydantic_v2.BaseModel \
--use-field-description \
--use-double-quotes \
--enable-version-header \
--use-title-as-name \
--class-name ESSE \
--disable-timestamp \
--use-default

# Sync regenerated files to src directory
rsync -av --delete dist/py/ src/py/mat3ra/esse/models/
```

Alternatively, you can use the pre-commit hook which will regenerate models automatically when schema files change:

```bash
pre-commit run generate-python-modules --all-files
```

### 5.2. Development in Javascript/Typescript

See [package.json](package.json) for the list of available npm commands. The JS modules are generated using the [build_schema.js](./build_schema.js) script. There is a setup for it to be run automatically when the package is installed (see "transpile" directive). To rebuild schemas manually, run:
Expand Down
32 changes: 28 additions & 4 deletions dist/js/example/job.json
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@
"shortName": "qe",
"summary": "Quantum Espresso",
"version": "5.1.1",
"build": "GNU",
"hasAdvancedComputeOptions": true
},
"model": {
Expand All @@ -105,6 +106,7 @@
"shortName": "qe",
"summary": "Quantum Espresso",
"version": "5.1.1",
"build": "GNU",
"hasAdvancedComputeOptions": true
},
"compute": null,
Expand Down Expand Up @@ -135,14 +137,32 @@
"templateId": "dJ7HYz5pQ4AuN5qc9"
}
],
"name": "pw_scf"
"name": "pw_scf",
"postProcessors": [],
"preProcessors": [],
"monitors": [],
"results": []
},
"flowchartId": "execution",
"head": true,
"input": [
{
"content": "K_POINTS automatic\n2 2 2 0 0 0",
"name": "pw_scf.in"
"template": {
"applicationName": "espresso",
"applicationVersions": [
"6.0"
],
"content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0",
"contextProviders": [
{
"name": "KGridManagerMixin"
}
],
"executableName": "pw.x",
"name": "kpoints_grid"
},
"rendered": "K_POINTS automatic\n2 2 2 0 0 0",
"isManuallyChanged": false
}
],
"monitors": [
Expand Down Expand Up @@ -176,7 +196,11 @@
"_id": "LCthJ6E2QabYCZqf4",
"flowchartId": "05c362dc27ff1bb98d16fd60",
"type": "subworkflow",
"name": "subworkflow unit"
"name": "subworkflow unit",
"preProcessors": [],
"postProcessors": [],
"monitors": [],
"results": []
}
]
}
Expand Down
1 change: 1 addition & 0 deletions dist/js/example/software/application.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
"shortName": "qe",
"summary": "Quantum Espresso",
"version": "5.1.1",
"build": "GNU",
"hasAdvancedComputeOptions": true
}
6 changes: 5 additions & 1 deletion dist/js/example/software/flavor.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,9 @@
"templateId": "dJ7HYz5pQ4AuN5qc9"
}
],
"name": "pw_scf"
"name": "pw_scf",
"postProcessors": [],
"preProcessors": [],
"monitors": [],
"results": []
}
1 change: 0 additions & 1 deletion dist/js/example/software/template.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
"6.0"
],
"content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0",
"rendered": "K_POINTS automatic\n10 10 10 0 0 0",
"contextProviders": [
{
"name": "KGridManagerMixin"
Expand Down
3 changes: 2 additions & 1 deletion dist/js/example/software_directory/modeling/espresso.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
"name": "espresso",
"shortName": "qe",
"summary": "Quantum Espresso",
"version": "7.2"
"version": "7.2",
"build": "GNU"
}
4 changes: 3 additions & 1 deletion dist/js/example/software_directory/modeling/nwchem.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
"name": "NWChem",
"summary": "NWChem: a comprehensive and scalable open-source solution for large scale molecular simulations",
"shortName": "nwchem",
"version": "6.6",
"exec": "nwchem"
"exec": "nwchem",
"build": "GNU"
}
38 changes: 23 additions & 15 deletions dist/js/example/software_directory/modeling/unit/execution.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,36 @@
"name": "espresso",
"shortName": "qe",
"summary": "Quantum Espresso",
"version": "7.2"
"version": "7.2",
"build": "GNU"
},
"flowchartId": "modeling",
"head": true,
"input": [
{
"applicationName": "espresso",
"applicationVersions": [
"6.0"
],
"content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0",
"rendered": "K_POINTS automatic\n10 10 10 0 0 0",
"contextProviders": [
{
"name": "KGridManagerMixin"
}
],
"executableName": "pw.x",
"name": "kpoints_grid"
"template": {
"applicationName": "espresso",
"applicationVersions": [
"6.0"
],
"content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0",
"contextProviders": [
{
"name": "KGridManagerMixin"
}
],
"executableName": "pw.x",
"name": "kpoints_grid"
},
"rendered": "K_POINTS automatic\n2 2 2 0 0 0",
"isManuallyChanged": false
}
],
"name": "modeling",
"status": "idle",
"type": "execution"
"type": "execution",
"preProcessors": [],
"postProcessors": [],
"monitors": [],
"results": []
}
3 changes: 2 additions & 1 deletion dist/js/example/software_directory/modeling/vasp.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
"name": "vasp",
"shortName": "vasp",
"summary": "vienna ab-initio simulation package",
"version": "5.3.5"
"version": "5.3.5",
"build": "GNU"
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
"name": "jupyterLab",
"shortName": "jl",
"summary": "Jupyter Lab",
"version": "0.33.12"
"version": "0.33.12",
"build": "GNU"
}
3 changes: 2 additions & 1 deletion dist/js/example/software_directory/scripting/python.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
"name": "python",
"shortName": "py",
"summary": "Python Script",
"version": "2.7.5"
"version": "2.7.5",
"build": "GNU"
}
3 changes: 2 additions & 1 deletion dist/js/example/software_directory/scripting/shell.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
"name": "shell",
"shortName": "sh",
"summary": "Shell Script",
"version": "4.2.46"
"version": "4.2.46",
"build": "GNU"
}
38 changes: 23 additions & 15 deletions dist/js/example/software_directory/scripting/unit/execution.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,37 @@
"name": "python",
"shortName": "py",
"summary": "Python Script",
"version": "2.7.5"
"version": "2.7.5",
"build": "GNU"
},
"compute": null,
"flowchartId": "scripting",
"head": true,
"input": [
{
"applicationName": "espresso",
"applicationVersions": [
"6.0"
],
"content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0",
"rendered": "K_POINTS automatic\n10 10 10 0 0 0",
"contextProviders": [
{
"name": "KGridManagerMixin"
}
],
"executableName": "pw.x",
"name": "kpoints_grid"
"template": {
"applicationName": "espresso",
"applicationVersions": [
"6.0"
],
"content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0",
"contextProviders": [
{
"name": "KGridManagerMixin"
}
],
"executableName": "pw.x",
"name": "kpoints_grid"
},
"rendered": "K_POINTS automatic\n2 2 2 0 0 0",
"isManuallyChanged": false
}
],
"name": "scripting",
"status": "idle",
"type": "execution"
"type": "execution",
"preProcessors": [],
"postProcessors": [],
"monitors": [],
"results": []
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"preProcessors": [],
"postProcessors": [],
"monitors": [
{
"name": "standard_output"
}
],
"postProcessors": [],
"preProcessors": [],
"results": [
{
"name": "atomic_forces"
Expand Down
32 changes: 28 additions & 4 deletions dist/js/example/workflow.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
"shortName": "qe",
"summary": "Quantum Espresso",
"version": "5.1.1",
"build": "GNU",
"hasAdvancedComputeOptions": true
},
"model": {
Expand All @@ -52,6 +53,7 @@
"shortName": "qe",
"summary": "Quantum Espresso",
"version": "5.1.1",
"build": "GNU",
"hasAdvancedComputeOptions": true
},
"compute": null,
Expand Down Expand Up @@ -82,14 +84,32 @@
"templateId": "dJ7HYz5pQ4AuN5qc9"
}
],
"name": "pw_scf"
"name": "pw_scf",
"postProcessors": [],
"preProcessors": [],
"monitors": [],
"results": []
},
"flowchartId": "execution",
"head": true,
"input": [
{
"content": "K_POINTS automatic\n2 2 2 0 0 0",
"name": "pw_scf.in"
"template": {
"applicationName": "espresso",
"applicationVersions": [
"6.0"
],
"content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0",
"contextProviders": [
{
"name": "KGridManagerMixin"
}
],
"executableName": "pw.x",
"name": "kpoints_grid"
},
"rendered": "K_POINTS automatic\n2 2 2 0 0 0",
"isManuallyChanged": false
}
],
"monitors": [
Expand Down Expand Up @@ -123,7 +143,11 @@
"_id": "LCthJ6E2QabYCZqf4",
"flowchartId": "05c362dc27ff1bb98d16fd60",
"type": "subworkflow",
"name": "subworkflow unit"
"name": "subworkflow unit",
"preProcessors": [],
"postProcessors": [],
"monitors": [],
"results": []
}
]
}
Loading
Loading