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.
Files changed (114) hide show
  1. {smact-3.2.0 → smact-4.0.0}/LICENSE +1 -1
  2. {smact-3.2.0/SMACT.egg-info → smact-4.0.0}/PKG-INFO +42 -34
  3. {smact-3.2.0 → smact-4.0.0}/README.md +27 -26
  4. {smact-3.2.0 → smact-4.0.0/SMACT.egg-info}/PKG-INFO +42 -34
  5. {smact-3.2.0 → smact-4.0.0}/SMACT.egg-info/SOURCES.txt +23 -1
  6. {smact-3.2.0 → smact-4.0.0}/SMACT.egg-info/requires.txt +13 -3
  7. {smact-3.2.0 → smact-4.0.0}/pyproject.toml +75 -76
  8. {smact-3.2.0 → smact-4.0.0}/smact/__init__.py +242 -208
  9. {smact-3.2.0 → smact-4.0.0}/smact/benchmarking/smact_benchmark.py +1 -1
  10. smact-4.0.0/smact/benchmarking/utilities.py +51 -0
  11. smact-4.0.0/smact/builder.py +112 -0
  12. smact-4.0.0/smact/data_loader.py +688 -0
  13. {smact-3.2.0 → smact-4.0.0}/smact/distorter.py +43 -33
  14. {smact-3.2.0 → smact-4.0.0}/smact/dopant_prediction/__init__.py +2 -0
  15. smact-4.0.0/smact/dopant_prediction/doper.py +406 -0
  16. smact-4.0.0/smact/io/__init__.py +1 -0
  17. smact-4.0.0/smact/io/elementembeddings.py +143 -0
  18. {smact-3.2.0 → smact-4.0.0}/smact/lattice.py +7 -9
  19. smact-4.0.0/smact/lattice_parameters.py +416 -0
  20. {smact-3.2.0 → smact-4.0.0}/smact/metallicity.py +33 -16
  21. {smact-3.2.0 → smact-4.0.0}/smact/oxidation_states.py +73 -32
  22. smact-4.0.0/smact/properties.py +257 -0
  23. smact-4.0.0/smact/property_prediction/__init__.py +78 -0
  24. smact-4.0.0/smact/property_prediction/base_predictor.py +200 -0
  25. smact-4.0.0/smact/property_prediction/config.py +72 -0
  26. smact-4.0.0/smact/property_prediction/convenience.py +54 -0
  27. smact-4.0.0/smact/property_prediction/io.py +309 -0
  28. smact-4.0.0/smact/property_prediction/registry.py +267 -0
  29. smact-4.0.0/smact/property_prediction/roost/__init__.py +24 -0
  30. smact-4.0.0/smact/property_prediction/roost/predictor.py +298 -0
  31. smact-4.0.0/smact/property_prediction/roost/train.py +503 -0
  32. smact-4.0.0/smact/property_prediction/scripts/__init__.py +1 -0
  33. smact-4.0.0/smact/property_prediction/scripts/convert_checkpoint.py +194 -0
  34. smact-4.0.0/smact/property_prediction/tests/__init__.py +1 -0
  35. smact-4.0.0/smact/property_prediction/tests/test_base_predictor.py +185 -0
  36. smact-4.0.0/smact/property_prediction/tests/test_io.py +171 -0
  37. smact-4.0.0/smact/property_prediction/tests/test_registry.py +121 -0
  38. smact-4.0.0/smact/screening.py +702 -0
  39. {smact-3.2.0 → smact-4.0.0}/smact/structure_prediction/__init__.py +2 -0
  40. {smact-3.2.0 → smact-4.0.0}/smact/structure_prediction/database.py +75 -37
  41. {smact-3.2.0 → smact-4.0.0}/smact/structure_prediction/mutation.py +93 -62
  42. {smact-3.2.0 → smact-4.0.0}/smact/structure_prediction/prediction.py +122 -102
  43. {smact-3.2.0 → smact-4.0.0}/smact/structure_prediction/probability_models.py +16 -13
  44. {smact-3.2.0 → smact-4.0.0}/smact/structure_prediction/structure.py +269 -130
  45. smact-4.0.0/smact/structure_prediction/utilities.py +8 -0
  46. smact-4.0.0/smact/tests/__init__.py +0 -0
  47. smact-4.0.0/smact/tests/conftest.py +45 -0
  48. smact-4.0.0/smact/tests/test_core.py +863 -0
  49. smact-4.0.0/smact/tests/test_doper.py +154 -0
  50. smact-4.0.0/smact/tests/test_elementembeddings.py +152 -0
  51. smact-4.0.0/smact/tests/test_lattice_parameters.py +254 -0
  52. smact-4.0.0/smact/tests/test_metallicity.py +145 -0
  53. smact-4.0.0/smact/tests/test_probability_models.py +79 -0
  54. smact-4.0.0/smact/tests/test_structure.py +1180 -0
  55. smact-4.0.0/smact/tests/test_utils.py +587 -0
  56. smact-4.0.0/smact/utils/__init__.py +5 -0
  57. {smact-3.2.0 → smact-4.0.0}/smact/utils/band_gap_simple.py +5 -7
  58. smact-4.0.0/smact/utils/composition.py +118 -0
  59. {smact-3.2.0 → smact-4.0.0}/smact/utils/crystal_space/__init__.py +2 -0
  60. {smact-3.2.0 → smact-4.0.0}/smact/utils/crystal_space/download_compounds_with_mp_api.py +21 -9
  61. smact-4.0.0/smact/utils/crystal_space/generate_composition_with_smact.py +254 -0
  62. {smact-3.2.0 → smact-4.0.0}/smact/utils/crystal_space/plot_embedding.py +35 -32
  63. {smact-3.2.0 → smact-4.0.0}/smact/utils/oxidation.py +103 -45
  64. smact-3.2.0/smact/structure_prediction/utilities.py → smact-4.0.0/smact/utils/species.py +26 -22
  65. smact-3.2.0/smact/benchmarking/utilities.py +0 -45
  66. smact-3.2.0/smact/builder.py +0 -85
  67. smact-3.2.0/smact/data_loader.py +0 -959
  68. smact-3.2.0/smact/dopant_prediction/doper.py +0 -376
  69. smact-3.2.0/smact/lattice_parameters.py +0 -349
  70. smact-3.2.0/smact/mainpage.py +0 -9
  71. smact-3.2.0/smact/properties.py +0 -204
  72. smact-3.2.0/smact/screening.py +0 -545
  73. smact-3.2.0/smact/tests/test_core.py +0 -545
  74. smact-3.2.0/smact/tests/test_doper.py +0 -86
  75. smact-3.2.0/smact/tests/test_metallicity.py +0 -172
  76. smact-3.2.0/smact/tests/test_structure.py +0 -600
  77. smact-3.2.0/smact/tests/test_utils.py +0 -330
  78. smact-3.2.0/smact/utils/__init__.py +0 -1
  79. smact-3.2.0/smact/utils/composition.py +0 -93
  80. smact-3.2.0/smact/utils/crystal_space/generate_composition_with_smact.py +0 -257
  81. {smact-3.2.0 → smact-4.0.0}/MANIFEST.in +0 -0
  82. {smact-3.2.0 → smact-4.0.0}/SMACT.egg-info/dependency_links.txt +0 -0
  83. {smact-3.2.0 → smact-4.0.0}/SMACT.egg-info/top_level.txt +0 -0
  84. {smact-3.2.0 → smact-4.0.0}/setup.cfg +0 -0
  85. {smact-3.2.0 → smact-4.0.0}/smact/benchmarking/__init__.py +0 -0
  86. {smact-3.2.0 → smact-4.0.0}/smact/benchmarking/pymatgen_benchmark.py +0 -0
  87. {smact-3.2.0 → smact-4.0.0}/smact/data/Covalent_radii.csv +0 -0
  88. {smact-3.2.0 → smact-4.0.0}/smact/data/SSE.csv +0 -0
  89. {smact-3.2.0 → smact-4.0.0}/smact/data/SSE_2015.csv +0 -0
  90. {smact-3.2.0 → smact-4.0.0}/smact/data/SSE_Pauling.csv +0 -0
  91. {smact-3.2.0 → smact-4.0.0}/smact/data/element_data.txt +0 -0
  92. {smact-3.2.0 → smact-4.0.0}/smact/data/element_valence_modified.csv +0 -0
  93. {smact-3.2.0 → smact-4.0.0}/smact/data/hhi.txt +0 -0
  94. {smact-3.2.0 → smact-4.0.0}/smact/data/ionic_radii.csv +0 -0
  95. {smact-3.2.0 → smact-4.0.0}/smact/data/magpie.csv +0 -0
  96. {smact-3.2.0 → smact-4.0.0}/smact/data/ordered_periodic.txt +0 -0
  97. {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_state_probability_table.json +0 -0
  98. {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states.txt +0 -0
  99. {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_SP.txt +0 -0
  100. {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_icsd.txt +0 -0
  101. {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_icsd24_common.txt +0 -0
  102. {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_icsd24_counts.json +0 -0
  103. {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_icsd24_filtered.txt +0 -0
  104. {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_icsd24_raw.txt +0 -0
  105. {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_pmg.txt +0 -0
  106. {smact-3.2.0 → smact-4.0.0}/smact/data/oxidation_states_wiki.txt +0 -0
  107. {smact-3.2.0 → smact-4.0.0}/smact/data/shannon_radii.csv +0 -0
  108. {smact-3.2.0 → smact-4.0.0}/smact/data/shannon_radii_ML_extended.csv +0 -0
  109. {smact-3.2.0 → smact-4.0.0}/smact/data/solid_properties.txt +0 -0
  110. {smact-3.2.0 → smact-4.0.0}/smact/data/solid_properties.xlsx +0 -0
  111. {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
  112. {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
  113. {smact-3.2.0 → smact-4.0.0}/smact/data/species_rep/skipspecies_20221028_319ion_dim200_cosine_similarity.json +0 -0
  114. /smact-3.2.0/smact/tests/__init__.py → /smact-4.0.0/smact/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2019 The SMACT Developers
3
+ Copyright (c) 2026 The SMACT Developers
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: SMACT
3
- Version: 3.2.0
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: "Anthony O. Onwuli" <anthony.onwuli16@imperial.ac.uk>
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.10
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: myst-nb==1.1.2; extra == "docs"
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.15.1; extra == "strict"
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.2; extra == "strict"
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
  [![DOI](https://joss.theoj.org/papers/10.21105/joss.01361/status.svg)](https://doi.org/10.21105/joss.01361)
99
- [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5553202.svg)](https://doi.org/10.5281/zenodo.5553202)
106
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5553201.svg)](https://doi.org/10.5281/zenodo.5553201)
100
107
  [![Documentation Status](https://readthedocs.org/projects/smact/badge/?version=latest)](http://smact.readthedocs.org/en/latest/?badge=latest)
101
108
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
102
109
  ![python version](https://img.shields.io/pypi/pyversions/smact)
103
- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
110
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
104
111
  [![PyPi](https://img.shields.io/pypi/v/smact)](https://pypi.org/project/SMACT/)
105
112
  [![Conda](https://anaconda.org/conda-forge/smact/badges/version.svg)](https://anaconda.org/conda-forge/smact)
106
113
  [![GitHub issues](https://img.shields.io/github/issues-raw/WMD-Group/SMACT)](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
- ![A blue interface with the text "SMACT v3" at the top. Below that, there is a label "Materials Search" followed by two radio buttons: "Hi-fi" and "Lo-fi". The "Lo-fi" button is currently selected](SMACT.png)
126
+ ![A blue interface with the text "SMACT v4" at the top. Below that, there is a label "Materials Search" followed by two radio buttons: "Hi-fi" and "Lo-fi". The "Lo-fi" button is currently selected](SMACT.png)
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 usede
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.10 - 3.13 (Windows is not officially supported for Python 3.13 as of yet).
181
- Basic requirements are Numpy and Scipy.
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 which will automatically set up other Python packages as required:
192
+ The latest stable release can be installed via pip:
187
193
 
188
194
  pip install smact
189
195
 
190
- Optional dependencies can also be installed. These enable full replication of the examples and tutorials
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 through the conda-forge channel on Anaconda Cloud:
200
+ SMACT is also available via conda-forge:
195
201
 
196
202
  conda install -c conda-forge smact
197
203
 
198
- Alternatively, the very latest version can be installed using:
199
-
200
- pip install git+https://github.com/WMD-group/SMACT.git
204
+ ### Developer installation
201
205
 
202
- For developer installation SMACT can be installed from a copy of the source
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
- pip install --user -e .
210
+ uv sync --extra optional --extra property_prediction --dev
211
+ pre-commit install
210
212
 
211
- With -e pip will create links to the source folder so that that changes
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 helps us improve the docs! For other queries about any aspect of the code, please contact Anthony Onwuli (maintainer) by [e-mail](mailto:anthony.onwuli16@imperial.ac.uk).
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 should comply with [PEP8](http://www.python.org/dev/peps/pep-0008) where possible. [Google's house style](https://google.github.io/styleguide/pyguide.html) is also helpful, including a good model for docstrings.
229
- - Please use comments liberally when adding nontrivial features, and take the chance to clean up other people's code while looking at it.
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 integrated testing on GitHub via [GitHub Actions](https://github.com/features/actions). Testing modules should be pass/fail and wrapped into **tests/test_core.py** or another **tests/test_something.py** file added, if appropriate.
236
- Run the tests using `python -m pytest -v`.(The final `-v` is optional and adds more detail to the output.)
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
  [![DOI](https://joss.theoj.org/papers/10.21105/joss.01361/status.svg)](https://doi.org/10.21105/joss.01361)
2
- [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5553202.svg)](https://doi.org/10.5281/zenodo.5553202)
2
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5553201.svg)](https://doi.org/10.5281/zenodo.5553201)
3
3
  [![Documentation Status](https://readthedocs.org/projects/smact/badge/?version=latest)](http://smact.readthedocs.org/en/latest/?badge=latest)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
  ![python version](https://img.shields.io/pypi/pyversions/smact)
6
- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
6
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
7
7
  [![PyPi](https://img.shields.io/pypi/v/smact)](https://pypi.org/project/SMACT/)
8
8
  [![Conda](https://anaconda.org/conda-forge/smact/badges/version.svg)](https://anaconda.org/conda-forge/smact)
9
9
  [![GitHub issues](https://img.shields.io/github/issues-raw/WMD-Group/SMACT)](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
- ![A blue interface with the text "SMACT v3" at the top. Below that, there is a label "Materials Search" followed by two radio buttons: "Hi-fi" and "Lo-fi". The "Lo-fi" button is currently selected](SMACT.png)
22
+ ![A blue interface with the text "SMACT v4" at the top. Below that, there is a label "Materials Search" followed by two radio buttons: "Hi-fi" and "Lo-fi". The "Lo-fi" button is currently selected](SMACT.png)
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 usede
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.10 - 3.13 (Windows is not officially supported for Python 3.13 as of yet).
84
- Basic requirements are Numpy and Scipy.
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 which will automatically set up other Python packages as required:
88
+ The latest stable release can be installed via pip:
90
89
 
91
90
  pip install smact
92
91
 
93
- Optional dependencies can also be installed. These enable full replication of the examples and tutorials
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 through the conda-forge channel on Anaconda Cloud:
96
+ SMACT is also available via conda-forge:
98
97
 
99
98
  conda install -c conda-forge smact
100
99
 
101
- Alternatively, the very latest version can be installed using:
100
+ ### Developer installation
102
101
 
103
- pip install git+https://github.com/WMD-group/SMACT.git
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
- pip install --user -e .
106
+ uv sync --extra optional --extra property_prediction --dev
107
+ pre-commit install
113
108
 
114
- With -e pip will create links to the source folder so that that changes
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 helps us improve the docs! For other queries about any aspect of the code, please contact Anthony Onwuli (maintainer) by [e-mail](mailto:anthony.onwuli16@imperial.ac.uk).
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 should comply with [PEP8](http://www.python.org/dev/peps/pep-0008) where possible. [Google's house style](https://google.github.io/styleguide/pyguide.html) is also helpful, including a good model for docstrings.
132
- - Please use comments liberally when adding nontrivial features, and take the chance to clean up other people's code while looking at it.
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 integrated testing on GitHub via [GitHub Actions](https://github.com/features/actions). Testing modules should be pass/fail and wrapped into **tests/test_core.py** or another **tests/test_something.py** file added, if appropriate.
139
- Run the tests using `python -m pytest -v`.(The final `-v` is optional and adds more detail to the output.)
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.2.0
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: "Anthony O. Onwuli" <anthony.onwuli16@imperial.ac.uk>
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.10
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: myst-nb==1.1.2; extra == "docs"
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.15.1; extra == "strict"
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.2; extra == "strict"
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
  [![DOI](https://joss.theoj.org/papers/10.21105/joss.01361/status.svg)](https://doi.org/10.21105/joss.01361)
99
- [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5553202.svg)](https://doi.org/10.5281/zenodo.5553202)
106
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5553201.svg)](https://doi.org/10.5281/zenodo.5553201)
100
107
  [![Documentation Status](https://readthedocs.org/projects/smact/badge/?version=latest)](http://smact.readthedocs.org/en/latest/?badge=latest)
101
108
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
102
109
  ![python version](https://img.shields.io/pypi/pyversions/smact)
103
- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
110
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
104
111
  [![PyPi](https://img.shields.io/pypi/v/smact)](https://pypi.org/project/SMACT/)
105
112
  [![Conda](https://anaconda.org/conda-forge/smact/badges/version.svg)](https://anaconda.org/conda-forge/smact)
106
113
  [![GitHub issues](https://img.shields.io/github/issues-raw/WMD-Group/SMACT)](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
- ![A blue interface with the text "SMACT v3" at the top. Below that, there is a label "Materials Search" followed by two radio buttons: "Hi-fi" and "Lo-fi". The "Lo-fi" button is currently selected](SMACT.png)
126
+ ![A blue interface with the text "SMACT v4" at the top. Below that, there is a label "Materials Search" followed by two radio buttons: "Hi-fi" and "Lo-fi". The "Lo-fi" button is currently selected](SMACT.png)
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 usede
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.10 - 3.13 (Windows is not officially supported for Python 3.13 as of yet).
181
- Basic requirements are Numpy and Scipy.
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 which will automatically set up other Python packages as required:
192
+ The latest stable release can be installed via pip:
187
193
 
188
194
  pip install smact
189
195
 
190
- Optional dependencies can also be installed. These enable full replication of the examples and tutorials
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 through the conda-forge channel on Anaconda Cloud:
200
+ SMACT is also available via conda-forge:
195
201
 
196
202
  conda install -c conda-forge smact
197
203
 
198
- Alternatively, the very latest version can be installed using:
199
-
200
- pip install git+https://github.com/WMD-group/SMACT.git
204
+ ### Developer installation
201
205
 
202
- For developer installation SMACT can be installed from a copy of the source
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
- pip install --user -e .
210
+ uv sync --extra optional --extra property_prediction --dev
211
+ pre-commit install
210
212
 
211
- With -e pip will create links to the source folder so that that changes
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 helps us improve the docs! For other queries about any aspect of the code, please contact Anthony Onwuli (maintainer) by [e-mail](mailto:anthony.onwuli16@imperial.ac.uk).
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 should comply with [PEP8](http://www.python.org/dev/peps/pep-0008) where possible. [Google's house style](https://google.github.io/styleguide/pyguide.html) is also helpful, including a good model for docstrings.
229
- - Please use comments liberally when adding nontrivial features, and take the chance to clean up other people's code while looking at it.
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 integrated testing on GitHub via [GitHub Actions](https://github.com/features/actions). Testing modules should be pass/fail and wrapped into **tests/test_core.py** or another **tests/test_something.py** file added, if appropriate.
236
- Run the tests using `python -m pytest -v`.(The final `-v` is optional and adds more detail to the output.)
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
- myst-nb==1.1.2
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.15.1
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.2
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