mpcontribs-client 5.6.0__tar.gz → 5.6.2__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 (21) hide show
  1. {mpcontribs-client-5.6.0/mpcontribs_client.egg-info → mpcontribs-client-5.6.2}/PKG-INFO +2 -1
  2. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/mpcontribs/client/__init__.py +15 -4
  3. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2/mpcontribs_client.egg-info}/PKG-INFO +2 -1
  4. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/mpcontribs_client.egg-info/requires.txt +1 -0
  5. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/requirements/deployment.txt +2 -0
  6. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/requirements/ubuntu-latest_py3.10.txt +4 -2
  7. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/requirements/ubuntu-latest_py3.10_extras.txt +4 -2
  8. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/requirements/ubuntu-latest_py3.8.txt +3 -1
  9. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/requirements/ubuntu-latest_py3.8_extras.txt +3 -1
  10. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/requirements/ubuntu-latest_py3.9.txt +4 -2
  11. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/requirements/ubuntu-latest_py3.9_extras.txt +4 -2
  12. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/setup.py +1 -0
  13. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/LICENSE +0 -0
  14. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/README.md +0 -0
  15. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/mpcontribs_client.egg-info/SOURCES.txt +0 -0
  16. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/mpcontribs_client.egg-info/dependency_links.txt +0 -0
  17. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/mpcontribs_client.egg-info/not-zip-safe +0 -0
  18. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/mpcontribs_client.egg-info/top_level.txt +0 -0
  19. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/setup.cfg +0 -0
  20. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/tests/conftest.py +0 -0
  21. {mpcontribs-client-5.6.0 → mpcontribs-client-5.6.2}/tests/test_client.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mpcontribs-client
3
- Version: 5.6.0
3
+ Version: 5.6.2
4
4
  Summary: client library for MPContribs API
5
5
  Home-page: https://github.com/materialsproject/MPContribs/tree/master/mpcontribs-client
6
6
  Author: Patrick Huck
@@ -26,6 +26,7 @@ Requires-Dist: swagger-spec-validator
26
26
  Requires-Dist: tqdm
27
27
  Requires-Dist: ujson
28
28
  Requires-Dist: semantic-version
29
+ Requires-Dist: cachetools
29
30
  Provides-Extra: dev
30
31
  Requires-Dist: flake8; extra == "dev"
31
32
  Requires-Dist: pytest; extra == "dev"
@@ -59,6 +59,8 @@ from pint.converters import ScaleConverter
59
59
  from pint.errors import DimensionalityError
60
60
  from tempfile import gettempdir
61
61
  from plotly.express._chart_types import line as line_chart
62
+ from cachetools import cached, LRUCache
63
+ from cachetools.keys import hashkey
62
64
 
63
65
  RETRIES = 3
64
66
  MAX_WORKERS = 3
@@ -680,7 +682,9 @@ def _load(protocol, host, headers_json, project, version):
680
682
  projects = sorted(d["name"] for d in resp["data"])
681
683
  projects_json = ujson.dumps(projects)
682
684
  # expand regex-based query parameters for `data` columns
683
- return _expand_params(protocol, host, version, projects_json)
685
+ spec = _expand_params(protocol, host, version, projects_json, apikey=headers.get("x-api-key"))
686
+ spec.http_client.session.headers.update(headers)
687
+ return spec
684
688
 
685
689
 
686
690
  @functools.lru_cache(maxsize=1)
@@ -714,15 +718,22 @@ def _raw_specs(protocol, host, version):
714
718
  return spec_dict
715
719
 
716
720
 
717
- @functools.lru_cache(maxsize=100)
718
- def _expand_params(protocol, host, version, projects_json):
721
+ @cached(
722
+ cache=LRUCache(maxsize=100),
723
+ key=lambda protocol, host, version, projects_json, **kwargs: hashkey(
724
+ protocol, host, version, projects_json
725
+ )
726
+ )
727
+ def _expand_params(protocol, host, version, projects_json, apikey=None):
719
728
  columns = {"string": [], "number": []}
720
729
  projects = ujson.loads(projects_json)
721
- query = {"project__in": projects}
730
+ query = {"project__in": ",".join(projects)}
722
731
  query["_fields"] = ["columns"]
723
732
  url = f"{protocol}://{host}"
724
733
  http_client = RequestsClient()
725
734
  http_client.session.headers["Content-Type"] = "application/json"
735
+ if apikey:
736
+ http_client.session.headers["X-Api-Key"] = apikey
726
737
  resp = http_client.session.get(f"{url}/projects/", params=query).json()
727
738
 
728
739
  for proj in resp["data"]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mpcontribs-client
3
- Version: 5.6.0
3
+ Version: 5.6.2
4
4
  Summary: client library for MPContribs API
5
5
  Home-page: https://github.com/materialsproject/MPContribs/tree/master/mpcontribs-client
6
6
  Author: Patrick Huck
@@ -26,6 +26,7 @@ Requires-Dist: swagger-spec-validator
26
26
  Requires-Dist: tqdm
27
27
  Requires-Dist: ujson
28
28
  Requires-Dist: semantic-version
29
+ Requires-Dist: cachetools
29
30
  Provides-Extra: dev
30
31
  Requires-Dist: flake8; extra == "dev"
31
32
  Requires-Dist: pytest; extra == "dev"
@@ -15,6 +15,7 @@ swagger-spec-validator
15
15
  tqdm
16
16
  ujson
17
17
  semantic-version
18
+ cachetools
18
19
 
19
20
  [dev]
20
21
  flake8
@@ -18,6 +18,8 @@ bravado==11.0.3
18
18
  # via mpcontribs-client (MPContribs/mpcontribs-client/setup.py)
19
19
  bravado-core==6.1.0
20
20
  # via bravado
21
+ cachetools==5.3.2
22
+ # via mpcontribs-client (MPContribs/mpcontribs-client/setup.py)
21
23
  certifi==2023.11.17
22
24
  # via requests
23
25
  charset-normalizer==3.3.2
@@ -18,6 +18,8 @@ bravado==11.0.3
18
18
  # via mpcontribs-client (setup.py)
19
19
  bravado-core==6.1.0
20
20
  # via bravado
21
+ cachetools==5.3.2
22
+ # via mpcontribs-client (setup.py)
21
23
  certifi==2023.11.17
22
24
  # via requests
23
25
  charset-normalizer==3.3.2
@@ -50,7 +52,7 @@ idna==3.6
50
52
  # via
51
53
  # jsonschema
52
54
  # requests
53
- ipython==8.18.0
55
+ ipython==8.18.1
54
56
  # via mpcontribs-client (setup.py)
55
57
  isoduration==20.11.0
56
58
  # via jsonschema
@@ -215,7 +217,7 @@ tqdm==4.66.1
215
217
  # via
216
218
  # mpcontribs-client (setup.py)
217
219
  # pymatgen
218
- traitlets==5.13.0
220
+ traitlets==5.14.0
219
221
  # via
220
222
  # ipython
221
223
  # matplotlib-inline
@@ -18,6 +18,8 @@ bravado==11.0.3
18
18
  # via mpcontribs-client (setup.py)
19
19
  bravado-core==6.1.0
20
20
  # via bravado
21
+ cachetools==5.3.2
22
+ # via mpcontribs-client (setup.py)
21
23
  certifi==2023.11.17
22
24
  # via requests
23
25
  charset-normalizer==3.3.2
@@ -62,7 +64,7 @@ idna==3.6
62
64
  # requests
63
65
  iniconfig==2.0.0
64
66
  # via pytest
65
- ipython==8.18.0
67
+ ipython==8.18.1
66
68
  # via mpcontribs-client (setup.py)
67
69
  isoduration==20.11.0
68
70
  # via jsonschema
@@ -258,7 +260,7 @@ tqdm==4.66.1
258
260
  # via
259
261
  # mpcontribs-client (setup.py)
260
262
  # pymatgen
261
- traitlets==5.13.0
263
+ traitlets==5.14.0
262
264
  # via
263
265
  # ipython
264
266
  # matplotlib-inline
@@ -20,6 +20,8 @@ bravado==11.0.3
20
20
  # via mpcontribs-client (setup.py)
21
21
  bravado-core==6.1.0
22
22
  # via bravado
23
+ cachetools==5.3.2
24
+ # via mpcontribs-client (setup.py)
23
25
  certifi==2023.11.17
24
26
  # via requests
25
27
  charset-normalizer==3.3.2
@@ -244,7 +246,7 @@ tqdm==4.66.1
244
246
  # via
245
247
  # mpcontribs-client (setup.py)
246
248
  # pymatgen
247
- traitlets==5.13.0
249
+ traitlets==5.14.0
248
250
  # via
249
251
  # ipython
250
252
  # matplotlib-inline
@@ -20,6 +20,8 @@ bravado==11.0.3
20
20
  # via mpcontribs-client (setup.py)
21
21
  bravado-core==6.1.0
22
22
  # via bravado
23
+ cachetools==5.3.2
24
+ # via mpcontribs-client (setup.py)
23
25
  certifi==2023.11.17
24
26
  # via requests
25
27
  charset-normalizer==3.3.2
@@ -287,7 +289,7 @@ tqdm==4.66.1
287
289
  # via
288
290
  # mpcontribs-client (setup.py)
289
291
  # pymatgen
290
- traitlets==5.13.0
292
+ traitlets==5.14.0
291
293
  # via
292
294
  # ipython
293
295
  # matplotlib-inline
@@ -18,6 +18,8 @@ bravado==11.0.3
18
18
  # via mpcontribs-client (setup.py)
19
19
  bravado-core==6.1.0
20
20
  # via bravado
21
+ cachetools==5.3.2
22
+ # via mpcontribs-client (setup.py)
21
23
  certifi==2023.11.17
22
24
  # via requests
23
25
  charset-normalizer==3.3.2
@@ -52,7 +54,7 @@ idna==3.6
52
54
  # requests
53
55
  importlib-resources==6.1.1
54
56
  # via matplotlib
55
- ipython==8.18.0
57
+ ipython==8.18.1
56
58
  # via mpcontribs-client (setup.py)
57
59
  isoduration==20.11.0
58
60
  # via jsonschema
@@ -217,7 +219,7 @@ tqdm==4.66.1
217
219
  # via
218
220
  # mpcontribs-client (setup.py)
219
221
  # pymatgen
220
- traitlets==5.13.0
222
+ traitlets==5.14.0
221
223
  # via
222
224
  # ipython
223
225
  # matplotlib-inline
@@ -18,6 +18,8 @@ bravado==11.0.3
18
18
  # via mpcontribs-client (setup.py)
19
19
  bravado-core==6.1.0
20
20
  # via bravado
21
+ cachetools==5.3.2
22
+ # via mpcontribs-client (setup.py)
21
23
  certifi==2023.11.17
22
24
  # via requests
23
25
  charset-normalizer==3.3.2
@@ -64,7 +66,7 @@ importlib-resources==6.1.1
64
66
  # via matplotlib
65
67
  iniconfig==2.0.0
66
68
  # via pytest
67
- ipython==8.18.0
69
+ ipython==8.18.1
68
70
  # via mpcontribs-client (setup.py)
69
71
  isoduration==20.11.0
70
72
  # via jsonschema
@@ -260,7 +262,7 @@ tqdm==4.66.1
260
262
  # via
261
263
  # mpcontribs-client (setup.py)
262
264
  # pymatgen
263
- traitlets==5.13.0
265
+ traitlets==5.14.0
264
266
  # via
265
267
  # ipython
266
268
  # matplotlib-inline
@@ -38,6 +38,7 @@ setup(
38
38
  "tqdm",
39
39
  "ujson",
40
40
  "semantic-version",
41
+ "cachetools",
41
42
  ],
42
43
  extras_require={
43
44
  "dev": [