SMACT 3.2.0__tar.gz → 4.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.
- {smact-3.2.0 → smact-4.0.0}/LICENSE +1 -1
- {smact-3.2.0/SMACT.egg-info → smact-4.0.0}/PKG-INFO +42 -34
- {smact-3.2.0 → smact-4.0.0}/README.md +27 -26
- {smact-3.2.0 → smact-4.0.0/SMACT.egg-info}/PKG-INFO +42 -34
- {smact-3.2.0 → smact-4.0.0}/SMACT.egg-info/SOURCES.txt +23 -1
- {smact-3.2.0 → smact-4.0.0}/SMACT.egg-info/requires.txt +13 -3
- {smact-3.2.0 → smact-4.0.0}/pyproject.toml +75 -76
- {smact-3.2.0 → smact-4.0.0}/smact/__init__.py +242 -208
- {smact-3.2.0 → smact-4.0.0}/smact/benchmarking/smact_benchmark.py +1 -1
- smact-4.0.0/smact/benchmarking/utilities.py +51 -0
- smact-4.0.0/smact/builder.py +112 -0
- smact-4.0.0/smact/data_loader.py +688 -0
- {smact-3.2.0 → smact-4.0.0}/smact/distorter.py +43 -33
- {smact-3.2.0 → smact-4.0.0}/smact/dopant_prediction/__init__.py +2 -0
- smact-4.0.0/smact/dopant_prediction/doper.py +406 -0
- smact-4.0.0/smact/io/__init__.py +1 -0
- smact-4.0.0/smact/io/elementembeddings.py +143 -0
- {smact-3.2.0 → smact-4.0.0}/smact/lattice.py +7 -9
- smact-4.0.0/smact/lattice_parameters.py +416 -0
- {smact-3.2.0 → smact-4.0.0}/smact/metallicity.py +33 -16
- {smact-3.2.0 → smact-4.0.0}/smact/oxidation_states.py +73 -32
- smact-4.0.0/smact/properties.py +257 -0
- smact-4.0.0/smact/property_prediction/__init__.py +78 -0
- smact-4.0.0/smact/property_prediction/base_predictor.py +200 -0
- smact-4.0.0/smact/property_prediction/config.py +72 -0
- smact-4.0.0/smact/property_prediction/convenience.py +54 -0
- smact-4.0.0/smact/property_prediction/io.py +309 -0
- smact-4.0.0/smact/property_prediction/registry.py +267 -0
- smact-4.0.0/smact/property_prediction/roost/__init__.py +24 -0
- smact-4.0.0/smact/property_prediction/roost/predictor.py +298 -0
- smact-4.0.0/smact/property_prediction/roost/train.py +503 -0
- smact-4.0.0/smact/property_prediction/scripts/__init__.py +1 -0
- smact-4.0.0/smact/property_prediction/scripts/convert_checkpoint.py +194 -0
- smact-4.0.0/smact/property_prediction/tests/__init__.py +1 -0
- smact-4.0.0/smact/property_prediction/tests/test_base_predictor.py +185 -0
- smact-4.0.0/smact/property_prediction/tests/test_io.py +171 -0
- smact-4.0.0/smact/property_prediction/tests/test_registry.py +121 -0
- smact-4.0.0/smact/screening.py +702 -0
- {smact-3.2.0 → smact-4.0.0}/smact/structure_prediction/__init__.py +2 -0
- {smact-3.2.0 → smact-4.0.0}/smact/structure_prediction/database.py +75 -37
- {smact-3.2.0 → smact-4.0.0}/smact/structure_prediction/mutation.py +93 -62
- {smact-3.2.0 → smact-4.0.0}/smact/structure_prediction/prediction.py +122 -102
- {smact-3.2.0 → smact-4.0.0}/smact/structure_prediction/probability_models.py +16 -13
- {smact-3.2.0 → smact-4.0.0}/smact/structure_prediction/structure.py +269 -130
- smact-4.0.0/smact/structure_prediction/utilities.py +8 -0
- smact-4.0.0/smact/tests/__init__.py +0 -0
- smact-4.0.0/smact/tests/conftest.py +45 -0
- smact-4.0.0/smact/tests/test_core.py +863 -0
- smact-4.0.0/smact/tests/test_doper.py +154 -0
- smact-4.0.0/smact/tests/test_elementembeddings.py +152 -0
- smact-4.0.0/smact/tests/test_lattice_parameters.py +254 -0
- smact-4.0.0/smact/tests/test_metallicity.py +145 -0
- smact-4.0.0/smact/tests/test_probability_models.py +79 -0
- smact-4.0.0/smact/tests/test_structure.py +1180 -0
- smact-4.0.0/smact/tests/test_utils.py +587 -0
- smact-4.0.0/smact/utils/__init__.py +5 -0
- {smact-3.2.0 → smact-4.0.0}/smact/utils/band_gap_simple.py +5 -7
- smact-4.0.0/smact/utils/composition.py +118 -0
- {smact-3.2.0 → smact-4.0.0}/smact/utils/crystal_space/__init__.py +2 -0
- {smact-3.2.0 → smact-4.0.0}/smact/utils/crystal_space/download_compounds_with_mp_api.py +21 -9
- smact-4.0.0/smact/utils/crystal_space/generate_composition_with_smact.py +254 -0
- {smact-3.2.0 → smact-4.0.0}/smact/utils/crystal_space/plot_embedding.py +35 -32
- {smact-3.2.0 → smact-4.0.0}/smact/utils/oxidation.py +103 -45
- smact-3.2.0/smact/structure_prediction/utilities.py → smact-4.0.0/smact/utils/species.py +26 -22
- smact-3.2.0/smact/benchmarking/utilities.py +0 -45
- smact-3.2.0/smact/builder.py +0 -85
- smact-3.2.0/smact/data_loader.py +0 -959
- smact-3.2.0/smact/dopant_prediction/doper.py +0 -376
- smact-3.2.0/smact/lattice_parameters.py +0 -349
- smact-3.2.0/smact/mainpage.py +0 -9
- smact-3.2.0/smact/properties.py +0 -204
- smact-3.2.0/smact/screening.py +0 -545
- smact-3.2.0/smact/tests/test_core.py +0 -545
- smact-3.2.0/smact/tests/test_doper.py +0 -86
- smact-3.2.0/smact/tests/test_metallicity.py +0 -172
- smact-3.2.0/smact/tests/test_structure.py +0 -600
- smact-3.2.0/smact/tests/test_utils.py +0 -330
- smact-3.2.0/smact/utils/__init__.py +0 -1
- smact-3.2.0/smact/utils/composition.py +0 -93
- smact-3.2.0/smact/utils/crystal_space/generate_composition_with_smact.py +0 -257
- {smact-3.2.0 → smact-4.0.0}/MANIFEST.in +0 -0
- {smact-3.2.0 → smact-4.0.0}/SMACT.egg-info/dependency_links.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/SMACT.egg-info/top_level.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/setup.cfg +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/benchmarking/__init__.py +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/benchmarking/pymatgen_benchmark.py +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/Covalent_radii.csv +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/SSE.csv +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/SSE_2015.csv +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/SSE_Pauling.csv +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/element_data.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/element_valence_modified.csv +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/hhi.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/ionic_radii.csv +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/magpie.csv +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/ordered_periodic.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_state_probability_table.json +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_SP.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_icsd.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_icsd24_common.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_icsd24_counts.json +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_icsd24_filtered.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_icsd24_raw.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_pmg.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_wiki.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/shannon_radii.csv +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/shannon_radii_ML_extended.csv +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/solid_properties.txt +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/solid_properties.xlsx +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/species_rep/ion_embedding_M3GNet-MP-2023.11.1-oxi-Eform_cosine_similarity.json +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/species_rep/ion_embedding_M3GNet-MP-2023.11.1-oxi-band_gap_cosine_similarity.json +0 -0
- {smact-3.2.0 → smact-4.0.0}/smact/data/species_rep/skipspecies_20221028_319ion_dim200_cosine_similarity.json +0 -0
- /smact-3.2.0/smact/tests/__init__.py → /smact-4.0.0/smact/py.typed +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: SMACT
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0.0
|
|
4
4
|
Summary: Semiconducting Materials by Analogy and Chemical Theory
|
|
5
5
|
Author-email: The SMACT Developers <a.walsh@imperial.ac.uk>
|
|
6
|
-
Maintainer-email: "
|
|
6
|
+
Maintainer-email: "Kinga O. Mastej" <k.mastej24@imperial.ac.uk>
|
|
7
7
|
License-Expression: MIT
|
|
8
8
|
Project-URL: Homepage, https://github.com/WMD-group/SMACT
|
|
9
9
|
Project-URL: Documentation, https://smact.readthedocs.io/en/latest/
|
|
@@ -15,13 +15,12 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
15
15
|
Classifier: Intended Audience :: Science/Research
|
|
16
16
|
Classifier: Operating System :: OS Independent
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.13
|
|
22
21
|
Classifier: Topic :: Scientific/Engineering
|
|
23
22
|
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
24
|
-
Requires-Python: <3.14,>=3.
|
|
23
|
+
Requires-Python: <3.14,>=3.11
|
|
25
24
|
Description-Content-Type: text/markdown
|
|
26
25
|
License-File: LICENSE
|
|
27
26
|
Requires-Dist: ase
|
|
@@ -32,6 +31,8 @@ Requires-Dist: pathos
|
|
|
32
31
|
Requires-Dist: pymatgen>=2024.2.20
|
|
33
32
|
Requires-Dist: scipy
|
|
34
33
|
Requires-Dist: spglib>=2.6.0
|
|
34
|
+
Requires-Dist: tabulate
|
|
35
|
+
Requires-Dist: tqdm
|
|
35
36
|
Requires-Dist: typing-extensions
|
|
36
37
|
Provides-Extra: dev
|
|
37
38
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -46,7 +47,8 @@ Requires-Dist: sphinx==8.1.3; extra == "docs"
|
|
|
46
47
|
Requires-Dist: sphinx_rtd_theme==3.0.2; extra == "docs"
|
|
47
48
|
Requires-Dist: readthedocs-sphinx-search==0.3.2; extra == "docs"
|
|
48
49
|
Requires-Dist: sphinx-book-theme==1.1.3; extra == "docs"
|
|
49
|
-
Requires-Dist:
|
|
50
|
+
Requires-Dist: tornado>=6.5.3; extra == "docs"
|
|
51
|
+
Requires-Dist: myst-nb==1.3.0; extra == "docs"
|
|
50
52
|
Provides-Extra: mp
|
|
51
53
|
Requires-Dist: mp-api>=0.45.3; extra == "mp"
|
|
52
54
|
Provides-Extra: crystal-space
|
|
@@ -65,6 +67,10 @@ Provides-Extra: ml
|
|
|
65
67
|
Requires-Dist: xgboost; extra == "ml"
|
|
66
68
|
Requires-Dist: shap; extra == "ml"
|
|
67
69
|
Requires-Dist: smact[featurisers]; extra == "ml"
|
|
70
|
+
Provides-Extra: property-prediction
|
|
71
|
+
Requires-Dist: aviary-models>=1.2.1; extra == "property-prediction"
|
|
72
|
+
Requires-Dist: requests; extra == "property-prediction"
|
|
73
|
+
Requires-Dist: torch>=2.0.0; extra == "property-prediction"
|
|
68
74
|
Provides-Extra: optional
|
|
69
75
|
Requires-Dist: pydantic>=2.9.2; extra == "optional"
|
|
70
76
|
Requires-Dist: smact[mp]; extra == "optional"
|
|
@@ -82,8 +88,7 @@ Requires-Dist: matplotlib-venn[shapely]>=1.1.2; extra == "optional"
|
|
|
82
88
|
Provides-Extra: strict
|
|
83
89
|
Requires-Dist: pydantic==2.9.2; extra == "strict"
|
|
84
90
|
Requires-Dist: mp-api==0.45.5; extra == "strict"
|
|
85
|
-
Requires-Dist: pymatviz==0.
|
|
86
|
-
Requires-Dist: mp-api==0.45.5; extra == "strict"
|
|
91
|
+
Requires-Dist: pymatviz==0.16.0; extra == "strict"
|
|
87
92
|
Requires-Dist: seaborn==0.13.2; extra == "strict"
|
|
88
93
|
Requires-Dist: pymatgen==2025.4.24; extra == "strict"
|
|
89
94
|
Requires-Dist: matminer==0.9.3; extra == "strict"
|
|
@@ -92,15 +97,17 @@ Requires-Dist: kaleido==0.2.1; extra == "strict"
|
|
|
92
97
|
Requires-Dist: ase==3.24.0; extra == "strict"
|
|
93
98
|
Requires-Dist: numpy; extra == "strict"
|
|
94
99
|
Requires-Dist: ElementEmbeddings==0.6.1; extra == "strict"
|
|
95
|
-
Requires-Dist: dash==3.0
|
|
100
|
+
Requires-Dist: dash==3.3.0; extra == "strict"
|
|
101
|
+
Requires-Dist: tabulate==0.9.0; extra == "strict"
|
|
102
|
+
Requires-Dist: tqdm==4.67.1; extra == "strict"
|
|
96
103
|
Dynamic: license-file
|
|
97
104
|
|
|
98
105
|
[](https://doi.org/10.21105/joss.01361)
|
|
99
|
-
[](https://doi.org/10.5281/zenodo.5553201)
|
|
100
107
|
[](http://smact.readthedocs.org/en/latest/?badge=latest)
|
|
101
108
|
[](https://opensource.org/licenses/MIT)
|
|
102
109
|

|
|
103
|
-
[](https://github.com/astral-sh/ruff)
|
|
104
111
|
[](https://pypi.org/project/SMACT/)
|
|
105
112
|
[](https://anaconda.org/conda-forge/smact)
|
|
106
113
|
[](https://github.com/WMD-group/SMACT/issues)
|
|
@@ -116,7 +123,7 @@ Dynamic: license-file
|
|
|
116
123
|
- **Documentation:** <https://smact.readthedocs.io/en/latest/>
|
|
117
124
|
- **Examples:** <https://smact.readthedocs.io/en/latest/examples.html>
|
|
118
125
|
|
|
119
|
-

|
|
120
127
|
|
|
121
128
|
_If you torture the data enough, nature will always confess_ - Roland Coase (from 'How should economists choose?')
|
|
122
129
|
|
|
@@ -129,7 +136,7 @@ There is a strong demand for functional materials across a wide range of technol
|
|
|
129
136
|
## Getting started
|
|
130
137
|
|
|
131
138
|
Features are accessed through Python scripts, importing classes and functions as needed.
|
|
132
|
-
The best place to start is looking at [the docs](https://smact.readthedocs.io/en/latest/), which highlight some simple examples of how these classes and functions can be
|
|
139
|
+
The best place to start is looking at [the docs](https://smact.readthedocs.io/en/latest/), which highlight some simple examples of how these classes and functions can be used.
|
|
133
140
|
Use cases are available in our [examples](https://smact.readthedocs.io/en/latest/examples.html) and [tutorials](https://smact.readthedocs.io/en/latest/tutorials.html) folders.
|
|
134
141
|
|
|
135
142
|
## Code features
|
|
@@ -177,39 +184,33 @@ Use cases are available in our [examples](https://smact.readthedocs.io/en/latest
|
|
|
177
184
|
|
|
178
185
|
## Requirements
|
|
179
186
|
|
|
180
|
-
The main language is Python 3 and has been tested using Python 3.
|
|
181
|
-
|
|
182
|
-
The [Atomic Simulation Environment](https://wiki.fysik.dtu.dk/ase) (ASE), [spglib](http://atztogo.github.io/spglib), and [pymatgen](https://pymatgen.org) are also required for many components.
|
|
187
|
+
The main language is Python 3 and has been tested using Python 3.11 - 3.13.
|
|
188
|
+
Core dependencies include NumPy, SciPy, pandas, [pymatgen](https://pymatgen.org), [ASE](https://wiki.fysik.dtu.dk/ase), and [spglib](http://atztogo.github.io/spglib). A full list is in [`pyproject.toml`](pyproject.toml).
|
|
183
189
|
|
|
184
190
|
## Installation
|
|
185
191
|
|
|
186
|
-
The latest stable release can be installed via pip
|
|
192
|
+
The latest stable release can be installed via pip:
|
|
187
193
|
|
|
188
194
|
pip install smact
|
|
189
195
|
|
|
190
|
-
Optional dependencies
|
|
196
|
+
Optional dependencies (needed for full replication of examples and tutorials):
|
|
191
197
|
|
|
192
198
|
pip install "smact[optional]"
|
|
193
199
|
|
|
194
|
-
SMACT is also available via conda
|
|
200
|
+
SMACT is also available via conda-forge:
|
|
195
201
|
|
|
196
202
|
conda install -c conda-forge smact
|
|
197
203
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
pip install git+https://github.com/WMD-group/SMACT.git
|
|
204
|
+
### Developer installation
|
|
201
205
|
|
|
202
|
-
|
|
203
|
-
repository (<https://github.com/wmd-group/smact>); this will be preferred if using experimental code branches.
|
|
204
|
-
|
|
205
|
-
To clone the project from GitHub and make a local installation:
|
|
206
|
+
We use [uv](https://docs.astral.sh/uv/) for dependency management. To set up a development environment:
|
|
206
207
|
|
|
207
208
|
git clone https://github.com/wmd-group/smact.git
|
|
208
209
|
cd smact
|
|
209
|
-
|
|
210
|
+
uv sync --extra optional --extra property_prediction --dev
|
|
211
|
+
pre-commit install
|
|
210
212
|
|
|
211
|
-
|
|
212
|
-
to the code will be immediately reflected on the PATH.
|
|
213
|
+
This installs SMACT in editable mode with all optional and development dependencies, and sets up pre-commit hooks. See [CONTRIBUTING.md](CONTRIBUTING.md) for the full workflow.
|
|
213
214
|
|
|
214
215
|
## License and attribution
|
|
215
216
|
|
|
@@ -219,21 +220,28 @@ Python code and original data tables are licensed under the MIT License.
|
|
|
219
220
|
|
|
220
221
|
### Bugs, features and questions
|
|
221
222
|
|
|
222
|
-
Please use the [Issue Tracker](https://github.com/WMD-group/smact/issues) to report bugs or request features in the first instance. While we hope that most questions can be answered by searching [the docs](https://smact.readthedocs.io/en/latest/), we welcome new questions on the issue tracker, especially if they
|
|
223
|
+
Please use the [Issue Tracker](https://github.com/WMD-group/smact/issues) to report bugs or request features in the first instance. While we hope that most questions can be answered by searching [the docs](https://smact.readthedocs.io/en/latest/), we welcome new questions on the issue tracker, especially if they help us improve the docs! For other queries about any aspect of the code, please contact Kinga Mastej (maintainer) by [e-mail](mailto:k.mastej24@imperial.ac.uk).
|
|
223
224
|
|
|
224
225
|
### Code contributions
|
|
225
226
|
|
|
226
|
-
We are always looking for ways to make SMACT better and more useful to the wider community; contributions are welcome. Please use the ["Fork and Pull"](https://guides.github.com/activities/forking/) workflow to make contributions and stick as closely as possible to the following:
|
|
227
|
+
We are always looking for ways to make SMACT better and more useful to the wider community; contributions are welcome. As of v4.0.0, we use [GitHub Flow](https://docs.github.com/en/get-started/using-github/github-flow): branch from `master`, open a pull request against `master`, and releases are tagged from `master`. Please use the ["Fork and Pull"](https://guides.github.com/activities/forking/) workflow to make contributions and stick as closely as possible to the following:
|
|
227
228
|
|
|
228
|
-
- Code style
|
|
229
|
-
-
|
|
229
|
+
- Code style is enforced by [ruff](https://docs.astral.sh/ruff/) (linting and formatting) and [pyright](https://github.com/microsoft/pyright) (type checking). Pre-commit hooks run these automatically on commit.
|
|
230
|
+
- Use [Google-style docstrings](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings).
|
|
230
231
|
- Add tests wherever possible, and use the test suite to check if you broke anything.
|
|
231
232
|
- Look at the [contributing guide](CONTRIBUTING.md) for more information.
|
|
232
233
|
|
|
233
234
|
### Tests
|
|
234
235
|
|
|
235
|
-
We use
|
|
236
|
-
|
|
236
|
+
We use [GitHub Actions](https://github.com/features/actions) for CI. Tests should be added to **smact/tests/test_core.py** or another **smact/tests/test_something.py** file.
|
|
237
|
+
|
|
238
|
+
Run the tests locally:
|
|
239
|
+
|
|
240
|
+
make test
|
|
241
|
+
|
|
242
|
+
Or to run the full CI pipeline (pre-commit hooks and tests):
|
|
243
|
+
|
|
244
|
+
make ci-local
|
|
237
245
|
|
|
238
246
|
## References
|
|
239
247
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
[](https://doi.org/10.21105/joss.01361)
|
|
2
|
-
[](https://doi.org/10.5281/zenodo.5553201)
|
|
3
3
|
[](http://smact.readthedocs.org/en/latest/?badge=latest)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|

|
|
6
|
-
[](https://github.com/astral-sh/ruff)
|
|
7
7
|
[](https://pypi.org/project/SMACT/)
|
|
8
8
|
[](https://anaconda.org/conda-forge/smact)
|
|
9
9
|
[](https://github.com/WMD-group/SMACT/issues)
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
- **Documentation:** <https://smact.readthedocs.io/en/latest/>
|
|
20
20
|
- **Examples:** <https://smact.readthedocs.io/en/latest/examples.html>
|
|
21
21
|
|
|
22
|
-

|
|
23
23
|
|
|
24
24
|
_If you torture the data enough, nature will always confess_ - Roland Coase (from 'How should economists choose?')
|
|
25
25
|
|
|
@@ -32,7 +32,7 @@ There is a strong demand for functional materials across a wide range of technol
|
|
|
32
32
|
## Getting started
|
|
33
33
|
|
|
34
34
|
Features are accessed through Python scripts, importing classes and functions as needed.
|
|
35
|
-
The best place to start is looking at [the docs](https://smact.readthedocs.io/en/latest/), which highlight some simple examples of how these classes and functions can be
|
|
35
|
+
The best place to start is looking at [the docs](https://smact.readthedocs.io/en/latest/), which highlight some simple examples of how these classes and functions can be used.
|
|
36
36
|
Use cases are available in our [examples](https://smact.readthedocs.io/en/latest/examples.html) and [tutorials](https://smact.readthedocs.io/en/latest/tutorials.html) folders.
|
|
37
37
|
|
|
38
38
|
## Code features
|
|
@@ -80,39 +80,33 @@ Use cases are available in our [examples](https://smact.readthedocs.io/en/latest
|
|
|
80
80
|
|
|
81
81
|
## Requirements
|
|
82
82
|
|
|
83
|
-
The main language is Python 3 and has been tested using Python 3.
|
|
84
|
-
|
|
85
|
-
The [Atomic Simulation Environment](https://wiki.fysik.dtu.dk/ase) (ASE), [spglib](http://atztogo.github.io/spglib), and [pymatgen](https://pymatgen.org) are also required for many components.
|
|
83
|
+
The main language is Python 3 and has been tested using Python 3.11 - 3.13.
|
|
84
|
+
Core dependencies include NumPy, SciPy, pandas, [pymatgen](https://pymatgen.org), [ASE](https://wiki.fysik.dtu.dk/ase), and [spglib](http://atztogo.github.io/spglib). A full list is in [`pyproject.toml`](pyproject.toml).
|
|
86
85
|
|
|
87
86
|
## Installation
|
|
88
87
|
|
|
89
|
-
The latest stable release can be installed via pip
|
|
88
|
+
The latest stable release can be installed via pip:
|
|
90
89
|
|
|
91
90
|
pip install smact
|
|
92
91
|
|
|
93
|
-
Optional dependencies
|
|
92
|
+
Optional dependencies (needed for full replication of examples and tutorials):
|
|
94
93
|
|
|
95
94
|
pip install "smact[optional]"
|
|
96
95
|
|
|
97
|
-
SMACT is also available via conda
|
|
96
|
+
SMACT is also available via conda-forge:
|
|
98
97
|
|
|
99
98
|
conda install -c conda-forge smact
|
|
100
99
|
|
|
101
|
-
|
|
100
|
+
### Developer installation
|
|
102
101
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
For developer installation SMACT can be installed from a copy of the source
|
|
106
|
-
repository (<https://github.com/wmd-group/smact>); this will be preferred if using experimental code branches.
|
|
107
|
-
|
|
108
|
-
To clone the project from GitHub and make a local installation:
|
|
102
|
+
We use [uv](https://docs.astral.sh/uv/) for dependency management. To set up a development environment:
|
|
109
103
|
|
|
110
104
|
git clone https://github.com/wmd-group/smact.git
|
|
111
105
|
cd smact
|
|
112
|
-
|
|
106
|
+
uv sync --extra optional --extra property_prediction --dev
|
|
107
|
+
pre-commit install
|
|
113
108
|
|
|
114
|
-
|
|
115
|
-
to the code will be immediately reflected on the PATH.
|
|
109
|
+
This installs SMACT in editable mode with all optional and development dependencies, and sets up pre-commit hooks. See [CONTRIBUTING.md](CONTRIBUTING.md) for the full workflow.
|
|
116
110
|
|
|
117
111
|
## License and attribution
|
|
118
112
|
|
|
@@ -122,21 +116,28 @@ Python code and original data tables are licensed under the MIT License.
|
|
|
122
116
|
|
|
123
117
|
### Bugs, features and questions
|
|
124
118
|
|
|
125
|
-
Please use the [Issue Tracker](https://github.com/WMD-group/smact/issues) to report bugs or request features in the first instance. While we hope that most questions can be answered by searching [the docs](https://smact.readthedocs.io/en/latest/), we welcome new questions on the issue tracker, especially if they
|
|
119
|
+
Please use the [Issue Tracker](https://github.com/WMD-group/smact/issues) to report bugs or request features in the first instance. While we hope that most questions can be answered by searching [the docs](https://smact.readthedocs.io/en/latest/), we welcome new questions on the issue tracker, especially if they help us improve the docs! For other queries about any aspect of the code, please contact Kinga Mastej (maintainer) by [e-mail](mailto:k.mastej24@imperial.ac.uk).
|
|
126
120
|
|
|
127
121
|
### Code contributions
|
|
128
122
|
|
|
129
|
-
We are always looking for ways to make SMACT better and more useful to the wider community; contributions are welcome. Please use the ["Fork and Pull"](https://guides.github.com/activities/forking/) workflow to make contributions and stick as closely as possible to the following:
|
|
123
|
+
We are always looking for ways to make SMACT better and more useful to the wider community; contributions are welcome. As of v4.0.0, we use [GitHub Flow](https://docs.github.com/en/get-started/using-github/github-flow): branch from `master`, open a pull request against `master`, and releases are tagged from `master`. Please use the ["Fork and Pull"](https://guides.github.com/activities/forking/) workflow to make contributions and stick as closely as possible to the following:
|
|
130
124
|
|
|
131
|
-
- Code style
|
|
132
|
-
-
|
|
125
|
+
- Code style is enforced by [ruff](https://docs.astral.sh/ruff/) (linting and formatting) and [pyright](https://github.com/microsoft/pyright) (type checking). Pre-commit hooks run these automatically on commit.
|
|
126
|
+
- Use [Google-style docstrings](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings).
|
|
133
127
|
- Add tests wherever possible, and use the test suite to check if you broke anything.
|
|
134
128
|
- Look at the [contributing guide](CONTRIBUTING.md) for more information.
|
|
135
129
|
|
|
136
130
|
### Tests
|
|
137
131
|
|
|
138
|
-
We use
|
|
139
|
-
|
|
132
|
+
We use [GitHub Actions](https://github.com/features/actions) for CI. Tests should be added to **smact/tests/test_core.py** or another **smact/tests/test_something.py** file.
|
|
133
|
+
|
|
134
|
+
Run the tests locally:
|
|
135
|
+
|
|
136
|
+
make test
|
|
137
|
+
|
|
138
|
+
Or to run the full CI pipeline (pre-commit hooks and tests):
|
|
139
|
+
|
|
140
|
+
make ci-local
|
|
140
141
|
|
|
141
142
|
## References
|
|
142
143
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: SMACT
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0.0
|
|
4
4
|
Summary: Semiconducting Materials by Analogy and Chemical Theory
|
|
5
5
|
Author-email: The SMACT Developers <a.walsh@imperial.ac.uk>
|
|
6
|
-
Maintainer-email: "
|
|
6
|
+
Maintainer-email: "Kinga O. Mastej" <k.mastej24@imperial.ac.uk>
|
|
7
7
|
License-Expression: MIT
|
|
8
8
|
Project-URL: Homepage, https://github.com/WMD-group/SMACT
|
|
9
9
|
Project-URL: Documentation, https://smact.readthedocs.io/en/latest/
|
|
@@ -15,13 +15,12 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
15
15
|
Classifier: Intended Audience :: Science/Research
|
|
16
16
|
Classifier: Operating System :: OS Independent
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.13
|
|
22
21
|
Classifier: Topic :: Scientific/Engineering
|
|
23
22
|
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
24
|
-
Requires-Python: <3.14,>=3.
|
|
23
|
+
Requires-Python: <3.14,>=3.11
|
|
25
24
|
Description-Content-Type: text/markdown
|
|
26
25
|
License-File: LICENSE
|
|
27
26
|
Requires-Dist: ase
|
|
@@ -32,6 +31,8 @@ Requires-Dist: pathos
|
|
|
32
31
|
Requires-Dist: pymatgen>=2024.2.20
|
|
33
32
|
Requires-Dist: scipy
|
|
34
33
|
Requires-Dist: spglib>=2.6.0
|
|
34
|
+
Requires-Dist: tabulate
|
|
35
|
+
Requires-Dist: tqdm
|
|
35
36
|
Requires-Dist: typing-extensions
|
|
36
37
|
Provides-Extra: dev
|
|
37
38
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -46,7 +47,8 @@ Requires-Dist: sphinx==8.1.3; extra == "docs"
|
|
|
46
47
|
Requires-Dist: sphinx_rtd_theme==3.0.2; extra == "docs"
|
|
47
48
|
Requires-Dist: readthedocs-sphinx-search==0.3.2; extra == "docs"
|
|
48
49
|
Requires-Dist: sphinx-book-theme==1.1.3; extra == "docs"
|
|
49
|
-
Requires-Dist:
|
|
50
|
+
Requires-Dist: tornado>=6.5.3; extra == "docs"
|
|
51
|
+
Requires-Dist: myst-nb==1.3.0; extra == "docs"
|
|
50
52
|
Provides-Extra: mp
|
|
51
53
|
Requires-Dist: mp-api>=0.45.3; extra == "mp"
|
|
52
54
|
Provides-Extra: crystal-space
|
|
@@ -65,6 +67,10 @@ Provides-Extra: ml
|
|
|
65
67
|
Requires-Dist: xgboost; extra == "ml"
|
|
66
68
|
Requires-Dist: shap; extra == "ml"
|
|
67
69
|
Requires-Dist: smact[featurisers]; extra == "ml"
|
|
70
|
+
Provides-Extra: property-prediction
|
|
71
|
+
Requires-Dist: aviary-models>=1.2.1; extra == "property-prediction"
|
|
72
|
+
Requires-Dist: requests; extra == "property-prediction"
|
|
73
|
+
Requires-Dist: torch>=2.0.0; extra == "property-prediction"
|
|
68
74
|
Provides-Extra: optional
|
|
69
75
|
Requires-Dist: pydantic>=2.9.2; extra == "optional"
|
|
70
76
|
Requires-Dist: smact[mp]; extra == "optional"
|
|
@@ -82,8 +88,7 @@ Requires-Dist: matplotlib-venn[shapely]>=1.1.2; extra == "optional"
|
|
|
82
88
|
Provides-Extra: strict
|
|
83
89
|
Requires-Dist: pydantic==2.9.2; extra == "strict"
|
|
84
90
|
Requires-Dist: mp-api==0.45.5; extra == "strict"
|
|
85
|
-
Requires-Dist: pymatviz==0.
|
|
86
|
-
Requires-Dist: mp-api==0.45.5; extra == "strict"
|
|
91
|
+
Requires-Dist: pymatviz==0.16.0; extra == "strict"
|
|
87
92
|
Requires-Dist: seaborn==0.13.2; extra == "strict"
|
|
88
93
|
Requires-Dist: pymatgen==2025.4.24; extra == "strict"
|
|
89
94
|
Requires-Dist: matminer==0.9.3; extra == "strict"
|
|
@@ -92,15 +97,17 @@ Requires-Dist: kaleido==0.2.1; extra == "strict"
|
|
|
92
97
|
Requires-Dist: ase==3.24.0; extra == "strict"
|
|
93
98
|
Requires-Dist: numpy; extra == "strict"
|
|
94
99
|
Requires-Dist: ElementEmbeddings==0.6.1; extra == "strict"
|
|
95
|
-
Requires-Dist: dash==3.0
|
|
100
|
+
Requires-Dist: dash==3.3.0; extra == "strict"
|
|
101
|
+
Requires-Dist: tabulate==0.9.0; extra == "strict"
|
|
102
|
+
Requires-Dist: tqdm==4.67.1; extra == "strict"
|
|
96
103
|
Dynamic: license-file
|
|
97
104
|
|
|
98
105
|
[](https://doi.org/10.21105/joss.01361)
|
|
99
|
-
[](https://doi.org/10.5281/zenodo.5553201)
|
|
100
107
|
[](http://smact.readthedocs.org/en/latest/?badge=latest)
|
|
101
108
|
[](https://opensource.org/licenses/MIT)
|
|
102
109
|

|
|
103
|
-
[](https://github.com/astral-sh/ruff)
|
|
104
111
|
[](https://pypi.org/project/SMACT/)
|
|
105
112
|
[](https://anaconda.org/conda-forge/smact)
|
|
106
113
|
[](https://github.com/WMD-group/SMACT/issues)
|
|
@@ -116,7 +123,7 @@ Dynamic: license-file
|
|
|
116
123
|
- **Documentation:** <https://smact.readthedocs.io/en/latest/>
|
|
117
124
|
- **Examples:** <https://smact.readthedocs.io/en/latest/examples.html>
|
|
118
125
|
|
|
119
|
-

|
|
120
127
|
|
|
121
128
|
_If you torture the data enough, nature will always confess_ - Roland Coase (from 'How should economists choose?')
|
|
122
129
|
|
|
@@ -129,7 +136,7 @@ There is a strong demand for functional materials across a wide range of technol
|
|
|
129
136
|
## Getting started
|
|
130
137
|
|
|
131
138
|
Features are accessed through Python scripts, importing classes and functions as needed.
|
|
132
|
-
The best place to start is looking at [the docs](https://smact.readthedocs.io/en/latest/), which highlight some simple examples of how these classes and functions can be
|
|
139
|
+
The best place to start is looking at [the docs](https://smact.readthedocs.io/en/latest/), which highlight some simple examples of how these classes and functions can be used.
|
|
133
140
|
Use cases are available in our [examples](https://smact.readthedocs.io/en/latest/examples.html) and [tutorials](https://smact.readthedocs.io/en/latest/tutorials.html) folders.
|
|
134
141
|
|
|
135
142
|
## Code features
|
|
@@ -177,39 +184,33 @@ Use cases are available in our [examples](https://smact.readthedocs.io/en/latest
|
|
|
177
184
|
|
|
178
185
|
## Requirements
|
|
179
186
|
|
|
180
|
-
The main language is Python 3 and has been tested using Python 3.
|
|
181
|
-
|
|
182
|
-
The [Atomic Simulation Environment](https://wiki.fysik.dtu.dk/ase) (ASE), [spglib](http://atztogo.github.io/spglib), and [pymatgen](https://pymatgen.org) are also required for many components.
|
|
187
|
+
The main language is Python 3 and has been tested using Python 3.11 - 3.13.
|
|
188
|
+
Core dependencies include NumPy, SciPy, pandas, [pymatgen](https://pymatgen.org), [ASE](https://wiki.fysik.dtu.dk/ase), and [spglib](http://atztogo.github.io/spglib). A full list is in [`pyproject.toml`](pyproject.toml).
|
|
183
189
|
|
|
184
190
|
## Installation
|
|
185
191
|
|
|
186
|
-
The latest stable release can be installed via pip
|
|
192
|
+
The latest stable release can be installed via pip:
|
|
187
193
|
|
|
188
194
|
pip install smact
|
|
189
195
|
|
|
190
|
-
Optional dependencies
|
|
196
|
+
Optional dependencies (needed for full replication of examples and tutorials):
|
|
191
197
|
|
|
192
198
|
pip install "smact[optional]"
|
|
193
199
|
|
|
194
|
-
SMACT is also available via conda
|
|
200
|
+
SMACT is also available via conda-forge:
|
|
195
201
|
|
|
196
202
|
conda install -c conda-forge smact
|
|
197
203
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
pip install git+https://github.com/WMD-group/SMACT.git
|
|
204
|
+
### Developer installation
|
|
201
205
|
|
|
202
|
-
|
|
203
|
-
repository (<https://github.com/wmd-group/smact>); this will be preferred if using experimental code branches.
|
|
204
|
-
|
|
205
|
-
To clone the project from GitHub and make a local installation:
|
|
206
|
+
We use [uv](https://docs.astral.sh/uv/) for dependency management. To set up a development environment:
|
|
206
207
|
|
|
207
208
|
git clone https://github.com/wmd-group/smact.git
|
|
208
209
|
cd smact
|
|
209
|
-
|
|
210
|
+
uv sync --extra optional --extra property_prediction --dev
|
|
211
|
+
pre-commit install
|
|
210
212
|
|
|
211
|
-
|
|
212
|
-
to the code will be immediately reflected on the PATH.
|
|
213
|
+
This installs SMACT in editable mode with all optional and development dependencies, and sets up pre-commit hooks. See [CONTRIBUTING.md](CONTRIBUTING.md) for the full workflow.
|
|
213
214
|
|
|
214
215
|
## License and attribution
|
|
215
216
|
|
|
@@ -219,21 +220,28 @@ Python code and original data tables are licensed under the MIT License.
|
|
|
219
220
|
|
|
220
221
|
### Bugs, features and questions
|
|
221
222
|
|
|
222
|
-
Please use the [Issue Tracker](https://github.com/WMD-group/smact/issues) to report bugs or request features in the first instance. While we hope that most questions can be answered by searching [the docs](https://smact.readthedocs.io/en/latest/), we welcome new questions on the issue tracker, especially if they
|
|
223
|
+
Please use the [Issue Tracker](https://github.com/WMD-group/smact/issues) to report bugs or request features in the first instance. While we hope that most questions can be answered by searching [the docs](https://smact.readthedocs.io/en/latest/), we welcome new questions on the issue tracker, especially if they help us improve the docs! For other queries about any aspect of the code, please contact Kinga Mastej (maintainer) by [e-mail](mailto:k.mastej24@imperial.ac.uk).
|
|
223
224
|
|
|
224
225
|
### Code contributions
|
|
225
226
|
|
|
226
|
-
We are always looking for ways to make SMACT better and more useful to the wider community; contributions are welcome. Please use the ["Fork and Pull"](https://guides.github.com/activities/forking/) workflow to make contributions and stick as closely as possible to the following:
|
|
227
|
+
We are always looking for ways to make SMACT better and more useful to the wider community; contributions are welcome. As of v4.0.0, we use [GitHub Flow](https://docs.github.com/en/get-started/using-github/github-flow): branch from `master`, open a pull request against `master`, and releases are tagged from `master`. Please use the ["Fork and Pull"](https://guides.github.com/activities/forking/) workflow to make contributions and stick as closely as possible to the following:
|
|
227
228
|
|
|
228
|
-
- Code style
|
|
229
|
-
-
|
|
229
|
+
- Code style is enforced by [ruff](https://docs.astral.sh/ruff/) (linting and formatting) and [pyright](https://github.com/microsoft/pyright) (type checking). Pre-commit hooks run these automatically on commit.
|
|
230
|
+
- Use [Google-style docstrings](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings).
|
|
230
231
|
- Add tests wherever possible, and use the test suite to check if you broke anything.
|
|
231
232
|
- Look at the [contributing guide](CONTRIBUTING.md) for more information.
|
|
232
233
|
|
|
233
234
|
### Tests
|
|
234
235
|
|
|
235
|
-
We use
|
|
236
|
-
|
|
236
|
+
We use [GitHub Actions](https://github.com/features/actions) for CI. Tests should be added to **smact/tests/test_core.py** or another **smact/tests/test_something.py** file.
|
|
237
|
+
|
|
238
|
+
Run the tests locally:
|
|
239
|
+
|
|
240
|
+
make test
|
|
241
|
+
|
|
242
|
+
Or to run the full CI pipeline (pre-commit hooks and tests):
|
|
243
|
+
|
|
244
|
+
make ci-local
|
|
237
245
|
|
|
238
246
|
## References
|
|
239
247
|
|
|
@@ -13,10 +13,10 @@ smact/data_loader.py
|
|
|
13
13
|
smact/distorter.py
|
|
14
14
|
smact/lattice.py
|
|
15
15
|
smact/lattice_parameters.py
|
|
16
|
-
smact/mainpage.py
|
|
17
16
|
smact/metallicity.py
|
|
18
17
|
smact/oxidation_states.py
|
|
19
18
|
smact/properties.py
|
|
19
|
+
smact/py.typed
|
|
20
20
|
smact/screening.py
|
|
21
21
|
smact/benchmarking/__init__.py
|
|
22
22
|
smact/benchmarking/pymatgen_benchmark.py
|
|
@@ -51,6 +51,23 @@ smact/data/species_rep/ion_embedding_M3GNet-MP-2023.11.1-oxi-band_gap_cosine_sim
|
|
|
51
51
|
smact/data/species_rep/skipspecies_20221028_319ion_dim200_cosine_similarity.json
|
|
52
52
|
smact/dopant_prediction/__init__.py
|
|
53
53
|
smact/dopant_prediction/doper.py
|
|
54
|
+
smact/io/__init__.py
|
|
55
|
+
smact/io/elementembeddings.py
|
|
56
|
+
smact/property_prediction/__init__.py
|
|
57
|
+
smact/property_prediction/base_predictor.py
|
|
58
|
+
smact/property_prediction/config.py
|
|
59
|
+
smact/property_prediction/convenience.py
|
|
60
|
+
smact/property_prediction/io.py
|
|
61
|
+
smact/property_prediction/registry.py
|
|
62
|
+
smact/property_prediction/roost/__init__.py
|
|
63
|
+
smact/property_prediction/roost/predictor.py
|
|
64
|
+
smact/property_prediction/roost/train.py
|
|
65
|
+
smact/property_prediction/scripts/__init__.py
|
|
66
|
+
smact/property_prediction/scripts/convert_checkpoint.py
|
|
67
|
+
smact/property_prediction/tests/__init__.py
|
|
68
|
+
smact/property_prediction/tests/test_base_predictor.py
|
|
69
|
+
smact/property_prediction/tests/test_io.py
|
|
70
|
+
smact/property_prediction/tests/test_registry.py
|
|
54
71
|
smact/structure_prediction/__init__.py
|
|
55
72
|
smact/structure_prediction/database.py
|
|
56
73
|
smact/structure_prediction/mutation.py
|
|
@@ -59,15 +76,20 @@ smact/structure_prediction/probability_models.py
|
|
|
59
76
|
smact/structure_prediction/structure.py
|
|
60
77
|
smact/structure_prediction/utilities.py
|
|
61
78
|
smact/tests/__init__.py
|
|
79
|
+
smact/tests/conftest.py
|
|
62
80
|
smact/tests/test_core.py
|
|
63
81
|
smact/tests/test_doper.py
|
|
82
|
+
smact/tests/test_elementembeddings.py
|
|
83
|
+
smact/tests/test_lattice_parameters.py
|
|
64
84
|
smact/tests/test_metallicity.py
|
|
85
|
+
smact/tests/test_probability_models.py
|
|
65
86
|
smact/tests/test_structure.py
|
|
66
87
|
smact/tests/test_utils.py
|
|
67
88
|
smact/utils/__init__.py
|
|
68
89
|
smact/utils/band_gap_simple.py
|
|
69
90
|
smact/utils/composition.py
|
|
70
91
|
smact/utils/oxidation.py
|
|
92
|
+
smact/utils/species.py
|
|
71
93
|
smact/utils/crystal_space/__init__.py
|
|
72
94
|
smact/utils/crystal_space/download_compounds_with_mp_api.py
|
|
73
95
|
smact/utils/crystal_space/generate_composition_with_smact.py
|
|
@@ -6,6 +6,8 @@ pathos
|
|
|
6
6
|
pymatgen>=2024.2.20
|
|
7
7
|
scipy
|
|
8
8
|
spglib>=2.6.0
|
|
9
|
+
tabulate
|
|
10
|
+
tqdm
|
|
9
11
|
typing-extensions
|
|
10
12
|
|
|
11
13
|
[crystal_space]
|
|
@@ -28,7 +30,8 @@ sphinx==8.1.3
|
|
|
28
30
|
sphinx_rtd_theme==3.0.2
|
|
29
31
|
readthedocs-sphinx-search==0.3.2
|
|
30
32
|
sphinx-book-theme==1.1.3
|
|
31
|
-
|
|
33
|
+
tornado>=6.5.3
|
|
34
|
+
myst-nb==1.3.0
|
|
32
35
|
|
|
33
36
|
[featurisers]
|
|
34
37
|
matminer
|
|
@@ -57,10 +60,15 @@ smact[ml]
|
|
|
57
60
|
pandarallel>=1.6.5
|
|
58
61
|
matplotlib-venn[shapely]>=1.1.2
|
|
59
62
|
|
|
63
|
+
[property_prediction]
|
|
64
|
+
aviary-models>=1.2.1
|
|
65
|
+
requests
|
|
66
|
+
torch>=2.0.0
|
|
67
|
+
|
|
60
68
|
[strict]
|
|
61
69
|
pydantic==2.9.2
|
|
62
70
|
mp-api==0.45.5
|
|
63
|
-
pymatviz==0.
|
|
71
|
+
pymatviz==0.16.0
|
|
64
72
|
seaborn==0.13.2
|
|
65
73
|
pymatgen==2025.4.24
|
|
66
74
|
matminer==0.9.3
|
|
@@ -69,7 +77,9 @@ kaleido==0.2.1
|
|
|
69
77
|
ase==3.24.0
|
|
70
78
|
numpy
|
|
71
79
|
ElementEmbeddings==0.6.1
|
|
72
|
-
dash==3.0
|
|
80
|
+
dash==3.3.0
|
|
81
|
+
tabulate==0.9.0
|
|
82
|
+
tqdm==4.67.1
|
|
73
83
|
|
|
74
84
|
[visualisation]
|
|
75
85
|
seaborn>=0.13.2
|