mpcontribs-client 5.10.5rc1__tar.gz → 5.10.5rc2__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 (19) hide show
  1. {mpcontribs_client-5.10.5rc1/mpcontribs_client.egg-info → mpcontribs_client-5.10.5rc2}/PKG-INFO +1 -1
  2. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/mpcontribs/client/__init__.py +10 -2
  3. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2/mpcontribs_client.egg-info}/PKG-INFO +1 -1
  4. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/mpcontribs_client.egg-info/SOURCES.txt +2 -1
  5. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/requirements/deployment.txt +2 -2
  6. mpcontribs_client-5.10.5rc2/tests/test_data_structs.py +35 -0
  7. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/LICENSE +0 -0
  8. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/README.md +0 -0
  9. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/mpcontribs_client.egg-info/dependency_links.txt +0 -0
  10. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/mpcontribs_client.egg-info/requires.txt +0 -0
  11. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/mpcontribs_client.egg-info/top_level.txt +0 -0
  12. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/pyproject.toml +0 -0
  13. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/requirements/ubuntu-latest_py3.11.txt +0 -0
  14. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/requirements/ubuntu-latest_py3.11_extras.txt +0 -0
  15. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/requirements/ubuntu-latest_py3.12.txt +0 -0
  16. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/requirements/ubuntu-latest_py3.12_extras.txt +0 -0
  17. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/setup.cfg +0 -0
  18. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/tests/conftest.py +0 -0
  19. {mpcontribs_client-5.10.5rc1 → mpcontribs_client-5.10.5rc2}/tests/test_client.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mpcontribs-client
3
- Version: 5.10.5rc1
3
+ Version: 5.10.5rc2
4
4
  Summary: Client library for MPContribs API
5
5
  Author-email: Patrick Huck <phuck@lbl.gov>, The Materials Project <feedback@materialsproject.org>
6
6
  License-Expression: BSD-3-Clause-LBNL
@@ -398,8 +398,16 @@ class Table(pd.DataFrame):
398
398
  """
399
399
  df = pd.DataFrame.from_records(
400
400
  dct["data"], columns=dct["columns"], index=dct["index"]
401
- ).apply(pd.to_numeric, errors="ignore")
402
- df.index = pd.to_numeric(df.index, errors="ignore")
401
+ )
402
+ for col in df.columns:
403
+ try:
404
+ df[col] = df[col].apply(pd.to_numeric)
405
+ except Exception as exc:
406
+ continue
407
+ try:
408
+ df.index = pd.to_numeric(df.index)
409
+ except Exception:
410
+ pass
403
411
  labels = dct["attrs"].get("labels", {})
404
412
 
405
413
  if "index" in labels:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mpcontribs-client
3
- Version: 5.10.5rc1
3
+ Version: 5.10.5rc2
4
4
  Summary: Client library for MPContribs API
5
5
  Author-email: Patrick Huck <phuck@lbl.gov>, The Materials Project <feedback@materialsproject.org>
6
6
  License-Expression: BSD-3-Clause-LBNL
@@ -13,4 +13,5 @@ requirements/ubuntu-latest_py3.11_extras.txt
13
13
  requirements/ubuntu-latest_py3.12.txt
14
14
  requirements/ubuntu-latest_py3.12_extras.txt
15
15
  tests/conftest.py
16
- tests/test_client.py
16
+ tests/test_client.py
17
+ tests/test_data_structs.py
@@ -20,7 +20,7 @@ bravado==12.0.1
20
20
  # via mpcontribs-client (MPContribs/mpcontribs-client/pyproject.toml)
21
21
  bravado-core==6.1.1
22
22
  # via bravado
23
- cachetools==6.2.5
23
+ cachetools==6.2.6
24
24
  # via mpcontribs-client (MPContribs/mpcontribs-client/pyproject.toml)
25
25
  certifi==2026.1.4
26
26
  # via requests
@@ -255,7 +255,7 @@ uri-template==1.3.0
255
255
  # via jsonschema
256
256
  urllib3==2.6.3
257
257
  # via requests
258
- wcwidth==0.4.0
258
+ wcwidth==0.5.0
259
259
  # via prompt-toolkit
260
260
  webcolors==25.10.0
261
261
  # via jsonschema
@@ -0,0 +1,35 @@
1
+ from mpcontribs.client import Table
2
+
3
+
4
+ def test_table():
5
+
6
+ data = {
7
+ "first_name": ["Todd", "Willie", "Mike"],
8
+ "family_name": ["Bonzalez", "Dustice", "Truk"],
9
+ "age": [31, 24, 28],
10
+ "batting_average": [0.777, 0.5, 0.81],
11
+ }
12
+ test_table = Table(data)
13
+
14
+ # Calling `as_dict` transforms the data in a `Table`
15
+ table_as_dict = Table(test_table.copy()).as_dict()
16
+ assert all(
17
+ table_as_dict.get(k) for k in ("attrs", "columns", "data", "index", "name")
18
+ )
19
+ table_info = test_table.info()
20
+ assert {y.strip() for y in table_info["columns"].split(",")} == set(
21
+ test_table.columns
22
+ )
23
+ assert table_info["nrows"] == len(test_table)
24
+
25
+ table_roundtrip = Table.from_dict(table_as_dict)
26
+
27
+ # `tolist()` needed to compare base python types
28
+ for t in (test_table, table_roundtrip):
29
+ assert all(
30
+ isinstance(v, str)
31
+ for col in ("family_name", "first_name")
32
+ for v in t[col].tolist()
33
+ )
34
+ assert all(isinstance(v, int) for v in t.age.tolist())
35
+ assert all(isinstance(v, float) for v in t.batting_average.tolist())