SMACT 3.0.1__tar.gz → 3.2.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.0.1/SMACT.egg-info → smact-3.2.0}/PKG-INFO +35 -31
- {smact-3.0.1 → smact-3.2.0}/README.md +2 -3
- {smact-3.0.1 → smact-3.2.0/SMACT.egg-info}/PKG-INFO +35 -31
- {smact-3.0.1 → smact-3.2.0}/SMACT.egg-info/SOURCES.txt +11 -3
- {smact-3.0.1 → smact-3.2.0}/SMACT.egg-info/requires.txt +27 -20
- {smact-3.0.1 → smact-3.2.0}/pyproject.toml +79 -34
- smact-3.2.0/smact/benchmarking/__init__.py +1 -0
- smact-3.2.0/smact/benchmarking/pymatgen_benchmark.py +40 -0
- smact-3.2.0/smact/benchmarking/smact_benchmark.py +33 -0
- smact-3.2.0/smact/benchmarking/utilities.py +45 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data_loader.py +19 -19
- smact-3.2.0/smact/metallicity.py +157 -0
- {smact-3.0.1 → smact-3.2.0}/smact/oxidation_states.py +1 -1
- {smact-3.0.1 → smact-3.2.0}/smact/screening.py +110 -97
- {smact-3.0.1 → smact-3.2.0}/smact/structure_prediction/structure.py +1 -1
- {smact-3.0.1 → smact-3.2.0}/smact/tests/test_core.py +114 -13
- smact-3.2.0/smact/tests/test_metallicity.py +172 -0
- {smact-3.0.1 → smact-3.2.0}/smact/tests/test_structure.py +19 -2
- smact-3.2.0/smact/tests/test_utils.py +330 -0
- smact-3.2.0/smact/utils/crystal_space/__init__.py +1 -0
- smact-3.2.0/smact/utils/crystal_space/download_compounds_with_mp_api.py +96 -0
- smact-3.2.0/smact/utils/crystal_space/generate_composition_with_smact.py +257 -0
- smact-3.2.0/smact/utils/crystal_space/plot_embedding.py +159 -0
- {smact-3.0.1 → smact-3.2.0}/smact/utils/oxidation.py +71 -21
- smact-3.0.1/SMACT.egg-info/not-zip-safe +0 -1
- smact-3.0.1/setup.py +0 -80
- smact-3.0.1/smact/tests/test_utils.py +0 -200
- {smact-3.0.1 → smact-3.2.0}/LICENSE +0 -0
- {smact-3.0.1 → smact-3.2.0}/MANIFEST.in +0 -0
- {smact-3.0.1 → smact-3.2.0}/SMACT.egg-info/dependency_links.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/SMACT.egg-info/top_level.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/setup.cfg +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/__init__.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/builder.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/Covalent_radii.csv +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/SSE.csv +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/SSE_2015.csv +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/SSE_Pauling.csv +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/element_data.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/element_valence_modified.csv +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/hhi.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/ionic_radii.csv +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/magpie.csv +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/ordered_periodic.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/oxidation_state_probability_table.json +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/oxidation_states.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/oxidation_states_SP.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/oxidation_states_icsd.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/oxidation_states_icsd24_common.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/oxidation_states_icsd24_counts.json +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/oxidation_states_icsd24_filtered.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/oxidation_states_icsd24_raw.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/oxidation_states_pmg.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/oxidation_states_wiki.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/shannon_radii.csv +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/shannon_radii_ML_extended.csv +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/solid_properties.txt +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/solid_properties.xlsx +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/species_rep/ion_embedding_M3GNet-MP-2023.11.1-oxi-Eform_cosine_similarity.json +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/species_rep/ion_embedding_M3GNet-MP-2023.11.1-oxi-band_gap_cosine_similarity.json +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/data/species_rep/skipspecies_20221028_319ion_dim200_cosine_similarity.json +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/distorter.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/dopant_prediction/__init__.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/dopant_prediction/doper.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/lattice.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/lattice_parameters.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/mainpage.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/properties.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/structure_prediction/__init__.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/structure_prediction/database.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/structure_prediction/mutation.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/structure_prediction/prediction.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/structure_prediction/probability_models.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/structure_prediction/utilities.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/tests/__init__.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/tests/test_doper.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/utils/__init__.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/utils/band_gap_simple.py +0 -0
- {smact-3.0.1 → smact-3.2.0}/smact/utils/composition.py +0 -0
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: SMACT
|
|
3
|
-
Version: 3.0
|
|
3
|
+
Version: 3.2.0
|
|
4
4
|
Summary: Semiconducting Materials by Analogy and Chemical Theory
|
|
5
|
-
Home-page: https://github.com/WMD-group/SMACT
|
|
6
|
-
Author: The SMACT Developers
|
|
7
5
|
Author-email: The SMACT Developers <a.walsh@imperial.ac.uk>
|
|
8
|
-
Maintainer: Anthony O. Onwuli
|
|
9
6
|
Maintainer-email: "Anthony O. Onwuli" <anthony.onwuli16@imperial.ac.uk>
|
|
10
|
-
License: MIT
|
|
7
|
+
License-Expression: MIT
|
|
11
8
|
Project-URL: Homepage, https://github.com/WMD-group/SMACT
|
|
12
9
|
Project-URL: Documentation, https://smact.readthedocs.io/en/latest/
|
|
13
10
|
Project-URL: Repository, https://github.com/WMD-group/SMACT
|
|
@@ -16,24 +13,25 @@ Project-URL: Pypi, https://pypi.org/project/SMACT/
|
|
|
16
13
|
Keywords: python,machine-learning,computational-chemistry,materials-science,materials-informatics,materials-screening,materials-design,materials
|
|
17
14
|
Classifier: Development Status :: 5 - Production/Stable
|
|
18
15
|
Classifier: Intended Audience :: Science/Research
|
|
19
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
20
16
|
Classifier: Operating System :: OS Independent
|
|
21
17
|
Classifier: Programming Language :: Python :: 3
|
|
22
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
23
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
24
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
25
22
|
Classifier: Topic :: Scientific/Engineering
|
|
26
23
|
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
27
|
-
Requires-Python:
|
|
24
|
+
Requires-Python: <3.14,>=3.10
|
|
28
25
|
Description-Content-Type: text/markdown
|
|
29
26
|
License-File: LICENSE
|
|
30
27
|
Requires-Dist: ase
|
|
31
28
|
Requires-Dist: numpy<3
|
|
29
|
+
Requires-Dist: pandarallel[optional]>=1.6.5
|
|
32
30
|
Requires-Dist: pandas
|
|
33
31
|
Requires-Dist: pathos
|
|
34
32
|
Requires-Dist: pymatgen>=2024.2.20
|
|
35
33
|
Requires-Dist: scipy
|
|
36
|
-
Requires-Dist: spglib
|
|
34
|
+
Requires-Dist: spglib>=2.6.0
|
|
37
35
|
Requires-Dist: typing-extensions
|
|
38
36
|
Provides-Extra: dev
|
|
39
37
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -50,25 +48,27 @@ Requires-Dist: readthedocs-sphinx-search==0.3.2; extra == "docs"
|
|
|
50
48
|
Requires-Dist: sphinx-book-theme==1.1.3; extra == "docs"
|
|
51
49
|
Requires-Dist: myst-nb==1.1.2; extra == "docs"
|
|
52
50
|
Provides-Extra: mp
|
|
53
|
-
Requires-Dist: mp-api; extra == "mp"
|
|
51
|
+
Requires-Dist: mp-api>=0.45.3; extra == "mp"
|
|
54
52
|
Provides-Extra: crystal-space
|
|
55
|
-
Requires-Dist: mp
|
|
56
|
-
Requires-Dist: ElementEmbeddings; extra == "crystal-space"
|
|
57
|
-
Requires-Dist: umap-learn==0.5.
|
|
58
|
-
Requires-Dist: kaleido; extra == "crystal-space"
|
|
59
|
-
Requires-Dist: pydantic<2.10.0; extra == "crystal-space"
|
|
53
|
+
Requires-Dist: smact[mp]; extra == "crystal-space"
|
|
54
|
+
Requires-Dist: ElementEmbeddings>=0.4; extra == "crystal-space"
|
|
55
|
+
Requires-Dist: umap-learn==0.5.7; extra == "crystal-space"
|
|
56
|
+
Requires-Dist: kaleido>=0.2.1; extra == "crystal-space"
|
|
60
57
|
Provides-Extra: featurisers
|
|
61
58
|
Requires-Dist: matminer; extra == "featurisers"
|
|
62
59
|
Requires-Dist: ElementEmbeddings; extra == "featurisers"
|
|
63
60
|
Provides-Extra: visualisation
|
|
64
|
-
Requires-Dist: seaborn; extra == "visualisation"
|
|
65
|
-
Requires-Dist: pymatviz; extra == "visualisation"
|
|
66
|
-
Requires-Dist: dash; extra == "visualisation"
|
|
61
|
+
Requires-Dist: seaborn>=0.13.2; extra == "visualisation"
|
|
62
|
+
Requires-Dist: pymatviz>=0.15; extra == "visualisation"
|
|
63
|
+
Requires-Dist: dash>=2.18.2; extra == "visualisation"
|
|
64
|
+
Provides-Extra: ml
|
|
65
|
+
Requires-Dist: xgboost; extra == "ml"
|
|
66
|
+
Requires-Dist: shap; extra == "ml"
|
|
67
|
+
Requires-Dist: smact[featurisers]; extra == "ml"
|
|
67
68
|
Provides-Extra: optional
|
|
68
69
|
Requires-Dist: pydantic>=2.9.2; extra == "optional"
|
|
69
|
-
Requires-Dist: mp
|
|
70
|
-
Requires-Dist:
|
|
71
|
-
Requires-Dist: seaborn>=0.13.2; extra == "optional"
|
|
70
|
+
Requires-Dist: smact[mp]; extra == "optional"
|
|
71
|
+
Requires-Dist: smact[visualisation]; extra == "optional"
|
|
72
72
|
Requires-Dist: pymatgen>=2024.2.20; extra == "optional"
|
|
73
73
|
Requires-Dist: matminer>=0.9.2; extra == "optional"
|
|
74
74
|
Requires-Dist: kaleido>=0.2.1; extra == "optional"
|
|
@@ -76,19 +76,24 @@ Requires-Dist: ase>=3.22.0; extra == "optional"
|
|
|
76
76
|
Requires-Dist: llvmlite>=0.40; extra == "optional"
|
|
77
77
|
Requires-Dist: ElementEmbeddings>=0.4; extra == "optional"
|
|
78
78
|
Requires-Dist: dash>=2.18.2; extra == "optional"
|
|
79
|
+
Requires-Dist: smact[ml]; extra == "optional"
|
|
80
|
+
Requires-Dist: pandarallel>=1.6.5; extra == "optional"
|
|
81
|
+
Requires-Dist: matplotlib-venn[shapely]>=1.1.2; extra == "optional"
|
|
79
82
|
Provides-Extra: strict
|
|
80
83
|
Requires-Dist: pydantic==2.9.2; extra == "strict"
|
|
81
|
-
Requires-Dist: mp-api==0.
|
|
82
|
-
Requires-Dist: pymatviz==0.
|
|
84
|
+
Requires-Dist: mp-api==0.45.5; extra == "strict"
|
|
85
|
+
Requires-Dist: pymatviz==0.15.1; extra == "strict"
|
|
86
|
+
Requires-Dist: mp-api==0.45.5; extra == "strict"
|
|
83
87
|
Requires-Dist: seaborn==0.13.2; extra == "strict"
|
|
84
|
-
Requires-Dist: pymatgen==
|
|
85
|
-
Requires-Dist: matminer==0.9.
|
|
86
|
-
Requires-Dist: umap-learn==0.5.
|
|
88
|
+
Requires-Dist: pymatgen==2025.4.24; extra == "strict"
|
|
89
|
+
Requires-Dist: matminer==0.9.3; extra == "strict"
|
|
90
|
+
Requires-Dist: umap-learn==0.5.7; extra == "strict"
|
|
87
91
|
Requires-Dist: kaleido==0.2.1; extra == "strict"
|
|
88
|
-
Requires-Dist: ase==3.
|
|
92
|
+
Requires-Dist: ase==3.24.0; extra == "strict"
|
|
89
93
|
Requires-Dist: numpy; extra == "strict"
|
|
90
94
|
Requires-Dist: ElementEmbeddings==0.6.1; extra == "strict"
|
|
91
|
-
Requires-Dist: dash==
|
|
95
|
+
Requires-Dist: dash==3.0.2; extra == "strict"
|
|
96
|
+
Dynamic: license-file
|
|
92
97
|
|
|
93
98
|
[](https://doi.org/10.21105/joss.01361)
|
|
94
99
|
[](https://doi.org/10.5281/zenodo.5553202)
|
|
@@ -102,7 +107,7 @@ Requires-Dist: dash==2.18.2; extra == "strict"
|
|
|
102
107
|

|
|
103
108
|
[](https://github.com/WMD-group/SMACT/actions/workflows/ci.yml)
|
|
104
109
|
[](https://codecov.io/gh/WMD-group/SMACT)
|
|
105
|
-

|
|
110
|
+
 [](https://deepwiki.com/WMD-group/SMACT)
|
|
106
111
|
|
|
107
112
|
# SMACT
|
|
108
113
|
|
|
@@ -136,7 +141,6 @@ Use cases are available in our [examples](https://smact.readthedocs.io/en/latest
|
|
|
136
141
|
- Element compositions can be screened through based on the heuristic filters of charge neutrality and electronegativity order. This is handled using the [screening module](https://smact.readthedocs.io/en/latest/smact.screening.html) and [this publication](<https://www.cell.com/chem/fulltext/S2451-9294(16)30155-3>) describes the underlying theory. An example procedure is [outlined in the docs](https://smact.readthedocs.io/en/latest/examples/filter.html).
|
|
137
142
|
|
|
138
143
|
- Further filters can be applied to generated lists of compositions in order to screen for particular properties. These properties are either intrinsic properties of elements or are calculated for compositions using the [properties module](https://smact.readthedocs.io/en/latest/smact.properties.html). For example:
|
|
139
|
-
|
|
140
144
|
- An application is shown in [this publication](https://pubs.rsc.org/en/content/articlehtml/2018/sc/c7sc03961a), in which 160,000 chemical compositions are screened based on optical band gap calculated using the [solid-state energy scale](https://www.sciencedirect.com/science/article/pii/S0022459615300888).
|
|
141
145
|
- The [oxidation_states module](https://smact.readthedocs.io/en/latest/smact.oxidation_states.html) can be used to filter out compositions containing metals in unlikely oxidation states according to [a data-driven model](https://pubs.rsc.org/en/content/articlelanding/2018/fd/c8fd00032h#!divAbstract).
|
|
142
146
|
|
|
@@ -173,7 +177,7 @@ Use cases are available in our [examples](https://smact.readthedocs.io/en/latest
|
|
|
173
177
|
|
|
174
178
|
## Requirements
|
|
175
179
|
|
|
176
|
-
The main language is Python 3 and has been tested using Python 3.10
|
|
180
|
+
The main language is Python 3 and has been tested using Python 3.10 - 3.13 (Windows is not officially supported for Python 3.13 as of yet).
|
|
177
181
|
Basic requirements are Numpy and Scipy.
|
|
178
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.
|
|
179
183
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|

|
|
11
11
|
[](https://github.com/WMD-group/SMACT/actions/workflows/ci.yml)
|
|
12
12
|
[](https://codecov.io/gh/WMD-group/SMACT)
|
|
13
|
-

|
|
13
|
+
 [](https://deepwiki.com/WMD-group/SMACT)
|
|
14
14
|
|
|
15
15
|
# SMACT
|
|
16
16
|
|
|
@@ -44,7 +44,6 @@ Use cases are available in our [examples](https://smact.readthedocs.io/en/latest
|
|
|
44
44
|
- Element compositions can be screened through based on the heuristic filters of charge neutrality and electronegativity order. This is handled using the [screening module](https://smact.readthedocs.io/en/latest/smact.screening.html) and [this publication](<https://www.cell.com/chem/fulltext/S2451-9294(16)30155-3>) describes the underlying theory. An example procedure is [outlined in the docs](https://smact.readthedocs.io/en/latest/examples/filter.html).
|
|
45
45
|
|
|
46
46
|
- Further filters can be applied to generated lists of compositions in order to screen for particular properties. These properties are either intrinsic properties of elements or are calculated for compositions using the [properties module](https://smact.readthedocs.io/en/latest/smact.properties.html). For example:
|
|
47
|
-
|
|
48
47
|
- An application is shown in [this publication](https://pubs.rsc.org/en/content/articlehtml/2018/sc/c7sc03961a), in which 160,000 chemical compositions are screened based on optical band gap calculated using the [solid-state energy scale](https://www.sciencedirect.com/science/article/pii/S0022459615300888).
|
|
49
48
|
- The [oxidation_states module](https://smact.readthedocs.io/en/latest/smact.oxidation_states.html) can be used to filter out compositions containing metals in unlikely oxidation states according to [a data-driven model](https://pubs.rsc.org/en/content/articlelanding/2018/fd/c8fd00032h#!divAbstract).
|
|
50
49
|
|
|
@@ -81,7 +80,7 @@ Use cases are available in our [examples](https://smact.readthedocs.io/en/latest
|
|
|
81
80
|
|
|
82
81
|
## Requirements
|
|
83
82
|
|
|
84
|
-
The main language is Python 3 and has been tested using Python 3.10
|
|
83
|
+
The main language is Python 3 and has been tested using Python 3.10 - 3.13 (Windows is not officially supported for Python 3.13 as of yet).
|
|
85
84
|
Basic requirements are Numpy and Scipy.
|
|
86
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.
|
|
87
86
|
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: SMACT
|
|
3
|
-
Version: 3.0
|
|
3
|
+
Version: 3.2.0
|
|
4
4
|
Summary: Semiconducting Materials by Analogy and Chemical Theory
|
|
5
|
-
Home-page: https://github.com/WMD-group/SMACT
|
|
6
|
-
Author: The SMACT Developers
|
|
7
5
|
Author-email: The SMACT Developers <a.walsh@imperial.ac.uk>
|
|
8
|
-
Maintainer: Anthony O. Onwuli
|
|
9
6
|
Maintainer-email: "Anthony O. Onwuli" <anthony.onwuli16@imperial.ac.uk>
|
|
10
|
-
License: MIT
|
|
7
|
+
License-Expression: MIT
|
|
11
8
|
Project-URL: Homepage, https://github.com/WMD-group/SMACT
|
|
12
9
|
Project-URL: Documentation, https://smact.readthedocs.io/en/latest/
|
|
13
10
|
Project-URL: Repository, https://github.com/WMD-group/SMACT
|
|
@@ -16,24 +13,25 @@ Project-URL: Pypi, https://pypi.org/project/SMACT/
|
|
|
16
13
|
Keywords: python,machine-learning,computational-chemistry,materials-science,materials-informatics,materials-screening,materials-design,materials
|
|
17
14
|
Classifier: Development Status :: 5 - Production/Stable
|
|
18
15
|
Classifier: Intended Audience :: Science/Research
|
|
19
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
20
16
|
Classifier: Operating System :: OS Independent
|
|
21
17
|
Classifier: Programming Language :: Python :: 3
|
|
22
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
23
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
24
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
25
22
|
Classifier: Topic :: Scientific/Engineering
|
|
26
23
|
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
27
|
-
Requires-Python:
|
|
24
|
+
Requires-Python: <3.14,>=3.10
|
|
28
25
|
Description-Content-Type: text/markdown
|
|
29
26
|
License-File: LICENSE
|
|
30
27
|
Requires-Dist: ase
|
|
31
28
|
Requires-Dist: numpy<3
|
|
29
|
+
Requires-Dist: pandarallel[optional]>=1.6.5
|
|
32
30
|
Requires-Dist: pandas
|
|
33
31
|
Requires-Dist: pathos
|
|
34
32
|
Requires-Dist: pymatgen>=2024.2.20
|
|
35
33
|
Requires-Dist: scipy
|
|
36
|
-
Requires-Dist: spglib
|
|
34
|
+
Requires-Dist: spglib>=2.6.0
|
|
37
35
|
Requires-Dist: typing-extensions
|
|
38
36
|
Provides-Extra: dev
|
|
39
37
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -50,25 +48,27 @@ Requires-Dist: readthedocs-sphinx-search==0.3.2; extra == "docs"
|
|
|
50
48
|
Requires-Dist: sphinx-book-theme==1.1.3; extra == "docs"
|
|
51
49
|
Requires-Dist: myst-nb==1.1.2; extra == "docs"
|
|
52
50
|
Provides-Extra: mp
|
|
53
|
-
Requires-Dist: mp-api; extra == "mp"
|
|
51
|
+
Requires-Dist: mp-api>=0.45.3; extra == "mp"
|
|
54
52
|
Provides-Extra: crystal-space
|
|
55
|
-
Requires-Dist: mp
|
|
56
|
-
Requires-Dist: ElementEmbeddings; extra == "crystal-space"
|
|
57
|
-
Requires-Dist: umap-learn==0.5.
|
|
58
|
-
Requires-Dist: kaleido; extra == "crystal-space"
|
|
59
|
-
Requires-Dist: pydantic<2.10.0; extra == "crystal-space"
|
|
53
|
+
Requires-Dist: smact[mp]; extra == "crystal-space"
|
|
54
|
+
Requires-Dist: ElementEmbeddings>=0.4; extra == "crystal-space"
|
|
55
|
+
Requires-Dist: umap-learn==0.5.7; extra == "crystal-space"
|
|
56
|
+
Requires-Dist: kaleido>=0.2.1; extra == "crystal-space"
|
|
60
57
|
Provides-Extra: featurisers
|
|
61
58
|
Requires-Dist: matminer; extra == "featurisers"
|
|
62
59
|
Requires-Dist: ElementEmbeddings; extra == "featurisers"
|
|
63
60
|
Provides-Extra: visualisation
|
|
64
|
-
Requires-Dist: seaborn; extra == "visualisation"
|
|
65
|
-
Requires-Dist: pymatviz; extra == "visualisation"
|
|
66
|
-
Requires-Dist: dash; extra == "visualisation"
|
|
61
|
+
Requires-Dist: seaborn>=0.13.2; extra == "visualisation"
|
|
62
|
+
Requires-Dist: pymatviz>=0.15; extra == "visualisation"
|
|
63
|
+
Requires-Dist: dash>=2.18.2; extra == "visualisation"
|
|
64
|
+
Provides-Extra: ml
|
|
65
|
+
Requires-Dist: xgboost; extra == "ml"
|
|
66
|
+
Requires-Dist: shap; extra == "ml"
|
|
67
|
+
Requires-Dist: smact[featurisers]; extra == "ml"
|
|
67
68
|
Provides-Extra: optional
|
|
68
69
|
Requires-Dist: pydantic>=2.9.2; extra == "optional"
|
|
69
|
-
Requires-Dist: mp
|
|
70
|
-
Requires-Dist:
|
|
71
|
-
Requires-Dist: seaborn>=0.13.2; extra == "optional"
|
|
70
|
+
Requires-Dist: smact[mp]; extra == "optional"
|
|
71
|
+
Requires-Dist: smact[visualisation]; extra == "optional"
|
|
72
72
|
Requires-Dist: pymatgen>=2024.2.20; extra == "optional"
|
|
73
73
|
Requires-Dist: matminer>=0.9.2; extra == "optional"
|
|
74
74
|
Requires-Dist: kaleido>=0.2.1; extra == "optional"
|
|
@@ -76,19 +76,24 @@ Requires-Dist: ase>=3.22.0; extra == "optional"
|
|
|
76
76
|
Requires-Dist: llvmlite>=0.40; extra == "optional"
|
|
77
77
|
Requires-Dist: ElementEmbeddings>=0.4; extra == "optional"
|
|
78
78
|
Requires-Dist: dash>=2.18.2; extra == "optional"
|
|
79
|
+
Requires-Dist: smact[ml]; extra == "optional"
|
|
80
|
+
Requires-Dist: pandarallel>=1.6.5; extra == "optional"
|
|
81
|
+
Requires-Dist: matplotlib-venn[shapely]>=1.1.2; extra == "optional"
|
|
79
82
|
Provides-Extra: strict
|
|
80
83
|
Requires-Dist: pydantic==2.9.2; extra == "strict"
|
|
81
|
-
Requires-Dist: mp-api==0.
|
|
82
|
-
Requires-Dist: pymatviz==0.
|
|
84
|
+
Requires-Dist: mp-api==0.45.5; extra == "strict"
|
|
85
|
+
Requires-Dist: pymatviz==0.15.1; extra == "strict"
|
|
86
|
+
Requires-Dist: mp-api==0.45.5; extra == "strict"
|
|
83
87
|
Requires-Dist: seaborn==0.13.2; extra == "strict"
|
|
84
|
-
Requires-Dist: pymatgen==
|
|
85
|
-
Requires-Dist: matminer==0.9.
|
|
86
|
-
Requires-Dist: umap-learn==0.5.
|
|
88
|
+
Requires-Dist: pymatgen==2025.4.24; extra == "strict"
|
|
89
|
+
Requires-Dist: matminer==0.9.3; extra == "strict"
|
|
90
|
+
Requires-Dist: umap-learn==0.5.7; extra == "strict"
|
|
87
91
|
Requires-Dist: kaleido==0.2.1; extra == "strict"
|
|
88
|
-
Requires-Dist: ase==3.
|
|
92
|
+
Requires-Dist: ase==3.24.0; extra == "strict"
|
|
89
93
|
Requires-Dist: numpy; extra == "strict"
|
|
90
94
|
Requires-Dist: ElementEmbeddings==0.6.1; extra == "strict"
|
|
91
|
-
Requires-Dist: dash==
|
|
95
|
+
Requires-Dist: dash==3.0.2; extra == "strict"
|
|
96
|
+
Dynamic: license-file
|
|
92
97
|
|
|
93
98
|
[](https://doi.org/10.21105/joss.01361)
|
|
94
99
|
[](https://doi.org/10.5281/zenodo.5553202)
|
|
@@ -102,7 +107,7 @@ Requires-Dist: dash==2.18.2; extra == "strict"
|
|
|
102
107
|

|
|
103
108
|
[](https://github.com/WMD-group/SMACT/actions/workflows/ci.yml)
|
|
104
109
|
[](https://codecov.io/gh/WMD-group/SMACT)
|
|
105
|
-

|
|
110
|
+
 [](https://deepwiki.com/WMD-group/SMACT)
|
|
106
111
|
|
|
107
112
|
# SMACT
|
|
108
113
|
|
|
@@ -136,7 +141,6 @@ Use cases are available in our [examples](https://smact.readthedocs.io/en/latest
|
|
|
136
141
|
- Element compositions can be screened through based on the heuristic filters of charge neutrality and electronegativity order. This is handled using the [screening module](https://smact.readthedocs.io/en/latest/smact.screening.html) and [this publication](<https://www.cell.com/chem/fulltext/S2451-9294(16)30155-3>) describes the underlying theory. An example procedure is [outlined in the docs](https://smact.readthedocs.io/en/latest/examples/filter.html).
|
|
137
142
|
|
|
138
143
|
- Further filters can be applied to generated lists of compositions in order to screen for particular properties. These properties are either intrinsic properties of elements or are calculated for compositions using the [properties module](https://smact.readthedocs.io/en/latest/smact.properties.html). For example:
|
|
139
|
-
|
|
140
144
|
- An application is shown in [this publication](https://pubs.rsc.org/en/content/articlehtml/2018/sc/c7sc03961a), in which 160,000 chemical compositions are screened based on optical band gap calculated using the [solid-state energy scale](https://www.sciencedirect.com/science/article/pii/S0022459615300888).
|
|
141
145
|
- The [oxidation_states module](https://smact.readthedocs.io/en/latest/smact.oxidation_states.html) can be used to filter out compositions containing metals in unlikely oxidation states according to [a data-driven model](https://pubs.rsc.org/en/content/articlelanding/2018/fd/c8fd00032h#!divAbstract).
|
|
142
146
|
|
|
@@ -173,7 +177,7 @@ Use cases are available in our [examples](https://smact.readthedocs.io/en/latest
|
|
|
173
177
|
|
|
174
178
|
## Requirements
|
|
175
179
|
|
|
176
|
-
The main language is Python 3 and has been tested using Python 3.10
|
|
180
|
+
The main language is Python 3 and has been tested using Python 3.10 - 3.13 (Windows is not officially supported for Python 3.13 as of yet).
|
|
177
181
|
Basic requirements are Numpy and Scipy.
|
|
178
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.
|
|
179
183
|
|
|
@@ -2,11 +2,9 @@ LICENSE
|
|
|
2
2
|
MANIFEST.in
|
|
3
3
|
README.md
|
|
4
4
|
pyproject.toml
|
|
5
|
-
setup.py
|
|
6
5
|
SMACT.egg-info/PKG-INFO
|
|
7
6
|
SMACT.egg-info/SOURCES.txt
|
|
8
7
|
SMACT.egg-info/dependency_links.txt
|
|
9
|
-
SMACT.egg-info/not-zip-safe
|
|
10
8
|
SMACT.egg-info/requires.txt
|
|
11
9
|
SMACT.egg-info/top_level.txt
|
|
12
10
|
smact/__init__.py
|
|
@@ -16,9 +14,14 @@ smact/distorter.py
|
|
|
16
14
|
smact/lattice.py
|
|
17
15
|
smact/lattice_parameters.py
|
|
18
16
|
smact/mainpage.py
|
|
17
|
+
smact/metallicity.py
|
|
19
18
|
smact/oxidation_states.py
|
|
20
19
|
smact/properties.py
|
|
21
20
|
smact/screening.py
|
|
21
|
+
smact/benchmarking/__init__.py
|
|
22
|
+
smact/benchmarking/pymatgen_benchmark.py
|
|
23
|
+
smact/benchmarking/smact_benchmark.py
|
|
24
|
+
smact/benchmarking/utilities.py
|
|
22
25
|
smact/data/Covalent_radii.csv
|
|
23
26
|
smact/data/SSE.csv
|
|
24
27
|
smact/data/SSE_2015.csv
|
|
@@ -58,9 +61,14 @@ smact/structure_prediction/utilities.py
|
|
|
58
61
|
smact/tests/__init__.py
|
|
59
62
|
smact/tests/test_core.py
|
|
60
63
|
smact/tests/test_doper.py
|
|
64
|
+
smact/tests/test_metallicity.py
|
|
61
65
|
smact/tests/test_structure.py
|
|
62
66
|
smact/tests/test_utils.py
|
|
63
67
|
smact/utils/__init__.py
|
|
64
68
|
smact/utils/band_gap_simple.py
|
|
65
69
|
smact/utils/composition.py
|
|
66
|
-
smact/utils/oxidation.py
|
|
70
|
+
smact/utils/oxidation.py
|
|
71
|
+
smact/utils/crystal_space/__init__.py
|
|
72
|
+
smact/utils/crystal_space/download_compounds_with_mp_api.py
|
|
73
|
+
smact/utils/crystal_space/generate_composition_with_smact.py
|
|
74
|
+
smact/utils/crystal_space/plot_embedding.py
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
ase
|
|
2
2
|
numpy<3
|
|
3
|
+
pandarallel[optional]>=1.6.5
|
|
3
4
|
pandas
|
|
4
5
|
pathos
|
|
5
6
|
pymatgen>=2024.2.20
|
|
6
7
|
scipy
|
|
7
|
-
spglib
|
|
8
|
+
spglib>=2.6.0
|
|
8
9
|
typing-extensions
|
|
9
10
|
|
|
10
11
|
[crystal_space]
|
|
11
|
-
mp
|
|
12
|
-
ElementEmbeddings
|
|
13
|
-
umap-learn==0.5.
|
|
14
|
-
kaleido
|
|
15
|
-
pydantic<2.10.0
|
|
12
|
+
smact[mp]
|
|
13
|
+
ElementEmbeddings>=0.4
|
|
14
|
+
umap-learn==0.5.7
|
|
15
|
+
kaleido>=0.2.1
|
|
16
16
|
|
|
17
17
|
[dev]
|
|
18
18
|
pytest
|
|
@@ -34,14 +34,18 @@ myst-nb==1.1.2
|
|
|
34
34
|
matminer
|
|
35
35
|
ElementEmbeddings
|
|
36
36
|
|
|
37
|
+
[ml]
|
|
38
|
+
xgboost
|
|
39
|
+
shap
|
|
40
|
+
smact[featurisers]
|
|
41
|
+
|
|
37
42
|
[mp]
|
|
38
|
-
mp-api
|
|
43
|
+
mp-api>=0.45.3
|
|
39
44
|
|
|
40
45
|
[optional]
|
|
41
46
|
pydantic>=2.9.2
|
|
42
|
-
mp
|
|
43
|
-
|
|
44
|
-
seaborn>=0.13.2
|
|
47
|
+
smact[mp]
|
|
48
|
+
smact[visualisation]
|
|
45
49
|
pymatgen>=2024.2.20
|
|
46
50
|
matminer>=0.9.2
|
|
47
51
|
kaleido>=0.2.1
|
|
@@ -49,22 +53,25 @@ ase>=3.22.0
|
|
|
49
53
|
llvmlite>=0.40
|
|
50
54
|
ElementEmbeddings>=0.4
|
|
51
55
|
dash>=2.18.2
|
|
56
|
+
smact[ml]
|
|
57
|
+
pandarallel>=1.6.5
|
|
58
|
+
matplotlib-venn[shapely]>=1.1.2
|
|
52
59
|
|
|
53
60
|
[strict]
|
|
54
61
|
pydantic==2.9.2
|
|
55
|
-
mp-api==0.
|
|
56
|
-
pymatviz==0.
|
|
62
|
+
mp-api==0.45.5
|
|
63
|
+
pymatviz==0.15.1
|
|
57
64
|
seaborn==0.13.2
|
|
58
|
-
pymatgen==
|
|
59
|
-
matminer==0.9.
|
|
60
|
-
umap-learn==0.5.
|
|
65
|
+
pymatgen==2025.4.24
|
|
66
|
+
matminer==0.9.3
|
|
67
|
+
umap-learn==0.5.7
|
|
61
68
|
kaleido==0.2.1
|
|
62
|
-
ase==3.
|
|
69
|
+
ase==3.24.0
|
|
63
70
|
numpy
|
|
64
71
|
ElementEmbeddings==0.6.1
|
|
65
|
-
dash==
|
|
72
|
+
dash==3.0.2
|
|
66
73
|
|
|
67
74
|
[visualisation]
|
|
68
|
-
seaborn
|
|
69
|
-
pymatviz
|
|
70
|
-
dash
|
|
75
|
+
seaborn>=0.13.2
|
|
76
|
+
pymatviz>=0.15
|
|
77
|
+
dash>=2.18.2
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
[build-system]
|
|
2
2
|
# Minimum requirements for the build system to execute.
|
|
3
|
-
requires = ["setuptools>=
|
|
3
|
+
requires = ["setuptools>=77.0.0",
|
|
4
|
+
"oldest-supported-numpy"] # PEP 508 specifications.
|
|
4
5
|
build-backend = "setuptools.build_meta"
|
|
5
6
|
|
|
6
7
|
[project]
|
|
7
8
|
name = "SMACT"
|
|
8
|
-
version = "3.0
|
|
9
|
+
version = "3.2.0"
|
|
9
10
|
description = "Semiconducting Materials by Analogy and Chemical Theory"
|
|
10
11
|
readme = "README.md"
|
|
11
12
|
authors = [
|
|
@@ -17,16 +18,16 @@ maintainers = [
|
|
|
17
18
|
classifiers = [
|
|
18
19
|
"Development Status :: 5 - Production/Stable",
|
|
19
20
|
"Intended Audience :: Science/Research",
|
|
20
|
-
"License :: OSI Approved :: MIT License",
|
|
21
21
|
"Operating System :: OS Independent",
|
|
22
22
|
"Programming Language :: Python :: 3",
|
|
23
23
|
"Programming Language :: Python :: 3.10",
|
|
24
24
|
"Programming Language :: Python :: 3.11",
|
|
25
25
|
"Programming Language :: Python :: 3.12",
|
|
26
|
+
"Programming Language :: Python :: 3.13",
|
|
26
27
|
"Topic :: Scientific/Engineering",
|
|
27
28
|
"Topic :: Scientific/Engineering :: Chemistry",
|
|
28
29
|
]
|
|
29
|
-
requires-python = ">=3.10"
|
|
30
|
+
requires-python = ">=3.10,<3.14"
|
|
30
31
|
keywords = [
|
|
31
32
|
"python",
|
|
32
33
|
"machine-learning",
|
|
@@ -40,14 +41,16 @@ keywords = [
|
|
|
40
41
|
dependencies = [
|
|
41
42
|
"ase",
|
|
42
43
|
"numpy<3",
|
|
44
|
+
"pandarallel[optional]>=1.6.5",
|
|
43
45
|
"pandas",
|
|
44
46
|
"pathos",
|
|
45
47
|
"pymatgen>=2024.2.20",
|
|
46
48
|
"scipy",
|
|
47
|
-
"spglib",
|
|
49
|
+
"spglib>=2.6.0",
|
|
48
50
|
"typing-extensions",
|
|
49
51
|
]
|
|
50
|
-
license =
|
|
52
|
+
license = "MIT"
|
|
53
|
+
license-files = ["LICENSE"]
|
|
51
54
|
|
|
52
55
|
[project.urls]
|
|
53
56
|
Homepage = "https://github.com/WMD-group/SMACT"
|
|
@@ -73,30 +76,25 @@ docs = [
|
|
|
73
76
|
"sphinx-book-theme==1.1.3",
|
|
74
77
|
"myst-nb==1.1.2"
|
|
75
78
|
]
|
|
76
|
-
mp = ["mp-api"]
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"kaleido",
|
|
82
|
-
"pydantic<2.10.0"]
|
|
83
|
-
|
|
79
|
+
mp = ["mp-api>=0.45.3"]
|
|
80
|
+
crystal_space = ["smact[mp]",
|
|
81
|
+
"ElementEmbeddings>=0.4",
|
|
82
|
+
"umap-learn==0.5.7",
|
|
83
|
+
"kaleido>=0.2.1",]
|
|
84
84
|
featurisers = [
|
|
85
85
|
"matminer",
|
|
86
86
|
"ElementEmbeddings",
|
|
87
87
|
]
|
|
88
|
-
|
|
89
88
|
visualisation = [
|
|
90
|
-
"seaborn",
|
|
91
|
-
"pymatviz",
|
|
92
|
-
"dash",
|
|
89
|
+
"seaborn>=0.13.2",
|
|
90
|
+
"pymatviz>=0.15",
|
|
91
|
+
"dash>=2.18.2",
|
|
93
92
|
]
|
|
94
|
-
|
|
93
|
+
ml = ["xgboost","shap","smact[featurisers]"]
|
|
95
94
|
optional = [
|
|
96
95
|
"pydantic>=2.9.2",
|
|
97
|
-
"mp
|
|
98
|
-
"
|
|
99
|
-
"seaborn>=0.13.2",
|
|
96
|
+
"smact[mp]",
|
|
97
|
+
"smact[visualisation]",
|
|
100
98
|
"pymatgen>=2024.2.20",
|
|
101
99
|
"matminer>=0.9.2",
|
|
102
100
|
"kaleido>=0.2.1",
|
|
@@ -104,26 +102,39 @@ optional = [
|
|
|
104
102
|
"llvmlite>=0.40",
|
|
105
103
|
"ElementEmbeddings>=0.4",
|
|
106
104
|
"dash>=2.18.2",
|
|
107
|
-
|
|
105
|
+
"smact[ml]",
|
|
106
|
+
"pandarallel>=1.6.5",
|
|
107
|
+
"matplotlib-venn[shapely]>=1.1.2",
|
|
108
108
|
]
|
|
109
109
|
strict = [
|
|
110
110
|
"pydantic==2.9.2",
|
|
111
|
-
"mp-api==0.
|
|
112
|
-
"pymatviz==0.
|
|
111
|
+
"mp-api==0.45.5",
|
|
112
|
+
"pymatviz==0.15.1",
|
|
113
|
+
"mp-api==0.45.5",
|
|
113
114
|
"seaborn==0.13.2",
|
|
114
|
-
"pymatgen==
|
|
115
|
-
"matminer==0.9.
|
|
116
|
-
"umap-learn==0.5.
|
|
115
|
+
"pymatgen==2025.4.24",
|
|
116
|
+
"matminer==0.9.3",
|
|
117
|
+
"umap-learn==0.5.7",
|
|
117
118
|
"kaleido==0.2.1",
|
|
118
|
-
"ase==3.
|
|
119
|
+
"ase==3.24.0",
|
|
119
120
|
"numpy",
|
|
120
121
|
"ElementEmbeddings==0.6.1",
|
|
121
|
-
"dash==
|
|
122
|
+
"dash==3.0.2",
|
|
122
123
|
]
|
|
123
124
|
|
|
124
|
-
[tool.
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
[tool.setuptools]
|
|
126
|
+
include-package-data = true
|
|
127
|
+
|
|
128
|
+
[tool.setuptools.packages.find]
|
|
129
|
+
where = ["."]
|
|
130
|
+
include = ["smact","smact.*"]
|
|
131
|
+
|
|
132
|
+
[tool.setuptools.package-data]
|
|
133
|
+
"smact" = ["data/*.txt", "data/*.csv", "data/*.data", "data/*.xlsx", "data/*.json", "data/species_rep/*.json"]
|
|
134
|
+
|
|
135
|
+
[tool.pytest.ini_options]
|
|
136
|
+
minversion = 6.0
|
|
137
|
+
testpaths = ["smact/tests"]
|
|
127
138
|
|
|
128
139
|
[tool.ruff]
|
|
129
140
|
target-version = "py310"
|
|
@@ -213,7 +224,7 @@ reportPossiblyUnboundVariable = true
|
|
|
213
224
|
reportUnboundVariable = true
|
|
214
225
|
|
|
215
226
|
[tool.codespell]
|
|
216
|
-
skip = "*.csv,*/site/*,*/docs/_build/*,paper.md,*dev_docs/*,paper.bib,*.txt,*examples/Structure_Prediction/Li-Garnets_SP-Pym-new.ipynb"
|
|
227
|
+
skip = "*.csv,*/site/*,*/docs/_build/*,docs/tutorials/data/*,paper.md,*dev_docs/*,paper.bib,*.txt,*examples/Structure_Prediction/Li-Garnets_SP-Pym-new.ipynb"
|
|
217
228
|
check-filenames = true
|
|
218
229
|
ignore-regex = "[A-Za-z0-9+/]{100,}"
|
|
219
230
|
|
|
@@ -319,3 +330,37 @@ ignore-words-list = [
|
|
|
319
330
|
"assertIn",
|
|
320
331
|
"Mater",
|
|
321
332
|
]
|
|
333
|
+
[tool.coverage.report]
|
|
334
|
+
exclude_also = [
|
|
335
|
+
'def __repr__',
|
|
336
|
+
'if self.debug:',
|
|
337
|
+
'if settings.DEBUG',
|
|
338
|
+
'raise AssertionError',
|
|
339
|
+
'raise NotImplementedError',
|
|
340
|
+
'if 0:',
|
|
341
|
+
'if __name__ == .__main__.:',
|
|
342
|
+
'if TYPE_CHECKING:',
|
|
343
|
+
'class .*\bProtocol\):',
|
|
344
|
+
'@(abc\.)?abstractmethod',
|
|
345
|
+
]
|
|
346
|
+
|
|
347
|
+
[dependency-groups]
|
|
348
|
+
dev = [
|
|
349
|
+
"jupyter>=1.1.1",
|
|
350
|
+
"jupyter-client>=8.6.3",
|
|
351
|
+
"notebook>=7.3.3",
|
|
352
|
+
"blacken-docs>=1.19.1",
|
|
353
|
+
"codespell>=2.4.1",
|
|
354
|
+
"ipykernel>=6.29.5",
|
|
355
|
+
"myst-nb==1.1.2",
|
|
356
|
+
"nbstripout>=0.8.1",
|
|
357
|
+
"pre-commit>=4.2.0",
|
|
358
|
+
"pyright>=1.1.398",
|
|
359
|
+
"pytest>=8.3.5",
|
|
360
|
+
"pytest-cov>=6.1.0",
|
|
361
|
+
"readthedocs-sphinx-search==0.3.2",
|
|
362
|
+
"ruff>=0.11.2",
|
|
363
|
+
"sphinx==8.1.3",
|
|
364
|
+
"sphinx-book-theme==1.1.3",
|
|
365
|
+
"sphinx-rtd-theme==3.0.2",
|
|
366
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""SMACT benchmarking."""
|