mp-api 0.46.2rc0__tar.gz → 0.46.2rc2__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.2rc0 → mp_api-0.46.2rc2}/PKG-INFO +1 -1
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/contribs/_types.py +24 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/contribs/client.py +20 -9
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/contribs/schemas.py +1 -1
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api.egg-info/PKG-INFO +1 -1
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/.coveragerc +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/.github/workflows/lint.yml +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/.github/workflows/release.yml +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/.github/workflows/testing.yml +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/.github/workflows/upgrade_dependencies.yml +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/.gitignore +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/.pre-commit-config.yaml +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/CODE_OF_CONDUCT.md +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/LICENSE +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/README.md +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/dev/generate_mcp_tools.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/dev/inspect_mcp.sh +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/docs/Makefile +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/docs/_templates/custom-class-template.rst +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/docs/_templates/custom-module-template.rst +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/docs/conf.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/docs/index.rst +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/docs/make.bat +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/docs/modules.rst +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/_test_utils.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/_server_utils.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/contribs/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/contribs/_logger.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/contribs/_units.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/contribs/settings.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/contribs/utils.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/core/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/core/_oxygen_evolution.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/core/client.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/core/exceptions.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/core/schemas.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/core/settings.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/core/utils.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/mprester.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/_server.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/absorption.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/alloys.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/bonds.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/chemenv.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/dielectric.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/doi.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/elasticity.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/electrodes.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/electronic_structure.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/eos.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/grain_boundaries.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/magnetism.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/materials.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/oxidation_states.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/phonon.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/piezo.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/provenance.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/robocrys.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/similarity.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/substrates.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/summary.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/surface_properties.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/synthesis.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/tasks.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/thermo.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/xas.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/molecules/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/molecules/jcesr.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/molecules/molecules.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/molecules/summary.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/mcp/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/mcp/_schemas.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/mcp/mp_mcp.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/mcp/server.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/mcp/tools.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/mcp/utils.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/py.typed +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api.egg-info/SOURCES.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api.egg-info/dependency_links.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api.egg-info/entry_points.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api.egg-info/requires.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api.egg-info/top_level.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/pyproject.toml +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/requirements/requirements-ubuntu-latest_py3.11.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/requirements/requirements-ubuntu-latest_py3.11_extras.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/requirements/requirements-ubuntu-latest_py3.12.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/requirements/requirements-ubuntu-latest_py3.12_extras.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/requirements/requirements-ubuntu-latest_py3.13.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/requirements/requirements-ubuntu-latest_py3.13_extras.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/requirements/requirements-ubuntu-latest_py3.14.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/requirements/requirements-ubuntu-latest_py3.14_extras.txt +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/setup.cfg +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/test_files/Si_mp_149.cif +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/contribs/conftest.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/contribs/test_client.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/contribs/test_contribs_schemas.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/contribs/test_contribs_utils.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/contribs/test_types.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/core/test_oxygen_evolution.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/core/test_schemas.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/core/test_utils.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_absorption.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_alloys.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_bonds.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_chemenv.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_dielectric.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_doi.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_elasticity.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_electrodes.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_electronic_structure.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_eos.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_grain_boundary.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_magnetism.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_materials.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_oxidation_states.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_phonon.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_piezo.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_provenance.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_robocrys.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_similarity.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_substrates.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_summary.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_surface_properties.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_synthesis.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_tasks.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_thermo.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/materials/test_xas.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/molecules/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/molecules/test_jcesr.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/molecules/test_molecules.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/molecules/test_summary.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/test_client.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/test_core_client.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/test_heartbeat.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/client/test_mprester.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/mcp/__init__.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/mcp/test_server.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/mcp/test_tools.py +0 -0
- {mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/tests/mcp/test_utils.py +0 -0
|
@@ -316,12 +316,36 @@ class Attachment(dict, _Component):
|
|
|
316
316
|
return cls((k, v) for k, v in dct.items() if k in keys)
|
|
317
317
|
|
|
318
318
|
|
|
319
|
+
"""
|
|
320
|
+
The following type annotations are only used in type checking
|
|
321
|
+
(mypy) the ContribsClient.get_all_ids function.
|
|
322
|
+
This function has highly hetereogeneous output and these
|
|
323
|
+
represent the intermediate and final data structures returned
|
|
324
|
+
by that function.
|
|
325
|
+
|
|
326
|
+
They **shouldn't** have to be used elsewhere.
|
|
327
|
+
"""
|
|
328
|
+
|
|
319
329
|
ComponentIdSets = dict[str, set[str]]
|
|
330
|
+
"""Use only when type checking of ContribsClient.get_all_ids(...,fmt="sets")."""
|
|
331
|
+
|
|
320
332
|
ProjectIdSets = dict[str, set[str] | ComponentIdSets]
|
|
333
|
+
"""Use only when type checking of ContribsClient.get_all_ids(...,fmt="sets")."""
|
|
334
|
+
|
|
321
335
|
AllIdSets = dict[str, ProjectIdSets]
|
|
336
|
+
"""Use only when type checking of ContribsClient.get_all_ids(...,fmt="sets")."""
|
|
322
337
|
|
|
323
338
|
ComponentNameMap = dict[str, dict[str, str]]
|
|
339
|
+
"""Use only when type checking of ContribsClient.get_all_ids(...,fmt="map")."""
|
|
340
|
+
|
|
324
341
|
IdentifierLeaf = dict[str, str | ComponentNameMap]
|
|
342
|
+
"""Use only when type checking of ContribsClient.get_all_ids(...,fmt="map")."""
|
|
343
|
+
|
|
325
344
|
IdentifierBranch = dict[str, IdentifierLeaf]
|
|
345
|
+
"""Use only when type checking of ContribsClient.get_all_ids(...,fmt="map")."""
|
|
346
|
+
|
|
326
347
|
ProjectIdMap = dict[str, IdentifierLeaf | IdentifierBranch]
|
|
348
|
+
"""Use only when type checking of ContribsClient.get_all_ids(...,fmt="map")."""
|
|
349
|
+
|
|
327
350
|
AllIdMap = dict[str, ProjectIdMap]
|
|
351
|
+
"""Use only when type checking of ContribsClient.get_all_ids(...,fmt="map")."""
|
|
@@ -50,6 +50,7 @@ from urllib3.util.retry import Retry
|
|
|
50
50
|
from mp_api.client.contribs._logger import MPCC_LOGGER, TqdmToLogger
|
|
51
51
|
from mp_api.client.contribs._types import (
|
|
52
52
|
Attachment,
|
|
53
|
+
ComponentIdSets,
|
|
53
54
|
MPCDict,
|
|
54
55
|
MPCStructure,
|
|
55
56
|
Table,
|
|
@@ -71,10 +72,9 @@ if TYPE_CHECKING:
|
|
|
71
72
|
from collections.abc import Generator, Iterable, Sequence
|
|
72
73
|
from typing import Any
|
|
73
74
|
|
|
74
|
-
from mp_api.client.contribs.
|
|
75
|
+
from mp_api.client.contribs._types import (
|
|
75
76
|
AllIdMap,
|
|
76
77
|
AllIdSets,
|
|
77
|
-
ComponentIdSets,
|
|
78
78
|
IdentifierLeaf,
|
|
79
79
|
ProjectIdSets,
|
|
80
80
|
)
|
|
@@ -88,11 +88,15 @@ warnings.formatwarning = lambda msg, *args, **kwargs: f"{msg}\n"
|
|
|
88
88
|
warnings.filterwarnings("default", category=DeprecationWarning, module=__name__)
|
|
89
89
|
|
|
90
90
|
|
|
91
|
-
def validate_email(email_string: str):
|
|
91
|
+
def validate_email(email_string: str) -> None:
|
|
92
92
|
"""Validate user email address.
|
|
93
93
|
|
|
94
94
|
Args:
|
|
95
95
|
email_string (str) : the user's email address
|
|
96
|
+
Returns:
|
|
97
|
+
None
|
|
98
|
+
Raises:
|
|
99
|
+
SwaggerValidationError on malformed email address.
|
|
96
100
|
"""
|
|
97
101
|
if email_string.count(":") != 1:
|
|
98
102
|
raise SwaggerValidationError(
|
|
@@ -107,6 +111,8 @@ def validate_email(email_string: str):
|
|
|
107
111
|
if d > BaseDiagnosis.CATEGORIES["VALID"]:
|
|
108
112
|
raise SwaggerValidationError(f"{email} {d.message}")
|
|
109
113
|
|
|
114
|
+
return None
|
|
115
|
+
|
|
110
116
|
|
|
111
117
|
# TODO: mypy has some problems with putting a bare `str`
|
|
112
118
|
# as a callable function in SwaggerFormat
|
|
@@ -791,7 +797,7 @@ class ContribsClient(SwaggerClient):
|
|
|
791
797
|
ret = self.projects.queryProjects(**query).result() # first page
|
|
792
798
|
total_count, total_pages = ret["total_count"], ret["total_pages"]
|
|
793
799
|
|
|
794
|
-
if total_pages < 2:
|
|
800
|
+
if total_pages < 2 or ("page" in query):
|
|
795
801
|
return (
|
|
796
802
|
_convert_to_model( # type: ignore[return-value]
|
|
797
803
|
ret["data"],
|
|
@@ -822,7 +828,12 @@ class ContribsClient(SwaggerClient):
|
|
|
822
828
|
]
|
|
823
829
|
responses = _run_futures(futures, total=total_count, timeout=timeout)
|
|
824
830
|
|
|
825
|
-
|
|
831
|
+
# NOTE: resp["result"]["data"] is a dict where each key is an int,
|
|
832
|
+
# and each value is a **list** of projects as dict
|
|
833
|
+
# Double iteration is necessary because of this nested structure
|
|
834
|
+
ret["data"].extend(
|
|
835
|
+
[entry for resp in responses.values() for entry in resp["result"]["data"]]
|
|
836
|
+
)
|
|
826
837
|
|
|
827
838
|
return (
|
|
828
839
|
_convert_to_model( # type: ignore[return-value]
|
|
@@ -2109,7 +2120,7 @@ class ContribsClient(SwaggerClient):
|
|
|
2109
2120
|
digest in digests[project_name][component]
|
|
2110
2121
|
or digest
|
|
2111
2122
|
in existing.get(project_name, {})
|
|
2112
|
-
.get(component, {})
|
|
2123
|
+
.get(component, {}) # type: ignore[union-attr]
|
|
2113
2124
|
.get("md5s", [])
|
|
2114
2125
|
)
|
|
2115
2126
|
|
|
@@ -2227,9 +2238,9 @@ class ContribsClient(SwaggerClient):
|
|
|
2227
2238
|
pk=project_name, _fields=["unique_identifiers"]
|
|
2228
2239
|
).result()["unique_identifiers"]
|
|
2229
2240
|
)
|
|
2230
|
-
existing_ids = existing.get(
|
|
2231
|
-
|
|
2232
|
-
)
|
|
2241
|
+
existing_ids: Iterable[str] = existing.get(
|
|
2242
|
+
project_name, {}
|
|
2243
|
+
).get("identifiers", [])
|
|
2233
2244
|
contribs[project_name] = [
|
|
2234
2245
|
c
|
|
2235
2246
|
for c in contribs[project_name]
|
|
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
|
{mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/mp_api/client/routes/materials/electronic_structure.py
RENAMED
|
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
|
{mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/requirements/requirements-ubuntu-latest_py3.11_extras.txt
RENAMED
|
File without changes
|
|
File without changes
|
{mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/requirements/requirements-ubuntu-latest_py3.12_extras.txt
RENAMED
|
File without changes
|
|
File without changes
|
{mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/requirements/requirements-ubuntu-latest_py3.13_extras.txt
RENAMED
|
File without changes
|
|
File without changes
|
{mp_api-0.46.2rc0 → mp_api-0.46.2rc2}/requirements/requirements-ubuntu-latest_py3.14_extras.txt
RENAMED
|
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
|