emmet-builders 0.57.1__tar.gz → 0.58.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of emmet-builders might be problematic. Click here for more details.

Files changed (99) hide show
  1. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/PKG-INFO +1 -1
  2. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/electronic_structure.py +79 -16
  3. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/utils.py +57 -1
  4. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet_builders.egg-info/PKG-INFO +1 -1
  5. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet_builders.egg-info/requires.txt +1 -1
  6. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/deployment.txt +12 -10
  7. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/macos-latest_py3.10.txt +13 -11
  8. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/macos-latest_py3.10_extras.txt +21 -19
  9. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/macos-latest_py3.11.txt +13 -11
  10. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/macos-latest_py3.11_extras.txt +21 -19
  11. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/macos-latest_py3.8.txt +12 -10
  12. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/macos-latest_py3.8_extras.txt +20 -18
  13. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/macos-latest_py3.9.txt +14 -12
  14. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/macos-latest_py3.9_extras.txt +22 -20
  15. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/ubuntu-latest_py3.10.txt +13 -11
  16. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/ubuntu-latest_py3.10_extras.txt +21 -19
  17. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/ubuntu-latest_py3.11.txt +13 -11
  18. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/ubuntu-latest_py3.11_extras.txt +21 -19
  19. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/ubuntu-latest_py3.8.txt +12 -10
  20. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/ubuntu-latest_py3.8_extras.txt +20 -18
  21. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/ubuntu-latest_py3.9.txt +14 -12
  22. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/requirements/ubuntu-latest_py3.9_extras.txt +22 -20
  23. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/setup.py +1 -1
  24. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/__init__.py +0 -0
  25. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/abinit/__init__.py +0 -0
  26. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/abinit/phonon.py +0 -0
  27. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/abinit/sound_velocity.py +0 -0
  28. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/feff/__init__.py +0 -0
  29. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/feff/xas.py +0 -0
  30. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/__init__.py +0 -0
  31. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/absorption_spectrum.py +0 -0
  32. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/alloys.py +0 -0
  33. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/basic_descriptors.py +0 -0
  34. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/bonds.py +0 -0
  35. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/chemenv.py +0 -0
  36. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/corrected_entries.py +0 -0
  37. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/dielectric.py +0 -0
  38. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/elasticity.py +0 -0
  39. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/electrodes.py +0 -0
  40. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/magnetism.py +0 -0
  41. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/optimade.py +0 -0
  42. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/oxidation_states.py +0 -0
  43. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/piezoelectric.py +0 -0
  44. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/provenance.py +0 -0
  45. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/robocrys.py +0 -0
  46. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/similarity.py +0 -0
  47. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/substrates.py +0 -0
  48. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/summary.py +0 -0
  49. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/materials/thermo.py +0 -0
  50. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/mobility/__init__.py +0 -0
  51. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/mobility/migration_graph.py +0 -0
  52. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/molecules/__init__.py +0 -0
  53. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/molecules/atomic.py +0 -0
  54. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/molecules/bonds.py +0 -0
  55. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/molecules/metal_binding.py +0 -0
  56. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/molecules/orbitals.py +0 -0
  57. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/molecules/redox.py +0 -0
  58. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/molecules/summary.py +0 -0
  59. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/molecules/thermo.py +0 -0
  60. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/molecules/vibration.py +0 -0
  61. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/qchem/__init__.py +0 -0
  62. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/qchem/molecules.py +0 -0
  63. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/settings.py +0 -0
  64. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/vasp/__init__.py +0 -0
  65. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/vasp/materials.py +0 -0
  66. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet/builders/vasp/task_validator.py +0 -0
  67. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet_builders.egg-info/SOURCES.txt +0 -0
  68. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet_builders.egg-info/dependency_links.txt +0 -0
  69. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet_builders.egg-info/not-zip-safe +0 -0
  70. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/emmet_builders.egg-info/top_level.txt +0 -0
  71. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/setup.cfg +0 -0
  72. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/__init__.py +0 -0
  73. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/conftest.py +0 -0
  74. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/molecules/__init__.py +0 -0
  75. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/molecules/test_atomic.py +0 -0
  76. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/molecules/test_bonds.py +0 -0
  77. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/molecules/test_metal_binding.py +0 -0
  78. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/molecules/test_orbitals.py +0 -0
  79. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/molecules/test_redox.py +0 -0
  80. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/molecules/test_summary.py +0 -0
  81. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/molecules/test_thermo.py +0 -0
  82. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/molecules/test_vibration.py +0 -0
  83. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_absorption.py +0 -0
  84. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_basic_descriptors.py +0 -0
  85. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_chemenv.py +0 -0
  86. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_corrected_entries_thermo.py +0 -0
  87. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_dielectric.py +0 -0
  88. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_elasticity.py +0 -0
  89. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_electronic_structure.py +0 -0
  90. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_magnetism.py +0 -0
  91. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_materials.py +0 -0
  92. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_mobility.py +0 -0
  93. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_oxidation.py +0 -0
  94. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_piezoelectric.py +0 -0
  95. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_qchem.py +0 -0
  96. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_similarity.py +0 -0
  97. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_summary.py +0 -0
  98. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_utils.py +0 -0
  99. {emmet-builders-0.57.1 → emmet-builders-0.58.0}/tests/test_vasp.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: emmet-builders
3
- Version: 0.57.1
3
+ Version: 0.58.0
4
4
  Summary: Builders for the Emmet Library
5
5
  Home-page: https://github.com/materialsproject/emmet
6
6
  Author: The Materials Project
@@ -1,6 +1,8 @@
1
1
  from collections import defaultdict
2
2
  from math import ceil
3
3
  import itertools
4
+ import re
5
+ import boto3
4
6
  import numpy as np
5
7
  from maggma.builders import Builder
6
8
  from maggma.utils import grouper
@@ -18,6 +20,8 @@ from emmet.core.settings import EmmetSettings
18
20
  from emmet.core.electronic_structure import ElectronicStructureDoc
19
21
  from emmet.core.utils import jsanitize
20
22
 
23
+ from emmet.builders.utils import query_open_data
24
+
21
25
  SETTINGS = EmmetSettings()
22
26
 
23
27
 
@@ -43,8 +47,10 @@ class ElectronicStructureBuilder(Builder):
43
47
  tasks (Store): Store of task documents
44
48
  materials (Store): Store of materials documents
45
49
  electronic_structure (Store): Store of electronic structure summary data documents
46
- bandstructure_fs (Store): Store of bandstructures
47
- dos_fs (Store): Store of DOS
50
+ bandstructure_fs (Store, str): Store of bandstructures, or S3 URL string with prefix
51
+ (e.g. s3://materialsproject-parsed/bandstructures).
52
+ dos_fs (Store, str): Store of DOS, or S3 URL string with bucket and prefix
53
+ (e.g. s3://materialsproject-parsed/dos).
48
54
  chunk_size (int): Chunk size to use for processing. Defaults to 10.
49
55
  query (dict): Dictionary to limit materials to be analyzed
50
56
  """
@@ -57,8 +63,27 @@ class ElectronicStructureBuilder(Builder):
57
63
  self.chunk_size = chunk_size
58
64
  self.query = query if query else {}
59
65
 
66
+ self._s3_resource = None
67
+
68
+ sources = [tasks, materials]
69
+
70
+ fs_stores = [bandstructure_fs, dos_fs]
71
+
72
+ for store in fs_stores:
73
+ if isinstance(store, str):
74
+ if not re.match("^s3://.*", store):
75
+ raise ValueError(
76
+ "Please provide an S3 URL "
77
+ "in the format s3://{bucket_name}/{prefix}"
78
+ )
79
+
80
+ if self._s3_resource is None:
81
+ self._s3_resource = boto3.resource("s3")
82
+ else:
83
+ sources.append(store)
84
+
60
85
  super().__init__(
61
- sources=[tasks, materials, bandstructure_fs, dos_fs],
86
+ sources=sources,
62
87
  targets=[electronic_structure],
63
88
  chunk_size=chunk_size,
64
89
  **kwargs,
@@ -385,6 +410,7 @@ class ElectronicStructureBuilder(Builder):
385
410
  structure = Structure.from_dict(task_query["output"]["structure"])
386
411
 
387
412
  kpoints = task_query["orig_inputs"]["kpoints"]
413
+
388
414
  labels_dict = {
389
415
  label: point
390
416
  for label, point in zip(kpoints["labels"], kpoints["kpoints"])
@@ -397,16 +423,32 @@ class ElectronicStructureBuilder(Builder):
397
423
  bs_type = None
398
424
 
399
425
  if bs_type is None:
400
- bs_dict = self.bandstructure_fs.query_one(
401
- {self.bandstructure_fs.key: str(task_id)}
402
- )
426
+ if isinstance(self.bandstructure_fs, str):
427
+ _, _, bucket, prefix = self.bandstructure_fs.strip(
428
+ "/"
429
+ ).split("/")
430
+
431
+ bs_dict = query_open_data(
432
+ bucket,
433
+ prefix,
434
+ task_id,
435
+ monty_decode=False,
436
+ s3_resource=self._s3_resource,
437
+ )
438
+ else:
439
+ bs_dict = self.bandstructure_fs.query_one(
440
+ {self.bandstructure_fs.key: str(task_id)}
441
+ )
403
442
 
404
443
  if bs_dict is not None:
405
444
  bs = BandStructureSymmLine.from_dict(bs_dict["data"])
406
445
 
407
- bs_type = self._obtain_path_type(
408
- bs.labels_dict, bs.structure
409
- )
446
+ labels_dict = {
447
+ label: kpoint.frac_coords
448
+ for label, kpoint in bs.labels_dict.items()
449
+ }
450
+
451
+ bs_type = self._obtain_path_type(labels_dict, bs.structure)
410
452
 
411
453
  is_hubbard = task_query["input"]["is_hubbard"]
412
454
  lmaxmix = task_query["input"]["incar"].get(
@@ -425,6 +467,7 @@ class ElectronicStructureBuilder(Builder):
425
467
  "nkpoints": int(nkpoints),
426
468
  "updated_on": lu_dt,
427
469
  "output_structure": structure,
470
+ "labels_dict": labels_dict,
428
471
  }
429
472
  )
430
473
 
@@ -565,10 +608,19 @@ class ElectronicStructureBuilder(Builder):
565
608
  materials_doc["bandstructure"][bs_type]["lmaxmix"] = sorted_bs_data[0][
566
609
  "lmaxmix"
567
610
  ]
568
-
569
- bs_obj = self.bandstructure_fs.query_one(
570
- criteria={"fs_id": sorted_bs_data[0]["fs_id"]}
571
- )
611
+ if isinstance(self.bandstructure_fs, str):
612
+ _, _, bucket, prefix = self.bandstructure_fs.strip("/").split("/")
613
+ bs_obj = query_open_data(
614
+ bucket,
615
+ prefix,
616
+ sorted_bs_data[0]["task_id"],
617
+ monty_decode=False,
618
+ s3_resource=self._s3_resource,
619
+ )
620
+ else:
621
+ bs_obj = self.bandstructure_fs.query_one(
622
+ criteria={"fs_id": sorted_bs_data[0]["fs_id"]}
623
+ )
572
624
 
573
625
  materials_doc["bandstructure"][bs_type]["object"] = (
574
626
  bs_obj["data"] if bs_obj is not None else None
@@ -602,9 +654,20 @@ class ElectronicStructureBuilder(Builder):
602
654
 
603
655
  materials_doc["dos"]["lmaxmix"] = sorted_dos_data[0]["lmaxmix"]
604
656
 
605
- dos_obj = self.dos_fs.query_one(
606
- criteria={"fs_id": sorted_dos_data[0]["fs_id"]}
607
- )
657
+ if isinstance(self.bandstructure_fs, str):
658
+ _, _, bucket, prefix = self.dos_fs.strip("/").split("/")
659
+ dos_obj = query_open_data(
660
+ bucket,
661
+ prefix,
662
+ sorted_dos_data[0]["task_id"],
663
+ monty_decode=False,
664
+ s3_resource=self._s3_resource,
665
+ )
666
+ else:
667
+ dos_obj = self.dos_fs.query_one(
668
+ criteria={"fs_id": sorted_dos_data[0]["fs_id"]}
669
+ )
670
+
608
671
  materials_doc["dos"]["object"] = (
609
672
  dos_obj["data"] if dos_obj is not None else None
610
673
  )
@@ -1,6 +1,12 @@
1
- from typing import Set, Union
1
+ from typing import Set, Union, Any
2
2
  import sys
3
3
  import os
4
+ from gzip import GzipFile
5
+ import orjson
6
+ import json
7
+ from io import BytesIO
8
+ from monty.serialization import MontyDecoder
9
+ from botocore.exceptions import ClientError
4
10
  from itertools import chain, combinations
5
11
  from pymatgen.core import Structure
6
12
  from pymatgen.analysis.diffusion.neb.full_path_mapper import MigrationGraph
@@ -146,6 +152,56 @@ def get_hop_cutoff(
146
152
  return None
147
153
 
148
154
 
155
+ def query_open_data(
156
+ bucket: str,
157
+ prefix: str,
158
+ key: str,
159
+ monty_decode: bool = True,
160
+ s3_resource: Any = None,
161
+ ) -> Union[dict, None]:
162
+ """Query a Materials Project AWS S3 Open Data bucket directly with boto3
163
+
164
+ Args:
165
+ bucket (str): Materials project bucket name
166
+ prefix (str): Full set of file prefixes
167
+ key (str): Key for file
168
+ monty_decode (bool): Whether to monty decode or keep as dictionary. Defaults to True.
169
+ s3_resource (Optional[Any]): S3 resource. One will be instantiated if none are provided
170
+
171
+ Returns:
172
+ dict: MontyDecoded data or None
173
+ """
174
+
175
+ def decode(content, monty_decode):
176
+ if monty_decode:
177
+ result = MontyDecoder().decode(content)
178
+ else:
179
+ result = orjson.loads(content)
180
+ return result
181
+
182
+ try:
183
+ file_key = f"{prefix}/{key}.json.gz"
184
+ ref = s3_resource.Object(bucket, file_key) # type: ignore
185
+ bytes = ref.get()["Body"] # type: ignore
186
+
187
+ with GzipFile(fileobj=bytes, mode="r") as gzipfile:
188
+ content = gzipfile.read()
189
+
190
+ try:
191
+ result = decode(content, monty_decode)
192
+ except (orjson.JSONDecodeError, json.JSONDecodeError):
193
+ try:
194
+ with GzipFile(fileobj=BytesIO(content), mode="r") as gzipfile_nested:
195
+ result = decode(gzipfile_nested.read(), monty_decode)
196
+ except Exception:
197
+ print(f"Issue decoding {file_key} from bucket {bucket}")
198
+ return None
199
+ except ClientError:
200
+ return None
201
+
202
+ return result
203
+
204
+
149
205
  # From: https://stackoverflow.com/a/45669280
150
206
  class HiddenPrints:
151
207
  def __enter__(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: emmet-builders
3
- Version: 0.57.1
3
+ Version: 0.58.0
4
4
  Summary: Builders for the Emmet Library
5
5
  Home-page: https://github.com/materialsproject/emmet
6
6
  Author: The Materials Project
@@ -1,5 +1,5 @@
1
1
  emmet-core[all]
2
- maggma>=0.49.17
2
+ maggma>=0.51.9
3
3
  matminer>=0.7.3
4
4
 
5
5
  [docs]
@@ -14,9 +14,9 @@ bcrypt==4.0.1
14
14
  # via paramiko
15
15
  blinker==1.6.2
16
16
  # via flask
17
- boto3==1.26.153
17
+ boto3==1.26.160
18
18
  # via maggma
19
- botocore==1.29.153
19
+ botocore==1.29.160
20
20
  # via
21
21
  # boto3
22
22
  # s3transfer
@@ -42,18 +42,20 @@ dnspython==2.3.0
42
42
  # via
43
43
  # maggma
44
44
  # pymongo
45
- emmet-core[all]==0.56.1
45
+ emmet-core[all]==0.57.2
46
46
  # via
47
47
  # emmet-builders (emmet/emmet-builders/setup.py)
48
48
  # mp-api
49
49
  exceptiongroup==1.1.1
50
50
  # via anyio
51
- fastapi==0.97.0
51
+ fastapi==0.98.0
52
52
  # via maggma
53
53
  flask==2.3.2
54
54
  # via mongogrant
55
55
  fonttools==4.40.0
56
56
  # via matplotlib
57
+ frozendict==2.3.8
58
+ # via pymatgen
57
59
  future==0.18.3
58
60
  # via
59
61
  # matminer
@@ -82,7 +84,7 @@ kiwisolver==1.4.4
82
84
  # via matplotlib
83
85
  latexcodec==2.0.1
84
86
  # via pybtex
85
- maggma==0.51.8
87
+ maggma==0.51.9
86
88
  # via emmet-builders (emmet/emmet-builders/setup.py)
87
89
  markupsafe==2.1.3
88
90
  # via
@@ -172,7 +174,7 @@ pydantic==1.10.9
172
174
  # maggma
173
175
  pydash==7.0.4
174
176
  # via maggma
175
- pymatgen==2023.5.31
177
+ pymatgen==2023.6.23
176
178
  # via
177
179
  # emmet-core
178
180
  # matminer
@@ -184,14 +186,14 @@ pymatgen-analysis-alloys==0.0.6
184
186
  # via emmet-core
185
187
  pymatgen-analysis-diffusion==2022.7.21
186
188
  # via emmet-core
187
- pymongo==4.3.3
189
+ pymongo==4.4.0
188
190
  # via
189
191
  # maggma
190
192
  # matminer
191
193
  # mongogrant
192
194
  pynacl==1.5.0
193
195
  # via paramiko
194
- pyparsing==3.0.9
196
+ pyparsing==3.1.0
195
197
  # via matplotlib
196
198
  pyrsistent==0.19.3
197
199
  # via jsonschema
@@ -215,7 +217,7 @@ requests==2.31.0
215
217
  # pymatgen
216
218
  robocrys==0.2.8
217
219
  # via emmet-core
218
- ruamel-yaml==0.17.31
220
+ ruamel-yaml==0.17.32
219
221
  # via
220
222
  # pymatgen
221
223
  # robocrys
@@ -225,7 +227,7 @@ s3transfer==0.6.1
225
227
  # via boto3
226
228
  scikit-learn==1.2.2
227
229
  # via matminer
228
- scipy==1.10.1
230
+ scipy==1.11.0
229
231
  # via
230
232
  # -r python/requirements.txt
231
233
  # pymatgen
@@ -14,9 +14,9 @@ bcrypt==4.0.1
14
14
  # via paramiko
15
15
  blinker==1.6.2
16
16
  # via flask
17
- boto3==1.26.153
17
+ boto3==1.26.160
18
18
  # via maggma
19
- botocore==1.29.153
19
+ botocore==1.29.160
20
20
  # via
21
21
  # boto3
22
22
  # s3transfer
@@ -42,18 +42,20 @@ dnspython==2.3.0
42
42
  # via
43
43
  # maggma
44
44
  # pymongo
45
- emmet-core[all]==0.56.1
45
+ emmet-core[all]==0.57.2
46
46
  # via
47
47
  # emmet-builders (setup.py)
48
48
  # mp-api
49
49
  exceptiongroup==1.1.1
50
50
  # via anyio
51
- fastapi==0.97.0
51
+ fastapi==0.98.0
52
52
  # via maggma
53
53
  flask==2.3.2
54
54
  # via mongogrant
55
55
  fonttools==4.40.0
56
56
  # via matplotlib
57
+ frozendict==2.3.8
58
+ # via pymatgen
57
59
  future==0.18.3
58
60
  # via
59
61
  # matminer
@@ -82,7 +84,7 @@ kiwisolver==1.4.4
82
84
  # via matplotlib
83
85
  latexcodec==2.0.1
84
86
  # via pybtex
85
- maggma==0.51.8
87
+ maggma==0.51.9
86
88
  # via emmet-builders (setup.py)
87
89
  markupsafe==2.1.3
88
90
  # via
@@ -118,7 +120,7 @@ networkx==3.1
118
120
  # via
119
121
  # pymatgen
120
122
  # robocrys
121
- numpy==1.24.3
123
+ numpy==1.25.0
122
124
  # via
123
125
  # contourpy
124
126
  # maggma
@@ -168,7 +170,7 @@ pydantic==1.10.9
168
170
  # maggma
169
171
  pydash==7.0.4
170
172
  # via maggma
171
- pymatgen==2023.5.31
173
+ pymatgen==2023.6.23
172
174
  # via
173
175
  # emmet-core
174
176
  # matminer
@@ -180,14 +182,14 @@ pymatgen-analysis-alloys==0.0.6
180
182
  # via emmet-core
181
183
  pymatgen-analysis-diffusion==2022.7.21
182
184
  # via emmet-core
183
- pymongo==4.3.3
185
+ pymongo==4.4.0
184
186
  # via
185
187
  # maggma
186
188
  # matminer
187
189
  # mongogrant
188
190
  pynacl==1.5.0
189
191
  # via paramiko
190
- pyparsing==3.0.9
192
+ pyparsing==3.1.0
191
193
  # via matplotlib
192
194
  pyrsistent==0.19.3
193
195
  # via jsonschema
@@ -211,7 +213,7 @@ requests==2.31.0
211
213
  # pymatgen
212
214
  robocrys==0.2.8
213
215
  # via emmet-core
214
- ruamel-yaml==0.17.31
216
+ ruamel-yaml==0.17.32
215
217
  # via
216
218
  # pymatgen
217
219
  # robocrys
@@ -221,7 +223,7 @@ s3transfer==0.6.1
221
223
  # via boto3
222
224
  scikit-learn==1.2.2
223
225
  # via matminer
224
- scipy==1.10.1
226
+ scipy==1.11.0
225
227
  # via
226
228
  # pymatgen
227
229
  # robocrys
@@ -14,9 +14,9 @@ bcrypt==4.0.1
14
14
  # via paramiko
15
15
  blinker==1.6.2
16
16
  # via flask
17
- boto3==1.26.153
17
+ boto3==1.26.160
18
18
  # via maggma
19
- botocore==1.29.153
19
+ botocore==1.29.160
20
20
  # via
21
21
  # boto3
22
22
  # s3transfer
@@ -55,7 +55,7 @@ dnspython==2.3.0
55
55
  # via
56
56
  # maggma
57
57
  # pymongo
58
- emmet-core[all]==0.56.1
58
+ emmet-core[all]==0.57.2
59
59
  # via
60
60
  # emmet-builders (setup.py)
61
61
  # mp-api
@@ -63,7 +63,7 @@ exceptiongroup==1.1.1
63
63
  # via
64
64
  # anyio
65
65
  # pytest
66
- fastapi==0.97.0
66
+ fastapi==0.98.0
67
67
  # via maggma
68
68
  filelock==3.12.2
69
69
  # via virtualenv
@@ -73,13 +73,15 @@ flask==2.3.2
73
73
  # via mongogrant
74
74
  fonttools==4.40.0
75
75
  # via matplotlib
76
+ frozendict==2.3.8
77
+ # via pymatgen
76
78
  future==0.18.3
77
79
  # via
78
80
  # matminer
79
81
  # uncertainties
80
82
  ghp-import==2.1.0
81
83
  # via mkdocs
82
- griffe==0.29.0
84
+ griffe==0.29.1
83
85
  # via mkdocstrings-python
84
86
  htmlmin2==0.1.13
85
87
  # via mkdocs-minify-plugin
@@ -120,7 +122,7 @@ latexcodec==2.0.1
120
122
  # via pybtex
121
123
  livereload==2.6.3
122
124
  # via emmet-builders (setup.py)
123
- maggma==0.51.8
125
+ maggma==0.51.9
124
126
  # via emmet-builders (setup.py)
125
127
  markdown==3.3.7
126
128
  # via
@@ -193,13 +195,13 @@ msgpack==1.0.5
193
195
  # via
194
196
  # maggma
195
197
  # mp-api
196
- mypy==1.3.0
198
+ mypy==1.4.1
197
199
  # via emmet-builders (setup.py)
198
200
  mypy-extensions==1.0.0
199
201
  # via
200
202
  # emmet-builders (setup.py)
201
203
  # mypy
202
- natsort==8.3.1
204
+ natsort==8.4.0
203
205
  # via mkdocs-awesome-pages-plugin
204
206
  networkx==3.1
205
207
  # via
@@ -207,7 +209,7 @@ networkx==3.1
207
209
  # robocrys
208
210
  nodeenv==1.8.0
209
211
  # via pre-commit
210
- numpy==1.24.3
212
+ numpy==1.25.0
211
213
  # via
212
214
  # contourpy
213
215
  # maggma
@@ -240,11 +242,11 @@ paramiko==3.2.0
240
242
  # via sshtunnel
241
243
  pillow==9.5.0
242
244
  # via matplotlib
243
- platformdirs==3.5.3
245
+ platformdirs==3.8.0
244
246
  # via virtualenv
245
247
  plotly==5.15.0
246
248
  # via pymatgen
247
- pluggy==1.0.0
249
+ pluggy==1.2.0
248
250
  # via pytest
249
251
  pre-commit==3.3.3
250
252
  # via emmet-builders (setup.py)
@@ -275,7 +277,7 @@ pyflakes==3.0.1
275
277
  # via flake8
276
278
  pygments==2.15.1
277
279
  # via mkdocs-material
278
- pymatgen==2023.5.31
280
+ pymatgen==2023.6.23
279
281
  # via
280
282
  # emmet-core
281
283
  # matminer
@@ -291,18 +293,18 @@ pymdown-extensions==10.0.1
291
293
  # via
292
294
  # mkdocs-material
293
295
  # mkdocstrings
294
- pymongo==4.3.3
296
+ pymongo==4.4.0
295
297
  # via
296
298
  # maggma
297
299
  # matminer
298
300
  # mongogrant
299
301
  pynacl==1.5.0
300
302
  # via paramiko
301
- pyparsing==3.0.9
303
+ pyparsing==3.1.0
302
304
  # via matplotlib
303
305
  pyrsistent==0.19.3
304
306
  # via jsonschema
305
- pytest==7.3.2
307
+ pytest==7.4.0
306
308
  # via
307
309
  # emmet-builders (setup.py)
308
310
  # pytest-cov
@@ -337,7 +339,7 @@ requests==2.31.0
337
339
  # pymatgen
338
340
  robocrys==0.2.8
339
341
  # via emmet-core
340
- ruamel-yaml==0.17.31
342
+ ruamel-yaml==0.17.32
341
343
  # via
342
344
  # pymatgen
343
345
  # robocrys
@@ -347,7 +349,7 @@ s3transfer==0.6.1
347
349
  # via boto3
348
350
  scikit-learn==1.2.2
349
351
  # via matminer
350
- scipy==1.10.1
352
+ scipy==1.11.0
351
353
  # via
352
354
  # pymatgen
353
355
  # robocrys
@@ -402,7 +404,7 @@ tqdm==4.65.0
402
404
  # pymatgen
403
405
  types-requests==2.31.0.1
404
406
  # via emmet-builders (setup.py)
405
- types-setuptools==67.8.0.0
407
+ types-setuptools==68.0.0.0
406
408
  # via emmet-builders (setup.py)
407
409
  types-urllib3==1.26.25.13
408
410
  # via types-requests
@@ -421,7 +423,7 @@ urllib3==1.26.16
421
423
  # via
422
424
  # botocore
423
425
  # requests
424
- virtualenv==20.23.0
426
+ virtualenv==20.23.1
425
427
  # via pre-commit
426
428
  watchdog==3.0.0
427
429
  # via mkdocs
@@ -14,9 +14,9 @@ bcrypt==4.0.1
14
14
  # via paramiko
15
15
  blinker==1.6.2
16
16
  # via flask
17
- boto3==1.26.153
17
+ boto3==1.26.160
18
18
  # via maggma
19
- botocore==1.29.153
19
+ botocore==1.29.160
20
20
  # via
21
21
  # boto3
22
22
  # s3transfer
@@ -42,16 +42,18 @@ dnspython==2.3.0
42
42
  # via
43
43
  # maggma
44
44
  # pymongo
45
- emmet-core[all]==0.56.1
45
+ emmet-core[all]==0.57.2
46
46
  # via
47
47
  # emmet-builders (setup.py)
48
48
  # mp-api
49
- fastapi==0.97.0
49
+ fastapi==0.98.0
50
50
  # via maggma
51
51
  flask==2.3.2
52
52
  # via mongogrant
53
53
  fonttools==4.40.0
54
54
  # via matplotlib
55
+ frozendict==2.3.8
56
+ # via pymatgen
55
57
  future==0.18.3
56
58
  # via
57
59
  # matminer
@@ -80,7 +82,7 @@ kiwisolver==1.4.4
80
82
  # via matplotlib
81
83
  latexcodec==2.0.1
82
84
  # via pybtex
83
- maggma==0.51.8
85
+ maggma==0.51.9
84
86
  # via emmet-builders (setup.py)
85
87
  markupsafe==2.1.3
86
88
  # via
@@ -116,7 +118,7 @@ networkx==3.1
116
118
  # via
117
119
  # pymatgen
118
120
  # robocrys
119
- numpy==1.24.3
121
+ numpy==1.25.0
120
122
  # via
121
123
  # contourpy
122
124
  # maggma
@@ -166,7 +168,7 @@ pydantic==1.10.9
166
168
  # maggma
167
169
  pydash==7.0.4
168
170
  # via maggma
169
- pymatgen==2023.5.31
171
+ pymatgen==2023.6.23
170
172
  # via
171
173
  # emmet-core
172
174
  # matminer
@@ -178,14 +180,14 @@ pymatgen-analysis-alloys==0.0.6
178
180
  # via emmet-core
179
181
  pymatgen-analysis-diffusion==2022.7.21
180
182
  # via emmet-core
181
- pymongo==4.3.3
183
+ pymongo==4.4.0
182
184
  # via
183
185
  # maggma
184
186
  # matminer
185
187
  # mongogrant
186
188
  pynacl==1.5.0
187
189
  # via paramiko
188
- pyparsing==3.0.9
190
+ pyparsing==3.1.0
189
191
  # via matplotlib
190
192
  pyrsistent==0.19.3
191
193
  # via jsonschema
@@ -209,7 +211,7 @@ requests==2.31.0
209
211
  # pymatgen
210
212
  robocrys==0.2.8
211
213
  # via emmet-core
212
- ruamel-yaml==0.17.31
214
+ ruamel-yaml==0.17.32
213
215
  # via
214
216
  # pymatgen
215
217
  # robocrys
@@ -219,7 +221,7 @@ s3transfer==0.6.1
219
221
  # via boto3
220
222
  scikit-learn==1.2.2
221
223
  # via matminer
222
- scipy==1.10.1
224
+ scipy==1.11.0
223
225
  # via
224
226
  # pymatgen
225
227
  # robocrys