Minor speedup for remove_infinites, refs #2629

This commit is contained in:
Simon Willison 2026-01-24 22:07:54 -08:00
commit 2f7b120177

View file

@ -901,18 +901,26 @@ _infinities = {float("inf"), float("-inf")}
def remove_infinites(row):
to_check = row
"""
Replace float('inf') and float('-inf') with None in a row.
Returns the original row object unchanged if no infinities are found.
"""
if isinstance(row, dict):
to_check = row.values()
if not any((c in _infinities) if isinstance(c, float) else 0 for c in to_check):
return row
if isinstance(row, dict):
return {
k: (None if (isinstance(v, float) and v in _infinities) else v)
for k, v in row.items()
}
for v in row.values():
if isinstance(v, float) and v in _infinities:
return {
k: (None if isinstance(v2, float) and v2 in _infinities else v2)
for k, v2 in row.items()
}
else:
return [None if (isinstance(c, float) and c in _infinities) else c for c in row]
for v in row:
if isinstance(v, float) and v in _infinities:
return [
None if isinstance(v2, float) and v2 in _infinities else v2
for v2 in row
]
return row
class StaticMount(click.ParamType):