mp-api 0.46.2rc11__tar.gz → 0.46.3__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.
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/PKG-INFO +3 -3
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/core/client.py +67 -16
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/materials.py +4 -1
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api.egg-info/PKG-INFO +3 -3
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api.egg-info/requires.txt +2 -2
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/pyproject.toml +2 -2
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/requirements/requirements-ubuntu-latest_py3.11.txt +3 -3
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/requirements/requirements-ubuntu-latest_py3.11_extras.txt +9 -9
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/requirements/requirements-ubuntu-latest_py3.12.txt +3 -3
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/requirements/requirements-ubuntu-latest_py3.12_extras.txt +9 -9
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/requirements/requirements-ubuntu-latest_py3.13.txt +3 -3
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/requirements/requirements-ubuntu-latest_py3.13_extras.txt +9 -9
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/requirements/requirements-ubuntu-latest_py3.14.txt +3 -3
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/requirements/requirements-ubuntu-latest_py3.14_extras.txt +9 -9
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/.coveragerc +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/.github/workflows/lint.yml +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/.github/workflows/release.yml +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/.github/workflows/testing.yml +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/.github/workflows/upgrade_dependencies.yml +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/.gitignore +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/.pre-commit-config.yaml +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/CODE_OF_CONDUCT.md +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/LICENSE +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/README.md +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/dev/generate_mcp_tools.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/dev/inspect_mcp.sh +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/docs/Makefile +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/docs/_templates/custom-class-template.rst +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/docs/_templates/custom-module-template.rst +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/docs/conf.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/docs/index.rst +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/docs/make.bat +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/docs/modules.rst +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/_test_utils.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/_server_utils.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/contribs/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/contribs/_logger.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/contribs/_types.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/contribs/_units.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/contribs/client.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/contribs/schemas.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/contribs/settings.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/contribs/utils.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/core/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/core/_oxygen_evolution.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/core/exceptions.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/core/schemas.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/core/settings.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/core/utils.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/mprester.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/_server.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/absorption.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/alloys.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/bonds.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/chemenv.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/dielectric.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/doi.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/elasticity.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/electrodes.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/electronic_structure.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/eos.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/grain_boundaries.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/magnetism.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/oxidation_states.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/phonon.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/piezo.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/provenance.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/robocrys.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/similarity.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/substrates.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/summary.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/surface_properties.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/synthesis.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/tasks.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/thermo.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/materials/xas.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/molecules/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/molecules/jcesr.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/molecules/molecules.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/client/routes/molecules/summary.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/mcp/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/mcp/_schemas.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/mcp/mp_mcp.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/mcp/server.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/mcp/tools.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/mcp/utils.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api/py.typed +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api.egg-info/SOURCES.txt +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api.egg-info/dependency_links.txt +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api.egg-info/entry_points.txt +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/mp_api.egg-info/top_level.txt +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/setup.cfg +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/test_files/Si_mp_149.cif +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/contribs/conftest.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/contribs/test_client.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/contribs/test_contribs_schemas.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/contribs/test_contribs_utils.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/contribs/test_types.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/core/test_oxygen_evolution.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/core/test_schemas.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/core/test_utils.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_absorption.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_alloys.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_bonds.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_chemenv.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_dielectric.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_doi.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_elasticity.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_electrodes.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_electronic_structure.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_eos.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_grain_boundary.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_magnetism.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_materials.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_oxidation_states.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_phonon.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_piezo.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_provenance.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_robocrys.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_similarity.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_substrates.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_summary.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_surface_properties.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_synthesis.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_tasks.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_thermo.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/materials/test_xas.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/molecules/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/molecules/test_jcesr.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/molecules/test_molecules.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/molecules/test_summary.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/test_client.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/test_core_client.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/test_heartbeat.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/client/test_mprester.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/mcp/__init__.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/mcp/test_server.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/mcp/test_tools.py +0 -0
- {mp_api-0.46.2rc11 → mp_api-0.46.3}/tests/mcp/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mp-api
|
|
3
|
-
Version: 0.46.
|
|
3
|
+
Version: 0.46.3
|
|
4
4
|
Summary: API Client for the Materials Project
|
|
5
5
|
Author-email: The Materials Project <feedback@materialsproject.org>
|
|
6
6
|
License-Expression: BSD-3-Clause-LBNL
|
|
@@ -17,7 +17,7 @@ Requires-Dist: pymatgen>2024.2.20
|
|
|
17
17
|
Requires-Dist: typing-extensions>=3.7.4.1
|
|
18
18
|
Requires-Dist: requests>=2.23.0
|
|
19
19
|
Requires-Dist: monty>=2024.12.10
|
|
20
|
-
Requires-Dist: emmet-core<0.87.2,>=0.87.
|
|
20
|
+
Requires-Dist: emmet-core<0.87.2,>=0.87.0
|
|
21
21
|
Requires-Dist: boto3
|
|
22
22
|
Requires-Dist: orjson<4,>=3.10
|
|
23
23
|
Requires-Dist: pyarrow>=20.0.0
|
|
@@ -40,7 +40,7 @@ Requires-Dist: cachetools; extra == "contribs"
|
|
|
40
40
|
Requires-Dist: pymongo; extra == "contribs"
|
|
41
41
|
Provides-Extra: all
|
|
42
42
|
Requires-Dist: custodian; extra == "all"
|
|
43
|
-
Requires-Dist: emmet-core[all]<0.87.2,>=0.87.
|
|
43
|
+
Requires-Dist: emmet-core[all]<0.87.2,>=0.87.0; extra == "all"
|
|
44
44
|
Requires-Dist: fastmcp; extra == "all"
|
|
45
45
|
Requires-Dist: flask; extra == "all"
|
|
46
46
|
Provides-Extra: test
|
|
@@ -33,7 +33,7 @@ import requests
|
|
|
33
33
|
from botocore import UNSIGNED
|
|
34
34
|
from botocore.config import Config
|
|
35
35
|
from botocore.exceptions import ClientError
|
|
36
|
-
from deltalake import DeltaTable, QueryBuilder, convert_to_deltalake
|
|
36
|
+
from deltalake import DeltaTable, QueryBuilder, Schema, convert_to_deltalake
|
|
37
37
|
from emmet.core.arrow import arrowize
|
|
38
38
|
from emmet.core.utils import jsanitize
|
|
39
39
|
from pydantic import BaseModel
|
|
@@ -79,6 +79,14 @@ STATIC_COLLECTIONS = [
|
|
|
79
79
|
"synth-descriptions",
|
|
80
80
|
"xas",
|
|
81
81
|
]
|
|
82
|
+
CONTROLLED_COLLECTIONS = [
|
|
83
|
+
"chemenv",
|
|
84
|
+
"materials",
|
|
85
|
+
"oxidation-states",
|
|
86
|
+
"summary",
|
|
87
|
+
"tasks",
|
|
88
|
+
"thermo",
|
|
89
|
+
]
|
|
82
90
|
|
|
83
91
|
hdlr = logging.StreamHandler()
|
|
84
92
|
fmt = logging.Formatter("%(name)s - %(levelname)s - %(message)s")
|
|
@@ -605,7 +613,7 @@ class BaseRester(_Rester):
|
|
|
605
613
|
DeltaTable : If one exists at the specified bucket / prefix,
|
|
606
614
|
will retrieve the cached instance.
|
|
607
615
|
"""
|
|
608
|
-
delta_timeout = f"{self.timeout}s"
|
|
616
|
+
delta_timeout = f"{self.timeout * 3}s"
|
|
609
617
|
full_key = f"{bucket}/{prefix}"
|
|
610
618
|
qb_label = label or full_key.replace("/", "_").replace("-", "_")
|
|
611
619
|
|
|
@@ -630,6 +638,7 @@ class BaseRester(_Rester):
|
|
|
630
638
|
"AWS_REGION": "us-east-1",
|
|
631
639
|
"timeout": delta_timeout,
|
|
632
640
|
"connect_timeout": delta_timeout,
|
|
641
|
+
"pool_idle_timeout": delta_timeout,
|
|
633
642
|
"retry_delay": "3",
|
|
634
643
|
"max_retries": f"{MAPI_CLIENT_SETTINGS.MAX_RETRIES}",
|
|
635
644
|
},
|
|
@@ -683,6 +692,7 @@ class BaseRester(_Rester):
|
|
|
683
692
|
bucket: str,
|
|
684
693
|
prefix: str,
|
|
685
694
|
access_controlled: bool = True,
|
|
695
|
+
versioned: bool = False,
|
|
686
696
|
timeout: int | None = None,
|
|
687
697
|
label: str | None = None,
|
|
688
698
|
) -> dict[str, Any]:
|
|
@@ -692,12 +702,16 @@ class BaseRester(_Rester):
|
|
|
692
702
|
bucket (str) : S3 OpenData bucket
|
|
693
703
|
prefix (str) : S3 object prefix
|
|
694
704
|
access_controlled (bool): whether or not table has access controlled data
|
|
705
|
+
versioned (bool): whether or not table is partitioned on db version
|
|
695
706
|
timeout (int or None) : timeout on getting access-controlled groups
|
|
696
707
|
label (str or None) : label of the table in QueryBuilder
|
|
697
708
|
|
|
698
709
|
Returns:
|
|
699
710
|
dict of str to Any
|
|
700
711
|
"""
|
|
712
|
+
# just in case
|
|
713
|
+
prefix = prefix.rstrip("/")
|
|
714
|
+
|
|
701
715
|
# Check if user has access to GNoMe
|
|
702
716
|
# temp suppress tqdm
|
|
703
717
|
re_enable = not self.mute_progress_bars
|
|
@@ -755,11 +769,15 @@ class BaseRester(_Rester):
|
|
|
755
769
|
controlled_batch_str = ",".join(
|
|
756
770
|
[f"'{tag}'" for tag in self.access_controlled_batch_ids]
|
|
757
771
|
)
|
|
772
|
+
_coll = prefix.split("/")[-1]
|
|
773
|
+
|
|
774
|
+
if _coll == "tasks":
|
|
775
|
+
condition = f"batch_id NOT IN ({controlled_batch_str})"
|
|
776
|
+
else:
|
|
777
|
+
condition = "builder_meta.license != 'BY-NC'"
|
|
758
778
|
|
|
759
779
|
predicate = (
|
|
760
|
-
f"WHERE
|
|
761
|
-
if not has_gnome_access and controlled_batch_str and access_controlled
|
|
762
|
-
else ""
|
|
780
|
+
f"WHERE {condition}" if not has_gnome_access and access_controlled else ""
|
|
763
781
|
)
|
|
764
782
|
# TODO: do we need something like this?
|
|
765
783
|
# predicate += f"{' AND ' if predicate else 'WHERE '}version='{self.db_version}'"
|
|
@@ -768,10 +786,13 @@ class BaseRester(_Rester):
|
|
|
768
786
|
num_docs_needed: int = tbl.count()
|
|
769
787
|
|
|
770
788
|
if not has_gnome_access:
|
|
789
|
+
mongo_predicate = (
|
|
790
|
+
{"batch_id_neq_any": self.access_controlled_batch_ids}
|
|
791
|
+
if _coll == "tasks"
|
|
792
|
+
else {"license": "BY-NC"}
|
|
793
|
+
)
|
|
771
794
|
try:
|
|
772
|
-
num_docs_needed = self.count(
|
|
773
|
-
{"batch_id_neq_any": self.access_controlled_batch_ids}
|
|
774
|
-
)
|
|
795
|
+
num_docs_needed = self.count(mongo_predicate)
|
|
775
796
|
except MPRestError:
|
|
776
797
|
# batch_id isn't a valid field
|
|
777
798
|
num_docs_needed = self.count()
|
|
@@ -793,7 +814,12 @@ class BaseRester(_Rester):
|
|
|
793
814
|
|
|
794
815
|
file_options = ds.ParquetFileFormat().make_write_options(compression="zstd")
|
|
795
816
|
|
|
796
|
-
def _flush(
|
|
817
|
+
def _flush(
|
|
818
|
+
accumulator: list[pa.RecordBatch],
|
|
819
|
+
group: int,
|
|
820
|
+
schema: pa.Schema,
|
|
821
|
+
partitioning: pa.dataset.Partitioning,
|
|
822
|
+
):
|
|
797
823
|
# somewhere post datafusion 51.0.0 and arrow-rs 57.0.0
|
|
798
824
|
# casts to *View types began, need to cast back to base schema
|
|
799
825
|
# -> pyarrow is behind on implementation support for *View types
|
|
@@ -807,6 +833,7 @@ class BaseRester(_Rester):
|
|
|
807
833
|
tbl,
|
|
808
834
|
base_dir=target_path,
|
|
809
835
|
format="parquet",
|
|
836
|
+
partitioning=partitioning,
|
|
810
837
|
basename_template=f"group-{group}-" + "part-{i}.zstd.parquet",
|
|
811
838
|
existing_data_behavior="overwrite_or_ignore",
|
|
812
839
|
max_rows_per_group=1024,
|
|
@@ -816,7 +843,18 @@ class BaseRester(_Rester):
|
|
|
816
843
|
group = 1
|
|
817
844
|
size = 0
|
|
818
845
|
accumulator = []
|
|
819
|
-
|
|
846
|
+
_schema = pa.schema(arrowize(self.document_model))
|
|
847
|
+
schema = (
|
|
848
|
+
_schema.insert(0, pa.field("version", pa.string()))
|
|
849
|
+
if versioned
|
|
850
|
+
else _schema
|
|
851
|
+
)
|
|
852
|
+
partitioning_schema = pa.schema([pa.field("version", pa.string())])
|
|
853
|
+
partitioning = (
|
|
854
|
+
pa.dataset.partitioning(partitioning_schema, flavor="hive")
|
|
855
|
+
if versioned
|
|
856
|
+
else None
|
|
857
|
+
)
|
|
820
858
|
for page in iterator:
|
|
821
859
|
# arro3 rb to pyarrow rb for compat w/ pyarrow ds writer
|
|
822
860
|
rg = pa.record_batch(page)
|
|
@@ -828,13 +866,13 @@ class BaseRester(_Rester):
|
|
|
828
866
|
pbar.update(page_size)
|
|
829
867
|
|
|
830
868
|
if size >= MAPI_CLIENT_SETTINGS.DATASET_FLUSH_THRESHOLD:
|
|
831
|
-
_flush(accumulator, group, schema)
|
|
869
|
+
_flush(accumulator, group, schema, partitioning)
|
|
832
870
|
group += 1
|
|
833
871
|
size = 0
|
|
834
872
|
accumulator.clear()
|
|
835
873
|
|
|
836
874
|
if accumulator:
|
|
837
|
-
_flush(accumulator, group + 1, schema)
|
|
875
|
+
_flush(accumulator, group + 1, schema, partitioning)
|
|
838
876
|
|
|
839
877
|
if pbar is not None:
|
|
840
878
|
pbar.close()
|
|
@@ -842,7 +880,13 @@ class BaseRester(_Rester):
|
|
|
842
880
|
logger.info(f"Dataset for {suffix} written to {target_path}")
|
|
843
881
|
logger.info("Converting to DeltaTable...")
|
|
844
882
|
|
|
845
|
-
|
|
883
|
+
delta_paritioning = Schema.from_arrow(partitioning_schema)
|
|
884
|
+
|
|
885
|
+
convert_to_deltalake(
|
|
886
|
+
target_path,
|
|
887
|
+
partition_by=delta_paritioning if versioned else None,
|
|
888
|
+
partition_strategy="hive" if versioned else None,
|
|
889
|
+
)
|
|
846
890
|
|
|
847
891
|
logger.info(
|
|
848
892
|
"Consult the delta-rs and pyarrow documentation for advanced usage: "
|
|
@@ -928,13 +972,15 @@ class BaseRester(_Rester):
|
|
|
928
972
|
suffix = self.suffix
|
|
929
973
|
elif self.suffix == "molecules/summary":
|
|
930
974
|
suffix = "molecules"
|
|
975
|
+
elif self.suffix == "molecules/jcesr":
|
|
976
|
+
suffix = "jcesr"
|
|
931
977
|
else:
|
|
932
978
|
infix, suffix = self.suffix.split("/", 1)
|
|
933
979
|
suffix = infix if suffix == "core" else suffix
|
|
934
980
|
suffix = suffix.replace("_", "-")
|
|
935
981
|
|
|
936
982
|
if "tasks" in suffix:
|
|
937
|
-
bucket_suffix, prefix = ("parsed", "core/tasks
|
|
983
|
+
bucket_suffix, prefix = ("parsed", "core/tasks")
|
|
938
984
|
elif suffix in STATIC_COLLECTIONS:
|
|
939
985
|
bucket_suffix = "build"
|
|
940
986
|
prefix = f"static-collections/{suffix}"
|
|
@@ -946,9 +992,14 @@ class BaseRester(_Rester):
|
|
|
946
992
|
bucket = f"materialsproject-{bucket_suffix}"
|
|
947
993
|
|
|
948
994
|
if self.delta_backed:
|
|
949
|
-
access_controlled = suffix
|
|
995
|
+
access_controlled = suffix in CONTROLLED_COLLECTIONS
|
|
996
|
+
versioned = suffix != "tasks" and suffix not in STATIC_COLLECTIONS
|
|
950
997
|
return self._query_delta_backed(
|
|
951
|
-
bucket,
|
|
998
|
+
bucket=bucket,
|
|
999
|
+
prefix=prefix,
|
|
1000
|
+
access_controlled=access_controlled,
|
|
1001
|
+
versioned=versioned,
|
|
1002
|
+
timeout=timeout,
|
|
952
1003
|
)
|
|
953
1004
|
|
|
954
1005
|
# Paginate over all entries in the bucket.
|
|
@@ -102,7 +102,7 @@ class MaterialsRester(CoreRester):
|
|
|
102
102
|
Returns:
|
|
103
103
|
([MaterialsDoc], [dict]) List of material documents or dictionaries.
|
|
104
104
|
"""
|
|
105
|
-
query_params: dict =
|
|
105
|
+
query_params: dict = dict()
|
|
106
106
|
|
|
107
107
|
if material_ids:
|
|
108
108
|
if isinstance(material_ids, str):
|
|
@@ -163,6 +163,9 @@ class MaterialsRester(CoreRester):
|
|
|
163
163
|
if query_params[entry] is not None
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
+
if query_params:
|
|
167
|
+
query_params.update({"deprecated": deprecated})
|
|
168
|
+
|
|
166
169
|
return super()._search( # type: ignore[return-value]
|
|
167
170
|
num_chunks=num_chunks,
|
|
168
171
|
chunk_size=chunk_size,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mp-api
|
|
3
|
-
Version: 0.46.
|
|
3
|
+
Version: 0.46.3
|
|
4
4
|
Summary: API Client for the Materials Project
|
|
5
5
|
Author-email: The Materials Project <feedback@materialsproject.org>
|
|
6
6
|
License-Expression: BSD-3-Clause-LBNL
|
|
@@ -17,7 +17,7 @@ Requires-Dist: pymatgen>2024.2.20
|
|
|
17
17
|
Requires-Dist: typing-extensions>=3.7.4.1
|
|
18
18
|
Requires-Dist: requests>=2.23.0
|
|
19
19
|
Requires-Dist: monty>=2024.12.10
|
|
20
|
-
Requires-Dist: emmet-core<0.87.2,>=0.87.
|
|
20
|
+
Requires-Dist: emmet-core<0.87.2,>=0.87.0
|
|
21
21
|
Requires-Dist: boto3
|
|
22
22
|
Requires-Dist: orjson<4,>=3.10
|
|
23
23
|
Requires-Dist: pyarrow>=20.0.0
|
|
@@ -40,7 +40,7 @@ Requires-Dist: cachetools; extra == "contribs"
|
|
|
40
40
|
Requires-Dist: pymongo; extra == "contribs"
|
|
41
41
|
Provides-Extra: all
|
|
42
42
|
Requires-Dist: custodian; extra == "all"
|
|
43
|
-
Requires-Dist: emmet-core[all]<0.87.2,>=0.87.
|
|
43
|
+
Requires-Dist: emmet-core[all]<0.87.2,>=0.87.0; extra == "all"
|
|
44
44
|
Requires-Dist: fastmcp; extra == "all"
|
|
45
45
|
Requires-Dist: flask; extra == "all"
|
|
46
46
|
Provides-Extra: test
|
|
@@ -2,7 +2,7 @@ pymatgen>2024.2.20
|
|
|
2
2
|
typing-extensions>=3.7.4.1
|
|
3
3
|
requests>=2.23.0
|
|
4
4
|
monty>=2024.12.10
|
|
5
|
-
emmet-core<0.87.2,>=0.87.
|
|
5
|
+
emmet-core<0.87.2,>=0.87.0
|
|
6
6
|
boto3
|
|
7
7
|
orjson<4,>=3.10
|
|
8
8
|
pyarrow>=20.0.0
|
|
@@ -10,7 +10,7 @@ deltalake<1.6.0,>=1.4.0
|
|
|
10
10
|
|
|
11
11
|
[all]
|
|
12
12
|
custodian
|
|
13
|
-
emmet-core[all]<0.87.2,>=0.87.
|
|
13
|
+
emmet-core[all]<0.87.2,>=0.87.0
|
|
14
14
|
fastmcp
|
|
15
15
|
flask
|
|
16
16
|
|
|
@@ -24,7 +24,7 @@ dependencies = [
|
|
|
24
24
|
"typing-extensions>=3.7.4.1",
|
|
25
25
|
"requests>=2.23.0",
|
|
26
26
|
"monty>=2024.12.10",
|
|
27
|
-
"emmet-core>=0.87.
|
|
27
|
+
"emmet-core>=0.87.0,<0.87.2",
|
|
28
28
|
"boto3",
|
|
29
29
|
"orjson >= 3.10,<4",
|
|
30
30
|
"pyarrow >= 20.0.0",
|
|
@@ -50,7 +50,7 @@ contribs = [
|
|
|
50
50
|
]
|
|
51
51
|
all = [
|
|
52
52
|
"custodian",
|
|
53
|
-
"emmet-core[all]>=0.87.
|
|
53
|
+
"emmet-core[all]>=0.87.0,<0.87.2",
|
|
54
54
|
"fastmcp",
|
|
55
55
|
"flask",
|
|
56
56
|
]
|
|
@@ -12,9 +12,9 @@ bibtexparser==1.4.4
|
|
|
12
12
|
# via pymatgen-core
|
|
13
13
|
blake3==1.0.8
|
|
14
14
|
# via emmet-core
|
|
15
|
-
boto3==1.43.
|
|
15
|
+
boto3==1.43.25
|
|
16
16
|
# via mp-api (pyproject.toml)
|
|
17
|
-
botocore==1.43.
|
|
17
|
+
botocore==1.43.25
|
|
18
18
|
# via
|
|
19
19
|
# boto3
|
|
20
20
|
# s3transfer
|
|
@@ -30,7 +30,7 @@ deltalake==1.5.1
|
|
|
30
30
|
# via mp-api (pyproject.toml)
|
|
31
31
|
deprecated==1.3.1
|
|
32
32
|
# via deltalake
|
|
33
|
-
emmet-core==0.87.
|
|
33
|
+
emmet-core==0.87.0
|
|
34
34
|
# via mp-api (pyproject.toml)
|
|
35
35
|
fonttools==4.63.0
|
|
36
36
|
# via matplotlib
|
{mp_api-0.46.2rc11 → mp_api-0.46.3}/requirements/requirements-ubuntu-latest_py3.11_extras.txt
RENAMED
|
@@ -50,9 +50,9 @@ blinker==1.9.0
|
|
|
50
50
|
# via flask
|
|
51
51
|
boltons==25.0.0
|
|
52
52
|
# via mp-api (pyproject.toml)
|
|
53
|
-
boto3==1.43.
|
|
53
|
+
boto3==1.43.25
|
|
54
54
|
# via mp-api (pyproject.toml)
|
|
55
|
-
botocore==1.43.
|
|
55
|
+
botocore==1.43.25
|
|
56
56
|
# via
|
|
57
57
|
# boto3
|
|
58
58
|
# s3transfer
|
|
@@ -103,7 +103,7 @@ deltalake==1.5.1
|
|
|
103
103
|
# via mp-api (pyproject.toml)
|
|
104
104
|
deprecated==1.3.1
|
|
105
105
|
# via deltalake
|
|
106
|
-
distlib==0.4.
|
|
106
|
+
distlib==0.4.2
|
|
107
107
|
# via virtualenv
|
|
108
108
|
dnspython==2.8.0
|
|
109
109
|
# via
|
|
@@ -116,7 +116,7 @@ docutils==0.22.4
|
|
|
116
116
|
# via sphinx
|
|
117
117
|
email-validator==2.3.0
|
|
118
118
|
# via pydantic
|
|
119
|
-
emmet-core[all]==0.87.
|
|
119
|
+
emmet-core[all]==0.87.0
|
|
120
120
|
# via mp-api (pyproject.toml)
|
|
121
121
|
exceptiongroup==1.3.1
|
|
122
122
|
# via fastmcp-slim
|
|
@@ -124,9 +124,9 @@ execnet==2.1.2
|
|
|
124
124
|
# via pytest-xdist
|
|
125
125
|
executing==2.2.1
|
|
126
126
|
# via stack-data
|
|
127
|
-
fastmcp==3.4.
|
|
127
|
+
fastmcp==3.4.2
|
|
128
128
|
# via mp-api (pyproject.toml)
|
|
129
|
-
fastmcp-slim[client,server]==3.4.
|
|
129
|
+
fastmcp-slim[client,server]==3.4.2
|
|
130
130
|
# via fastmcp
|
|
131
131
|
filelock==3.29.1
|
|
132
132
|
# via
|
|
@@ -215,7 +215,7 @@ joblib==1.5.3
|
|
|
215
215
|
# via
|
|
216
216
|
# pymatgen-analysis-diffusion
|
|
217
217
|
# pymatgen-core
|
|
218
|
-
joserfc==1.7.
|
|
218
|
+
joserfc==1.7.1
|
|
219
219
|
# via
|
|
220
220
|
# authlib
|
|
221
221
|
# fastmcp-slim
|
|
@@ -644,7 +644,7 @@ types-requests==2.33.0.20260518
|
|
|
644
644
|
# types-tqdm
|
|
645
645
|
types-setuptools==82.0.0.20260518
|
|
646
646
|
# via mp-api (pyproject.toml)
|
|
647
|
-
types-tqdm==4.
|
|
647
|
+
types-tqdm==4.68.0.20260608
|
|
648
648
|
# via mp-api (pyproject.toml)
|
|
649
649
|
typing-extensions==4.15.0
|
|
650
650
|
# via
|
|
@@ -699,7 +699,7 @@ virtualenv==21.4.2
|
|
|
699
699
|
# via pre-commit
|
|
700
700
|
watchfiles==1.2.0
|
|
701
701
|
# via fastmcp-slim
|
|
702
|
-
wcwidth==0.
|
|
702
|
+
wcwidth==0.8.1
|
|
703
703
|
# via prompt-toolkit
|
|
704
704
|
webcolors==25.10.0
|
|
705
705
|
# via jsonschema
|
|
@@ -12,9 +12,9 @@ bibtexparser==1.4.4
|
|
|
12
12
|
# via pymatgen-core
|
|
13
13
|
blake3==1.0.8
|
|
14
14
|
# via emmet-core
|
|
15
|
-
boto3==1.43.
|
|
15
|
+
boto3==1.43.25
|
|
16
16
|
# via mp-api (pyproject.toml)
|
|
17
|
-
botocore==1.43.
|
|
17
|
+
botocore==1.43.25
|
|
18
18
|
# via
|
|
19
19
|
# boto3
|
|
20
20
|
# s3transfer
|
|
@@ -30,7 +30,7 @@ deltalake==1.5.1
|
|
|
30
30
|
# via mp-api (pyproject.toml)
|
|
31
31
|
deprecated==1.3.1
|
|
32
32
|
# via deltalake
|
|
33
|
-
emmet-core==0.87.
|
|
33
|
+
emmet-core==0.87.0
|
|
34
34
|
# via mp-api (pyproject.toml)
|
|
35
35
|
fonttools==4.63.0
|
|
36
36
|
# via matplotlib
|
{mp_api-0.46.2rc11 → mp_api-0.46.3}/requirements/requirements-ubuntu-latest_py3.12_extras.txt
RENAMED
|
@@ -48,9 +48,9 @@ blinker==1.9.0
|
|
|
48
48
|
# via flask
|
|
49
49
|
boltons==25.0.0
|
|
50
50
|
# via mp-api (pyproject.toml)
|
|
51
|
-
boto3==1.43.
|
|
51
|
+
boto3==1.43.25
|
|
52
52
|
# via mp-api (pyproject.toml)
|
|
53
|
-
botocore==1.43.
|
|
53
|
+
botocore==1.43.25
|
|
54
54
|
# via
|
|
55
55
|
# boto3
|
|
56
56
|
# s3transfer
|
|
@@ -101,7 +101,7 @@ deltalake==1.5.1
|
|
|
101
101
|
# via mp-api (pyproject.toml)
|
|
102
102
|
deprecated==1.3.1
|
|
103
103
|
# via deltalake
|
|
104
|
-
distlib==0.4.
|
|
104
|
+
distlib==0.4.2
|
|
105
105
|
# via virtualenv
|
|
106
106
|
dnspython==2.8.0
|
|
107
107
|
# via
|
|
@@ -114,7 +114,7 @@ docutils==0.22.4
|
|
|
114
114
|
# via sphinx
|
|
115
115
|
email-validator==2.3.0
|
|
116
116
|
# via pydantic
|
|
117
|
-
emmet-core[all]==0.87.
|
|
117
|
+
emmet-core[all]==0.87.0
|
|
118
118
|
# via mp-api (pyproject.toml)
|
|
119
119
|
exceptiongroup==1.3.1
|
|
120
120
|
# via fastmcp-slim
|
|
@@ -122,9 +122,9 @@ execnet==2.1.2
|
|
|
122
122
|
# via pytest-xdist
|
|
123
123
|
executing==2.2.1
|
|
124
124
|
# via stack-data
|
|
125
|
-
fastmcp==3.4.
|
|
125
|
+
fastmcp==3.4.2
|
|
126
126
|
# via mp-api (pyproject.toml)
|
|
127
|
-
fastmcp-slim[client,server]==3.4.
|
|
127
|
+
fastmcp-slim[client,server]==3.4.2
|
|
128
128
|
# via fastmcp
|
|
129
129
|
filelock==3.29.1
|
|
130
130
|
# via
|
|
@@ -211,7 +211,7 @@ joblib==1.5.3
|
|
|
211
211
|
# via
|
|
212
212
|
# pymatgen-analysis-diffusion
|
|
213
213
|
# pymatgen-core
|
|
214
|
-
joserfc==1.7.
|
|
214
|
+
joserfc==1.7.1
|
|
215
215
|
# via
|
|
216
216
|
# authlib
|
|
217
217
|
# fastmcp-slim
|
|
@@ -640,7 +640,7 @@ types-requests==2.33.0.20260518
|
|
|
640
640
|
# types-tqdm
|
|
641
641
|
types-setuptools==82.0.0.20260518
|
|
642
642
|
# via mp-api (pyproject.toml)
|
|
643
|
-
types-tqdm==4.
|
|
643
|
+
types-tqdm==4.68.0.20260608
|
|
644
644
|
# via mp-api (pyproject.toml)
|
|
645
645
|
typing-extensions==4.15.0
|
|
646
646
|
# via
|
|
@@ -692,7 +692,7 @@ virtualenv==21.4.2
|
|
|
692
692
|
# via pre-commit
|
|
693
693
|
watchfiles==1.2.0
|
|
694
694
|
# via fastmcp-slim
|
|
695
|
-
wcwidth==0.
|
|
695
|
+
wcwidth==0.8.1
|
|
696
696
|
# via prompt-toolkit
|
|
697
697
|
webcolors==25.10.0
|
|
698
698
|
# via jsonschema
|
|
@@ -12,9 +12,9 @@ bibtexparser==1.4.4
|
|
|
12
12
|
# via pymatgen-core
|
|
13
13
|
blake3==1.0.8
|
|
14
14
|
# via emmet-core
|
|
15
|
-
boto3==1.43.
|
|
15
|
+
boto3==1.43.25
|
|
16
16
|
# via mp-api (pyproject.toml)
|
|
17
|
-
botocore==1.43.
|
|
17
|
+
botocore==1.43.25
|
|
18
18
|
# via
|
|
19
19
|
# boto3
|
|
20
20
|
# s3transfer
|
|
@@ -30,7 +30,7 @@ deltalake==1.5.1
|
|
|
30
30
|
# via mp-api (pyproject.toml)
|
|
31
31
|
deprecated==1.3.1
|
|
32
32
|
# via deltalake
|
|
33
|
-
emmet-core==0.87.
|
|
33
|
+
emmet-core==0.87.0
|
|
34
34
|
# via mp-api (pyproject.toml)
|
|
35
35
|
fonttools==4.63.0
|
|
36
36
|
# via matplotlib
|
{mp_api-0.46.2rc11 → mp_api-0.46.3}/requirements/requirements-ubuntu-latest_py3.13_extras.txt
RENAMED
|
@@ -48,9 +48,9 @@ blinker==1.9.0
|
|
|
48
48
|
# via flask
|
|
49
49
|
boltons==25.0.0
|
|
50
50
|
# via mp-api (pyproject.toml)
|
|
51
|
-
boto3==1.43.
|
|
51
|
+
boto3==1.43.25
|
|
52
52
|
# via mp-api (pyproject.toml)
|
|
53
|
-
botocore==1.43.
|
|
53
|
+
botocore==1.43.25
|
|
54
54
|
# via
|
|
55
55
|
# boto3
|
|
56
56
|
# s3transfer
|
|
@@ -101,7 +101,7 @@ deltalake==1.5.1
|
|
|
101
101
|
# via mp-api (pyproject.toml)
|
|
102
102
|
deprecated==1.3.1
|
|
103
103
|
# via deltalake
|
|
104
|
-
distlib==0.4.
|
|
104
|
+
distlib==0.4.2
|
|
105
105
|
# via virtualenv
|
|
106
106
|
dnspython==2.8.0
|
|
107
107
|
# via
|
|
@@ -114,7 +114,7 @@ docutils==0.22.4
|
|
|
114
114
|
# via sphinx
|
|
115
115
|
email-validator==2.3.0
|
|
116
116
|
# via pydantic
|
|
117
|
-
emmet-core[all]==0.87.
|
|
117
|
+
emmet-core[all]==0.87.0
|
|
118
118
|
# via mp-api (pyproject.toml)
|
|
119
119
|
exceptiongroup==1.3.1
|
|
120
120
|
# via fastmcp-slim
|
|
@@ -122,9 +122,9 @@ execnet==2.1.2
|
|
|
122
122
|
# via pytest-xdist
|
|
123
123
|
executing==2.2.1
|
|
124
124
|
# via stack-data
|
|
125
|
-
fastmcp==3.4.
|
|
125
|
+
fastmcp==3.4.2
|
|
126
126
|
# via mp-api (pyproject.toml)
|
|
127
|
-
fastmcp-slim[client,server]==3.4.
|
|
127
|
+
fastmcp-slim[client,server]==3.4.2
|
|
128
128
|
# via fastmcp
|
|
129
129
|
filelock==3.29.1
|
|
130
130
|
# via
|
|
@@ -211,7 +211,7 @@ joblib==1.5.3
|
|
|
211
211
|
# via
|
|
212
212
|
# pymatgen-analysis-diffusion
|
|
213
213
|
# pymatgen-core
|
|
214
|
-
joserfc==1.7.
|
|
214
|
+
joserfc==1.7.1
|
|
215
215
|
# via
|
|
216
216
|
# authlib
|
|
217
217
|
# fastmcp-slim
|
|
@@ -640,7 +640,7 @@ types-requests==2.33.0.20260518
|
|
|
640
640
|
# types-tqdm
|
|
641
641
|
types-setuptools==82.0.0.20260518
|
|
642
642
|
# via mp-api (pyproject.toml)
|
|
643
|
-
types-tqdm==4.
|
|
643
|
+
types-tqdm==4.68.0.20260608
|
|
644
644
|
# via mp-api (pyproject.toml)
|
|
645
645
|
typing-extensions==4.15.0
|
|
646
646
|
# via
|
|
@@ -686,7 +686,7 @@ virtualenv==21.4.2
|
|
|
686
686
|
# via pre-commit
|
|
687
687
|
watchfiles==1.2.0
|
|
688
688
|
# via fastmcp-slim
|
|
689
|
-
wcwidth==0.
|
|
689
|
+
wcwidth==0.8.1
|
|
690
690
|
# via prompt-toolkit
|
|
691
691
|
webcolors==25.10.0
|
|
692
692
|
# via jsonschema
|
|
@@ -12,9 +12,9 @@ bibtexparser==1.4.4
|
|
|
12
12
|
# via pymatgen-core
|
|
13
13
|
blake3==1.0.8
|
|
14
14
|
# via emmet-core
|
|
15
|
-
boto3==1.43.
|
|
15
|
+
boto3==1.43.25
|
|
16
16
|
# via mp-api (pyproject.toml)
|
|
17
|
-
botocore==1.43.
|
|
17
|
+
botocore==1.43.25
|
|
18
18
|
# via
|
|
19
19
|
# boto3
|
|
20
20
|
# s3transfer
|
|
@@ -30,7 +30,7 @@ deltalake==1.5.1
|
|
|
30
30
|
# via mp-api (pyproject.toml)
|
|
31
31
|
deprecated==1.3.1
|
|
32
32
|
# via deltalake
|
|
33
|
-
emmet-core==0.87.
|
|
33
|
+
emmet-core==0.87.0
|
|
34
34
|
# via mp-api (pyproject.toml)
|
|
35
35
|
fonttools==4.63.0
|
|
36
36
|
# via matplotlib
|
{mp_api-0.46.2rc11 → mp_api-0.46.3}/requirements/requirements-ubuntu-latest_py3.14_extras.txt
RENAMED
|
@@ -48,9 +48,9 @@ blinker==1.9.0
|
|
|
48
48
|
# via flask
|
|
49
49
|
boltons==25.0.0
|
|
50
50
|
# via mp-api (pyproject.toml)
|
|
51
|
-
boto3==1.43.
|
|
51
|
+
boto3==1.43.25
|
|
52
52
|
# via mp-api (pyproject.toml)
|
|
53
|
-
botocore==1.43.
|
|
53
|
+
botocore==1.43.25
|
|
54
54
|
# via
|
|
55
55
|
# boto3
|
|
56
56
|
# s3transfer
|
|
@@ -101,7 +101,7 @@ deltalake==1.5.1
|
|
|
101
101
|
# via mp-api (pyproject.toml)
|
|
102
102
|
deprecated==1.3.1
|
|
103
103
|
# via deltalake
|
|
104
|
-
distlib==0.4.
|
|
104
|
+
distlib==0.4.2
|
|
105
105
|
# via virtualenv
|
|
106
106
|
dnspython==2.8.0
|
|
107
107
|
# via
|
|
@@ -114,7 +114,7 @@ docutils==0.22.4
|
|
|
114
114
|
# via sphinx
|
|
115
115
|
email-validator==2.3.0
|
|
116
116
|
# via pydantic
|
|
117
|
-
emmet-core[all]==0.87.
|
|
117
|
+
emmet-core[all]==0.87.0
|
|
118
118
|
# via mp-api (pyproject.toml)
|
|
119
119
|
exceptiongroup==1.3.1
|
|
120
120
|
# via fastmcp-slim
|
|
@@ -122,9 +122,9 @@ execnet==2.1.2
|
|
|
122
122
|
# via pytest-xdist
|
|
123
123
|
executing==2.2.1
|
|
124
124
|
# via stack-data
|
|
125
|
-
fastmcp==3.4.
|
|
125
|
+
fastmcp==3.4.2
|
|
126
126
|
# via mp-api (pyproject.toml)
|
|
127
|
-
fastmcp-slim[client,server]==3.4.
|
|
127
|
+
fastmcp-slim[client,server]==3.4.2
|
|
128
128
|
# via fastmcp
|
|
129
129
|
filelock==3.29.1
|
|
130
130
|
# via
|
|
@@ -211,7 +211,7 @@ joblib==1.5.3
|
|
|
211
211
|
# via
|
|
212
212
|
# pymatgen-analysis-diffusion
|
|
213
213
|
# pymatgen-core
|
|
214
|
-
joserfc==1.7.
|
|
214
|
+
joserfc==1.7.1
|
|
215
215
|
# via
|
|
216
216
|
# authlib
|
|
217
217
|
# fastmcp-slim
|
|
@@ -640,7 +640,7 @@ types-requests==2.33.0.20260518
|
|
|
640
640
|
# types-tqdm
|
|
641
641
|
types-setuptools==82.0.0.20260518
|
|
642
642
|
# via mp-api (pyproject.toml)
|
|
643
|
-
types-tqdm==4.
|
|
643
|
+
types-tqdm==4.68.0.20260608
|
|
644
644
|
# via mp-api (pyproject.toml)
|
|
645
645
|
typing-extensions==4.15.0
|
|
646
646
|
# via
|
|
@@ -686,7 +686,7 @@ virtualenv==21.4.2
|
|
|
686
686
|
# via pre-commit
|
|
687
687
|
watchfiles==1.2.0
|
|
688
688
|
# via fastmcp-slim
|
|
689
|
-
wcwidth==0.
|
|
689
|
+
wcwidth==0.8.1
|
|
690
690
|
# via prompt-toolkit
|
|
691
691
|
webcolors==25.10.0
|
|
692
692
|
# via jsonschema
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|