mp-api 0.46.2rc5__tar.gz → 0.46.2rc7__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 (146) hide show
  1. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/PKG-INFO +1 -1
  2. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/mprester.py +46 -8
  3. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/phonon.py +3 -2
  4. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/tasks.py +2 -2
  5. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/thermo.py +0 -2
  6. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api.egg-info/PKG-INFO +1 -1
  7. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/requirements/requirements-ubuntu-latest_py3.11.txt +6 -6
  8. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/requirements/requirements-ubuntu-latest_py3.11_extras.txt +18 -17
  9. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/requirements/requirements-ubuntu-latest_py3.12.txt +6 -6
  10. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/requirements/requirements-ubuntu-latest_py3.12_extras.txt +16 -17
  11. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/requirements/requirements-ubuntu-latest_py3.13.txt +6 -6
  12. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/requirements/requirements-ubuntu-latest_py3.13_extras.txt +16 -17
  13. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/requirements/requirements-ubuntu-latest_py3.14.txt +6 -6
  14. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/requirements/requirements-ubuntu-latest_py3.14_extras.txt +16 -17
  15. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/.coveragerc +0 -0
  16. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/.github/workflows/lint.yml +0 -0
  17. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/.github/workflows/release.yml +0 -0
  18. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/.github/workflows/testing.yml +0 -0
  19. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/.github/workflows/upgrade_dependencies.yml +0 -0
  20. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/.gitignore +0 -0
  21. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/.pre-commit-config.yaml +0 -0
  22. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/CODE_OF_CONDUCT.md +0 -0
  23. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/LICENSE +0 -0
  24. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/README.md +0 -0
  25. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/dev/generate_mcp_tools.py +0 -0
  26. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/dev/inspect_mcp.sh +0 -0
  27. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/docs/Makefile +0 -0
  28. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/docs/_templates/custom-class-template.rst +0 -0
  29. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/docs/_templates/custom-module-template.rst +0 -0
  30. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/docs/conf.py +0 -0
  31. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/docs/index.rst +0 -0
  32. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/docs/make.bat +0 -0
  33. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/docs/modules.rst +0 -0
  34. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/__init__.py +0 -0
  35. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/_test_utils.py +0 -0
  36. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/__init__.py +0 -0
  37. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/_server_utils.py +0 -0
  38. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/contribs/__init__.py +0 -0
  39. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/contribs/_logger.py +0 -0
  40. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/contribs/_types.py +0 -0
  41. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/contribs/_units.py +0 -0
  42. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/contribs/client.py +0 -0
  43. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/contribs/schemas.py +0 -0
  44. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/contribs/settings.py +0 -0
  45. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/contribs/utils.py +0 -0
  46. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/core/__init__.py +0 -0
  47. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/core/_oxygen_evolution.py +0 -0
  48. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/core/client.py +0 -0
  49. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/core/exceptions.py +0 -0
  50. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/core/schemas.py +0 -0
  51. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/core/settings.py +0 -0
  52. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/core/utils.py +0 -0
  53. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/__init__.py +0 -0
  54. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/_server.py +0 -0
  55. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/__init__.py +0 -0
  56. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/absorption.py +0 -0
  57. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/alloys.py +0 -0
  58. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/bonds.py +0 -0
  59. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/chemenv.py +0 -0
  60. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/dielectric.py +0 -0
  61. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/doi.py +0 -0
  62. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/elasticity.py +0 -0
  63. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/electrodes.py +0 -0
  64. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/electronic_structure.py +0 -0
  65. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/eos.py +0 -0
  66. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/grain_boundaries.py +0 -0
  67. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/magnetism.py +0 -0
  68. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/materials.py +0 -0
  69. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/oxidation_states.py +0 -0
  70. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/piezo.py +0 -0
  71. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/provenance.py +0 -0
  72. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/robocrys.py +0 -0
  73. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/similarity.py +0 -0
  74. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/substrates.py +0 -0
  75. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/summary.py +0 -0
  76. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/surface_properties.py +0 -0
  77. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/synthesis.py +0 -0
  78. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/materials/xas.py +0 -0
  79. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/molecules/__init__.py +0 -0
  80. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/molecules/jcesr.py +0 -0
  81. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/molecules/molecules.py +0 -0
  82. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/client/routes/molecules/summary.py +0 -0
  83. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/mcp/__init__.py +0 -0
  84. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/mcp/_schemas.py +0 -0
  85. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/mcp/mp_mcp.py +0 -0
  86. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/mcp/server.py +0 -0
  87. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/mcp/tools.py +0 -0
  88. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/mcp/utils.py +0 -0
  89. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api/py.typed +0 -0
  90. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api.egg-info/SOURCES.txt +0 -0
  91. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api.egg-info/dependency_links.txt +0 -0
  92. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api.egg-info/entry_points.txt +0 -0
  93. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api.egg-info/requires.txt +0 -0
  94. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/mp_api.egg-info/top_level.txt +0 -0
  95. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/pyproject.toml +0 -0
  96. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/setup.cfg +0 -0
  97. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/test_files/Si_mp_149.cif +0 -0
  98. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/__init__.py +0 -0
  99. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/__init__.py +0 -0
  100. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/contribs/conftest.py +0 -0
  101. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/contribs/test_client.py +0 -0
  102. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/contribs/test_contribs_schemas.py +0 -0
  103. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/contribs/test_contribs_utils.py +0 -0
  104. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/contribs/test_types.py +0 -0
  105. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/core/test_oxygen_evolution.py +0 -0
  106. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/core/test_schemas.py +0 -0
  107. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/core/test_utils.py +0 -0
  108. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/__init__.py +0 -0
  109. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_absorption.py +0 -0
  110. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_alloys.py +0 -0
  111. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_bonds.py +0 -0
  112. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_chemenv.py +0 -0
  113. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_dielectric.py +0 -0
  114. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_doi.py +0 -0
  115. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_elasticity.py +0 -0
  116. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_electrodes.py +0 -0
  117. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_electronic_structure.py +0 -0
  118. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_eos.py +0 -0
  119. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_grain_boundary.py +0 -0
  120. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_magnetism.py +0 -0
  121. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_materials.py +0 -0
  122. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_oxidation_states.py +0 -0
  123. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_phonon.py +0 -0
  124. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_piezo.py +0 -0
  125. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_provenance.py +0 -0
  126. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_robocrys.py +0 -0
  127. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_similarity.py +0 -0
  128. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_substrates.py +0 -0
  129. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_summary.py +0 -0
  130. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_surface_properties.py +0 -0
  131. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_synthesis.py +0 -0
  132. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_tasks.py +0 -0
  133. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_thermo.py +0 -0
  134. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/materials/test_xas.py +0 -0
  135. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/molecules/__init__.py +0 -0
  136. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/molecules/test_jcesr.py +0 -0
  137. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/molecules/test_molecules.py +0 -0
  138. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/molecules/test_summary.py +0 -0
  139. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/test_client.py +0 -0
  140. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/test_core_client.py +0 -0
  141. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/test_heartbeat.py +0 -0
  142. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/client/test_mprester.py +0 -0
  143. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/mcp/__init__.py +0 -0
  144. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/mcp/test_server.py +0 -0
  145. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/tests/mcp/test_tools.py +0 -0
  146. {mp_api-0.46.2rc5 → mp_api-0.46.2rc7}/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.2rc5
3
+ Version: 0.46.2rc7
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
@@ -58,7 +58,8 @@ if TYPE_CHECKING:
58
58
  from mp_api.client.core.client import QueryBuilderWithCache
59
59
  from mp_api.client.core.schemas import _DictLikeAccess
60
60
 
61
- DEFAULT_THERMOTYPE_CRITERIA = {"thermo_types": ["GGA_GGA+U_R2SCAN"]}
61
+ DEFAULT_THERMOTYPE = ThermoType("GGA_GGA+U_R2SCAN")
62
+ DEFAULT_THERMOTYPE_CRITERIA = {"thermo_types": [DEFAULT_THERMOTYPE.value]}
62
63
 
63
64
  RESTER_LAYOUT = {
64
65
  "molecules/core": LazyImport(
@@ -655,9 +656,7 @@ class MPRester(_Rester):
655
656
  entry_dict["energy_adjustments"] = []
656
657
 
657
658
  if property_data:
658
- entry_dict["data"] = {
659
- property: doc[property] for property in property_data
660
- }
659
+ entry_dict["data"] = {prop: doc[prop] for prop in property_data}
661
660
 
662
661
  if conventional_unit_cell:
663
662
  entry_struct = Structure.from_dict(entry_dict["structure"])
@@ -1069,8 +1068,8 @@ class MPRester(_Rester):
1069
1068
  (i.e., all LixOy, FexOy, LixFey, LixFeyOz, Li, Fe and O phases). Extremely
1070
1069
  useful for creating phase diagrams of entire chemical systems.
1071
1070
 
1072
- Note that by default this returns mixed GGA/GGA+U entries. For others,
1073
- pass GGA/GGA+U/R2SCAN, or R2SCAN as thermo_types in additional_criteria.
1071
+ Note that by default this returns mixed GGA/GGA+U/r2SCAN entries. For others,
1072
+ pass GGA/GGA+U, or R2SCAN as thermo_types in additional_criteria.
1074
1073
 
1075
1074
  Args:
1076
1075
  elements (str or [str]): Parent chemical system string comprising element
@@ -1594,8 +1593,26 @@ class MPRester(_Rester):
1594
1593
  def get_stability(
1595
1594
  self,
1596
1595
  entries: list[ComputedEntry | ComputedStructureEntry | PDEntry],
1597
- thermo_type: str | ThermoType = ThermoType.GGA_GGA_U,
1596
+ thermo_type: str | ThermoType = DEFAULT_THERMOTYPE,
1598
1597
  ) -> list[dict[str, Any]] | None:
1598
+ """Get the energy above hull of a list of entries.
1599
+
1600
+ Args:
1601
+ entries (list of ComputedEntry or ComputedStructureEntry or PDEntry) :
1602
+ List of entries with energy and composition information to compute
1603
+ hull energies.
1604
+ thermo_type (str or ThermoType) : The hull type to use.
1605
+ Defaults to ThermoType.GGA_GGA_U_R2SCAN.
1606
+
1607
+ Returns:
1608
+ list of dict:
1609
+ {
1610
+ "e_above_hull": float, # energy above the hull
1611
+ "composition": dict[str,float], # composition as dict
1612
+ "energy": float, # energy with mixing / corrections
1613
+ "entry_id": str, # optional identifier
1614
+ }
1615
+ """
1599
1616
  chemsys: set[SpeciesLike] = {
1600
1617
  ele for entry in entries for ele in entry.composition.elements
1601
1618
  }
@@ -1659,8 +1676,29 @@ class MPRester(_Rester):
1659
1676
  self,
1660
1677
  material_id: str | MPID | AlphaID,
1661
1678
  working_ion: str | Element,
1662
- thermo_type: str | ThermoType = ThermoType.GGA_GGA_U,
1679
+ thermo_type: str | ThermoType = DEFAULT_THERMOTYPE,
1663
1680
  ) -> dict[str, np.ndarray]:
1681
+ """Get the amount of O2 evolved at a range of temperatures.
1682
+
1683
+ Args:
1684
+ material_id (str, MPID, or AlphaID) : identifier of the material to compute
1685
+ working_ion (str or Element) : The working ion of the battery material
1686
+ thermo_type (str or ThermoType) : The hull type to use.
1687
+ Defaults to ThermoType.GGA_GGA_U_R2SCAN.
1688
+
1689
+ Returns:
1690
+ dict of str to np.ndarray :
1691
+ {
1692
+ "mu": np.ndarray[float], # the chemical potential in eV/atom
1693
+ "reaction": np.ndarray[str], # the redox reaction
1694
+ "evolution": np.ndarray[float], # the number of O2 evolved in the redox, per formula unit
1695
+ "temperature": np.ndarray[float], # the temperature in K
1696
+ }
1697
+
1698
+ Raises:
1699
+ ValueError : If no insertion electrode data for the combination of material_id
1700
+ and working_ion could be found, or if the entry contains no oxygen.
1701
+ """
1664
1702
  working_ion = (
1665
1703
  Element[working_ion] if isinstance(working_ion, str) else working_ion
1666
1704
  )
@@ -4,6 +4,7 @@ import warnings
4
4
  from collections import defaultdict
5
5
  from typing import TYPE_CHECKING
6
6
 
7
+ from emmet.core.mpid import AlphaID
7
8
  from emmet.core.phonon import PhononBS, PhononBSDOSDoc, PhononBSDOSTask, PhononDOS
8
9
 
9
10
  from mp_api.client.core import BaseRester, MPRestError, MPRestWarning
@@ -101,7 +102,7 @@ class PhononRester(BaseRester):
101
102
  """
102
103
  result = self._query_open_data(
103
104
  bucket="materialsproject-parsed",
104
- key=f"ph-bandstructures/{phonon_method}/{identifier}.json.gz",
105
+ key=f"ph-bandstructures/{phonon_method}/{AlphaID(identifier).string}.json.gz",
105
106
  )[0][0]
106
107
 
107
108
  return (
@@ -136,7 +137,7 @@ class PhononRester(BaseRester):
136
137
  """
137
138
  result = self._query_open_data(
138
139
  bucket="materialsproject-parsed",
139
- key=f"ph-dos/{phonon_method}/{identifier}.json.gz",
140
+ key=f"ph-dos/{phonon_method}/{AlphaID(identifier).string}.json.gz",
140
141
  )[0][0]
141
142
 
142
143
  return (
@@ -39,8 +39,8 @@ class TaskRester(BaseRester):
39
39
  """
40
40
  as_alpha = str(AlphaID(task_id, padlen=8)).split("-")[-1]
41
41
  predicate = (
42
- f"WHERE run_type='{str(run_type)}' AND " if run_type else ""
43
- ) + f"WHERE identifier='{as_alpha}'"
42
+ f"WHERE run_type='{str(run_type)}' AND " if run_type else "WHERE "
43
+ ) + f"identifier='{as_alpha}'"
44
44
 
45
45
  traj_lbl, _ = self._get_delta_table(
46
46
  "materialsproject-parsed",
@@ -192,8 +192,6 @@ class ThermoRester(BaseRester):
192
192
  Arguments:
193
193
  chemsys (str): A chemical system (e.g. Li-Fe-O)
194
194
  thermo_type (ThermoType): The thermo type for the phase diagram.
195
- Defaults to ThermoType.GGA_GGA_U.
196
-
197
195
 
198
196
  Returns:
199
197
  (PhaseDiagram): Pymatgen phase diagram object.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mp-api
3
- Version: 0.46.2rc5
3
+ Version: 0.46.2rc7
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
@@ -12,13 +12,13 @@ bibtexparser==1.4.4
12
12
  # via pymatgen-core
13
13
  blake3==1.0.8
14
14
  # via emmet-core
15
- boto3==1.43.10
15
+ boto3==1.43.12
16
16
  # via mp-api (pyproject.toml)
17
- botocore==1.43.10
17
+ botocore==1.43.12
18
18
  # via
19
19
  # boto3
20
20
  # s3transfer
21
- certifi==2026.4.22
21
+ certifi==2026.5.20
22
22
  # via requests
23
23
  charset-normalizer==3.4.7
24
24
  # via requests
@@ -30,7 +30,7 @@ deltalake==1.6.0
30
30
  # via mp-api (pyproject.toml)
31
31
  deprecated==1.3.1
32
32
  # via deltalake
33
- emmet-core==0.87.0rc3
33
+ emmet-core==0.87.0rc5
34
34
  # via mp-api (pyproject.toml)
35
35
  fonttools==4.63.0
36
36
  # via matplotlib
@@ -65,7 +65,7 @@ narwhals==2.21.2
65
65
  # via plotly
66
66
  networkx==3.6.1
67
67
  # via pymatgen-core
68
- numpy==2.4.5
68
+ numpy==2.4.6
69
69
  # via
70
70
  # contourpy
71
71
  # matplotlib
@@ -113,7 +113,7 @@ pymatgen==2026.5.4
113
113
  # emmet-core
114
114
  # mp-api (pyproject.toml)
115
115
  # pymatgen-io-validation
116
- pymatgen-core==2026.5.17
116
+ pymatgen-core==2026.5.18
117
117
  # via pymatgen
118
118
  pymatgen-io-validation==0.1.2
119
119
  # via emmet-core
@@ -32,6 +32,7 @@ attrs==26.1.0
32
32
  # via
33
33
  # cyclopts
34
34
  # jsonschema
35
+ # jsonschema-path
35
36
  # referencing
36
37
  authlib==1.7.2
37
38
  # via fastmcp-slim
@@ -49,9 +50,9 @@ blinker==1.9.0
49
50
  # via flask
50
51
  boltons==25.0.0
51
52
  # via mp-api (pyproject.toml)
52
- boto3==1.43.10
53
+ boto3==1.43.12
53
54
  # via mp-api (pyproject.toml)
54
- botocore==1.43.10
55
+ botocore==1.43.12
55
56
  # via
56
57
  # boto3
57
58
  # s3transfer
@@ -65,7 +66,7 @@ cachetools==7.1.3
65
66
  # py-key-value-aio
66
67
  caio==0.9.25
67
68
  # via aiofile
68
- certifi==2026.4.22
69
+ certifi==2026.5.20
69
70
  # via
70
71
  # httpcore
71
72
  # httpx
@@ -94,7 +95,7 @@ custodian==2025.12.14
94
95
  # via mp-api (pyproject.toml)
95
96
  cycler==0.12.1
96
97
  # via matplotlib
97
- cyclopts==4.14.0
98
+ cyclopts==4.14.1
98
99
  # via fastmcp-slim
99
100
  decorator==5.3.1
100
101
  # via ipython
@@ -115,7 +116,7 @@ docutils==0.22.4
115
116
  # via sphinx
116
117
  email-validator==2.3.0
117
118
  # via pydantic
118
- emmet-core[all]==0.87.0rc3
119
+ emmet-core[all]==0.87.0rc5
119
120
  # via mp-api (pyproject.toml)
120
121
  exceptiongroup==1.3.1
121
122
  # via fastmcp-slim
@@ -174,10 +175,8 @@ imageio==2.37.3
174
175
  # via scikit-image
175
176
  imagesize==2.0.0
176
177
  # via sphinx
177
- importlib-metadata==8.7.1
178
- # via
179
- # keyring
180
- # opentelemetry-api
178
+ importlib-metadata==9.0.0
179
+ # via keyring
181
180
  importlib-resources==7.1.0
182
181
  # via swagger-spec-validator
183
182
  inflect==7.5.0
@@ -231,7 +230,7 @@ jsonschema[format-nongpl]==4.26.0
231
230
  # bravado-core
232
231
  # mcp
233
232
  # swagger-spec-validator
234
- jsonschema-path==0.4.6
233
+ jsonschema-path==0.5.0
235
234
  # via fastmcp-slim
236
235
  jsonschema-specifications==2025.9.1
237
236
  # via jsonschema
@@ -307,7 +306,7 @@ networkx==3.6.1
307
306
  # scikit-image
308
307
  nodeenv==1.10.0
309
308
  # via pre-commit
310
- numpy==2.4.5
309
+ numpy==2.4.6
311
310
  # via
312
311
  # ase
313
312
  # contourpy
@@ -332,7 +331,7 @@ numpy==2.4.5
332
331
  # tifffile
333
332
  openapi-pydantic==0.5.1
334
333
  # via fastmcp-slim
335
- opentelemetry-api==1.41.1
334
+ opentelemetry-api==1.42.0
336
335
  # via fastmcp-slim
337
336
  orjson==3.11.9
338
337
  # via
@@ -355,7 +354,7 @@ pandas==3.0.3
355
354
  # seaborn
356
355
  parso==0.8.7
357
356
  # via jedi
358
- pathable==0.5.0
357
+ pathable==0.6.0
359
358
  # via jsonschema-path
360
359
  pathspec==1.1.1
361
360
  # via mypy
@@ -363,7 +362,7 @@ pexpect==4.9.0
363
362
  # via ipython
364
363
  phonopy==4.0.1
365
364
  # via emmet-core
366
- phonors==0.1.1
365
+ phonors==0.1.2
367
366
  # via phonopy
368
367
  pillow==12.2.0
369
368
  # via
@@ -460,12 +459,14 @@ pymatgen-analysis-defects==2026.3.20
460
459
  # via emmet-core
461
460
  pymatgen-analysis-diffusion==2025.11.15
462
461
  # via emmet-core
463
- pymatgen-core==2026.5.17
462
+ pymatgen-core==2026.5.18
464
463
  # via pymatgen
465
464
  pymatgen-io-validation==0.1.2
466
465
  # via emmet-core
467
466
  pymongo==4.17.0
468
- # via emmet-core
467
+ # via
468
+ # emmet-core
469
+ # mp-api (pyproject.toml)
469
470
  pyparsing==3.3.2
470
471
  # via
471
472
  # bibtexparser
@@ -618,7 +619,7 @@ swagger-spec-validator==3.0.4
618
619
  # via
619
620
  # bravado-core
620
621
  # mp-api (pyproject.toml)
621
- symfc==1.7.0
622
+ symfc==1.7.1
622
623
  # via phonopy
623
624
  sympy==1.14.0
624
625
  # via pymatgen-core
@@ -12,13 +12,13 @@ bibtexparser==1.4.4
12
12
  # via pymatgen-core
13
13
  blake3==1.0.8
14
14
  # via emmet-core
15
- boto3==1.43.10
15
+ boto3==1.43.12
16
16
  # via mp-api (pyproject.toml)
17
- botocore==1.43.10
17
+ botocore==1.43.12
18
18
  # via
19
19
  # boto3
20
20
  # s3transfer
21
- certifi==2026.4.22
21
+ certifi==2026.5.20
22
22
  # via requests
23
23
  charset-normalizer==3.4.7
24
24
  # via requests
@@ -30,7 +30,7 @@ deltalake==1.6.0
30
30
  # via mp-api (pyproject.toml)
31
31
  deprecated==1.3.1
32
32
  # via deltalake
33
- emmet-core==0.87.0rc2
33
+ emmet-core==0.87.0rc5
34
34
  # via mp-api (pyproject.toml)
35
35
  fonttools==4.63.0
36
36
  # via matplotlib
@@ -65,7 +65,7 @@ narwhals==2.21.2
65
65
  # via plotly
66
66
  networkx==3.6.1
67
67
  # via pymatgen-core
68
- numpy==2.4.5
68
+ numpy==2.4.6
69
69
  # via
70
70
  # contourpy
71
71
  # matplotlib
@@ -113,7 +113,7 @@ pymatgen==2026.5.4
113
113
  # emmet-core
114
114
  # mp-api (pyproject.toml)
115
115
  # pymatgen-io-validation
116
- pymatgen-core==2026.5.17
116
+ pymatgen-core==2026.5.18
117
117
  # via pymatgen
118
118
  pymatgen-io-validation==0.1.2
119
119
  # via emmet-core
@@ -32,6 +32,7 @@ attrs==26.1.0
32
32
  # via
33
33
  # cyclopts
34
34
  # jsonschema
35
+ # jsonschema-path
35
36
  # referencing
36
37
  authlib==1.7.2
37
38
  # via fastmcp-slim
@@ -47,9 +48,9 @@ blinker==1.9.0
47
48
  # via flask
48
49
  boltons==25.0.0
49
50
  # via mp-api (pyproject.toml)
50
- boto3==1.43.10
51
+ boto3==1.43.12
51
52
  # via mp-api (pyproject.toml)
52
- botocore==1.43.10
53
+ botocore==1.43.12
53
54
  # via
54
55
  # boto3
55
56
  # s3transfer
@@ -63,7 +64,7 @@ cachetools==7.1.3
63
64
  # py-key-value-aio
64
65
  caio==0.9.25
65
66
  # via aiofile
66
- certifi==2026.4.22
67
+ certifi==2026.5.20
67
68
  # via
68
69
  # httpcore
69
70
  # httpx
@@ -92,7 +93,7 @@ custodian==2025.12.14
92
93
  # via mp-api (pyproject.toml)
93
94
  cycler==0.12.1
94
95
  # via matplotlib
95
- cyclopts==4.14.0
96
+ cyclopts==4.14.1
96
97
  # via fastmcp-slim
97
98
  decorator==5.3.1
98
99
  # via ipython
@@ -113,7 +114,7 @@ docutils==0.22.4
113
114
  # via sphinx
114
115
  email-validator==2.3.0
115
116
  # via pydantic
116
- emmet-core[all]==0.87.0rc3
117
+ emmet-core[all]==0.87.0rc5
117
118
  # via mp-api (pyproject.toml)
118
119
  exceptiongroup==1.3.1
119
120
  # via fastmcp-slim
@@ -172,8 +173,6 @@ imageio==2.37.3
172
173
  # via scikit-image
173
174
  imagesize==2.0.0
174
175
  # via sphinx
175
- importlib-metadata==8.7.1
176
- # via opentelemetry-api
177
176
  importlib-resources==7.1.0
178
177
  # via swagger-spec-validator
179
178
  inflect==7.5.0
@@ -227,7 +226,7 @@ jsonschema[format-nongpl]==4.26.0
227
226
  # bravado-core
228
227
  # mcp
229
228
  # swagger-spec-validator
230
- jsonschema-path==0.4.6
229
+ jsonschema-path==0.5.0
231
230
  # via fastmcp-slim
232
231
  jsonschema-specifications==2025.9.1
233
232
  # via jsonschema
@@ -303,7 +302,7 @@ networkx==3.6.1
303
302
  # scikit-image
304
303
  nodeenv==1.10.0
305
304
  # via pre-commit
306
- numpy==2.4.5
305
+ numpy==2.4.6
307
306
  # via
308
307
  # ase
309
308
  # contourpy
@@ -328,7 +327,7 @@ numpy==2.4.5
328
327
  # tifffile
329
328
  openapi-pydantic==0.5.1
330
329
  # via fastmcp-slim
331
- opentelemetry-api==1.41.1
330
+ opentelemetry-api==1.42.0
332
331
  # via fastmcp-slim
333
332
  orjson==3.11.9
334
333
  # via
@@ -351,7 +350,7 @@ pandas==3.0.3
351
350
  # seaborn
352
351
  parso==0.8.7
353
352
  # via jedi
354
- pathable==0.5.0
353
+ pathable==0.6.0
355
354
  # via jsonschema-path
356
355
  pathspec==1.1.1
357
356
  # via mypy
@@ -359,7 +358,7 @@ pexpect==4.9.0
359
358
  # via ipython
360
359
  phonopy==4.0.1
361
360
  # via emmet-core
362
- phonors==0.1.1
361
+ phonors==0.1.2
363
362
  # via phonopy
364
363
  pillow==12.2.0
365
364
  # via
@@ -456,12 +455,14 @@ pymatgen-analysis-defects==2026.3.20
456
455
  # via emmet-core
457
456
  pymatgen-analysis-diffusion==2025.11.15
458
457
  # via emmet-core
459
- pymatgen-core==2026.5.17
458
+ pymatgen-core==2026.5.18
460
459
  # via pymatgen
461
460
  pymatgen-io-validation==0.1.2
462
461
  # via emmet-core
463
462
  pymongo==4.17.0
464
- # via emmet-core
463
+ # via
464
+ # emmet-core
465
+ # mp-api (pyproject.toml)
465
466
  pyparsing==3.3.2
466
467
  # via
467
468
  # bibtexparser
@@ -614,7 +615,7 @@ swagger-spec-validator==3.0.4
614
615
  # via
615
616
  # bravado-core
616
617
  # mp-api (pyproject.toml)
617
- symfc==1.7.0
618
+ symfc==1.7.1
618
619
  # via phonopy
619
620
  sympy==1.14.0
620
621
  # via pymatgen-core
@@ -698,5 +699,3 @@ werkzeug==3.1.8
698
699
  # via flask
699
700
  wrapt==2.1.2
700
701
  # via deprecated
701
- zipp==4.1.0
702
- # via importlib-metadata
@@ -12,13 +12,13 @@ bibtexparser==1.4.4
12
12
  # via pymatgen-core
13
13
  blake3==1.0.8
14
14
  # via emmet-core
15
- boto3==1.43.10
15
+ boto3==1.43.12
16
16
  # via mp-api (pyproject.toml)
17
- botocore==1.43.10
17
+ botocore==1.43.12
18
18
  # via
19
19
  # boto3
20
20
  # s3transfer
21
- certifi==2026.4.22
21
+ certifi==2026.5.20
22
22
  # via requests
23
23
  charset-normalizer==3.4.7
24
24
  # via requests
@@ -30,7 +30,7 @@ deltalake==1.6.0
30
30
  # via mp-api (pyproject.toml)
31
31
  deprecated==1.3.1
32
32
  # via deltalake
33
- emmet-core==0.87.0rc2
33
+ emmet-core==0.87.0rc5
34
34
  # via mp-api (pyproject.toml)
35
35
  fonttools==4.63.0
36
36
  # via matplotlib
@@ -65,7 +65,7 @@ narwhals==2.21.2
65
65
  # via plotly
66
66
  networkx==3.6.1
67
67
  # via pymatgen-core
68
- numpy==2.4.5
68
+ numpy==2.4.6
69
69
  # via
70
70
  # contourpy
71
71
  # matplotlib
@@ -113,7 +113,7 @@ pymatgen==2026.5.4
113
113
  # emmet-core
114
114
  # mp-api (pyproject.toml)
115
115
  # pymatgen-io-validation
116
- pymatgen-core==2026.5.17
116
+ pymatgen-core==2026.5.18
117
117
  # via pymatgen
118
118
  pymatgen-io-validation==0.1.2
119
119
  # via emmet-core
@@ -32,6 +32,7 @@ attrs==26.1.0
32
32
  # via
33
33
  # cyclopts
34
34
  # jsonschema
35
+ # jsonschema-path
35
36
  # referencing
36
37
  authlib==1.7.2
37
38
  # via fastmcp-slim
@@ -47,9 +48,9 @@ blinker==1.9.0
47
48
  # via flask
48
49
  boltons==25.0.0
49
50
  # via mp-api (pyproject.toml)
50
- boto3==1.43.10
51
+ boto3==1.43.12
51
52
  # via mp-api (pyproject.toml)
52
- botocore==1.43.10
53
+ botocore==1.43.12
53
54
  # via
54
55
  # boto3
55
56
  # s3transfer
@@ -63,7 +64,7 @@ cachetools==7.1.3
63
64
  # py-key-value-aio
64
65
  caio==0.9.25
65
66
  # via aiofile
66
- certifi==2026.4.22
67
+ certifi==2026.5.20
67
68
  # via
68
69
  # httpcore
69
70
  # httpx
@@ -92,7 +93,7 @@ custodian==2025.12.14
92
93
  # via mp-api (pyproject.toml)
93
94
  cycler==0.12.1
94
95
  # via matplotlib
95
- cyclopts==4.14.0
96
+ cyclopts==4.14.1
96
97
  # via fastmcp-slim
97
98
  decorator==5.3.1
98
99
  # via ipython
@@ -113,7 +114,7 @@ docutils==0.22.4
113
114
  # via sphinx
114
115
  email-validator==2.3.0
115
116
  # via pydantic
116
- emmet-core[all]==0.87.0rc3
117
+ emmet-core[all]==0.87.0rc5
117
118
  # via mp-api (pyproject.toml)
118
119
  exceptiongroup==1.3.1
119
120
  # via fastmcp-slim
@@ -172,8 +173,6 @@ imageio==2.37.3
172
173
  # via scikit-image
173
174
  imagesize==2.0.0
174
175
  # via sphinx
175
- importlib-metadata==8.7.1
176
- # via opentelemetry-api
177
176
  importlib-resources==7.1.0
178
177
  # via swagger-spec-validator
179
178
  inflect==7.5.0
@@ -227,7 +226,7 @@ jsonschema[format-nongpl]==4.26.0
227
226
  # bravado-core
228
227
  # mcp
229
228
  # swagger-spec-validator
230
- jsonschema-path==0.4.6
229
+ jsonschema-path==0.5.0
231
230
  # via fastmcp-slim
232
231
  jsonschema-specifications==2025.9.1
233
232
  # via jsonschema
@@ -303,7 +302,7 @@ networkx==3.6.1
303
302
  # scikit-image
304
303
  nodeenv==1.10.0
305
304
  # via pre-commit
306
- numpy==2.4.5
305
+ numpy==2.4.6
307
306
  # via
308
307
  # ase
309
308
  # contourpy
@@ -328,7 +327,7 @@ numpy==2.4.5
328
327
  # tifffile
329
328
  openapi-pydantic==0.5.1
330
329
  # via fastmcp-slim
331
- opentelemetry-api==1.41.1
330
+ opentelemetry-api==1.42.0
332
331
  # via fastmcp-slim
333
332
  orjson==3.11.9
334
333
  # via
@@ -351,7 +350,7 @@ pandas==3.0.3
351
350
  # seaborn
352
351
  parso==0.8.7
353
352
  # via jedi
354
- pathable==0.5.0
353
+ pathable==0.6.0
355
354
  # via jsonschema-path
356
355
  pathspec==1.1.1
357
356
  # via mypy
@@ -359,7 +358,7 @@ pexpect==4.9.0
359
358
  # via ipython
360
359
  phonopy==4.0.1
361
360
  # via emmet-core
362
- phonors==0.1.1
361
+ phonors==0.1.2
363
362
  # via phonopy
364
363
  pillow==12.2.0
365
364
  # via
@@ -456,12 +455,14 @@ pymatgen-analysis-defects==2026.3.20
456
455
  # via emmet-core
457
456
  pymatgen-analysis-diffusion==2025.11.15
458
457
  # via emmet-core
459
- pymatgen-core==2026.5.17
458
+ pymatgen-core==2026.5.18
460
459
  # via pymatgen
461
460
  pymatgen-io-validation==0.1.2
462
461
  # via emmet-core
463
462
  pymongo==4.17.0
464
- # via emmet-core
463
+ # via
464
+ # emmet-core
465
+ # mp-api (pyproject.toml)
465
466
  pyparsing==3.3.2
466
467
  # via
467
468
  # bibtexparser
@@ -614,7 +615,7 @@ swagger-spec-validator==3.0.4
614
615
  # via
615
616
  # bravado-core
616
617
  # mp-api (pyproject.toml)
617
- symfc==1.7.0
618
+ symfc==1.7.1
618
619
  # via phonopy
619
620
  sympy==1.14.0
620
621
  # via pymatgen-core
@@ -692,5 +693,3 @@ werkzeug==3.1.8
692
693
  # via flask
693
694
  wrapt==2.1.2
694
695
  # via deprecated
695
- zipp==4.1.0
696
- # via importlib-metadata