Skip to content

Commit d9a6d8e

Browse files
committed
pint>=0.24
1 parent 07f842b commit d9a6d8e

2 files changed

Lines changed: 14 additions & 23 deletions

File tree

mpcontribs-api/mpcontribs/api/contributions/document.py

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,7 @@
3333
lambda s: s.replace("%", " percent "),
3434
],
3535
)
36-
if hasattr(ureg,"formatter"):
37-
# for newer versions of pint
38-
ureg.formatter.default_format = "~,P"
39-
else:
40-
ureg.default_format = "~,P"
36+
ureg.formatter.default_format = "~,P"
4137

4238
if "percent" not in ureg:
4339
# percent is native in pint >= 0.21
@@ -76,12 +72,12 @@ def format_cell(cell):
7672
return cell
7773

7874
q = get_quantity(cell)
79-
if not q or isnan(q.nominal_value):
75+
if not q or isnan(q.magnitude.nominal_value):
8076
return cell
8177

8278
q = truncate_digits(q)
8379
try:
84-
return str(q.nominal_value) if isnan(q.std_dev) else str(q)
80+
return str(q.magnitude.nominal_value) if isnan(q.magnitude.std_dev) else str(q)
8581
except Exception:
8682
return cell
8783

@@ -104,19 +100,16 @@ def get_quantity(s):
104100

105101
try:
106102
parts[0] = ufloat_fromstr(parts[0])
107-
meas = ureg.Measurement(*parts)
108-
if not hasattr(meas,"nominal_value") and (val := hasattr(meas,"value")):
109-
meas.nominal_value = float(val) # Measurement.value is a `Quantity` object
110-
return meas
103+
return ureg.Measurement(*parts)
111104
except ValueError:
112105
return None
113106

114107

115108
def truncate_digits(q):
116-
if isnan(q.nominal_value):
109+
if isnan(q.magnitude.nominal_value):
117110
return q
118111

119-
v = Decimal(str(q.nominal_value))
112+
v = Decimal(str(q.magnitude.nominal_value))
120113
vt = v.as_tuple()
121114

122115
if vt.exponent >= 0:
@@ -125,8 +118,8 @@ def truncate_digits(q):
125118
dgts = len(vt.digits)
126119
dgts = max_dgts if dgts > max_dgts else dgts
127120
s = f"{v:.{dgts}g}"
128-
if not isnan(q.std_dev):
129-
s += f"+/-{q.std_dev:.{dgts}g}"
121+
if not isnan(q.magnitude.std_dev):
122+
s += f"+/-{q.magnitude.std_dev:.{dgts}g}"
130123

131124
if q.units:
132125
s += f" {q.units}"
@@ -277,7 +270,7 @@ def make_quantities(path, key, value):
277270
return key, value
278271

279272
# silently ignore "nan"
280-
if isnan(q.nominal_value):
273+
if isnan(q.magnitude.nominal_value):
281274
return False
282275

283276
# ensure that the same units are used across contributions
@@ -305,11 +298,11 @@ def make_quantities(path, key, value):
305298
q = truncate_digits(q)
306299

307300
# return new value dict
308-
display = str(q.value) if isnan(q.std_dev) else str(q)
301+
display = str(q.value) if isnan(q.magnitude.std_dev) else str(q)
309302
value = {
310303
"display": display,
311-
"value": q.nominal_value,
312-
"error": q.std_dev,
304+
"value": q.magnitude.nominal_value,
305+
"error": q.magnitude.std_dev,
313306
"unit": str(q.units),
314307
}
315308
return key, value

mpcontribs-api/setup.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"more-itertools",
3333
"nbformat",
3434
"notebook<7",
35-
"pint",
35+
"pint>=0.24",
3636
"psycopg2-binary",
3737
"pymatgen",
3838
"pyopenssl",
@@ -44,9 +44,7 @@
4444
"websocket_client",
4545
"zstandard",
4646
],
47-
extras_require={
48-
"dev": ["pytest", "flake8"]
49-
},
47+
extras_require={"dev": ["pytest", "flake8"]},
5048
license="MIT",
5149
zip_safe=False,
5250
)

0 commit comments

Comments
 (0)