mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Allow log
template function to return specified default
on math domain error (#72960)
Fix regression for logarithm template
This commit is contained in:
parent
52149c442e
commit
88129dbe91
@ -1369,19 +1369,19 @@ def multiply(value, amount, default=_SENTINEL):
|
|||||||
|
|
||||||
def logarithm(value, base=math.e, default=_SENTINEL):
|
def logarithm(value, base=math.e, default=_SENTINEL):
|
||||||
"""Filter and function to get logarithm of the value with a specific base."""
|
"""Filter and function to get logarithm of the value with a specific base."""
|
||||||
try:
|
|
||||||
value_float = float(value)
|
|
||||||
except (ValueError, TypeError):
|
|
||||||
if default is _SENTINEL:
|
|
||||||
raise_no_default("log", value)
|
|
||||||
return default
|
|
||||||
try:
|
try:
|
||||||
base_float = float(base)
|
base_float = float(base)
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
if default is _SENTINEL:
|
if default is _SENTINEL:
|
||||||
raise_no_default("log", base)
|
raise_no_default("log", base)
|
||||||
return default
|
return default
|
||||||
return math.log(value_float, base_float)
|
try:
|
||||||
|
value_float = float(value)
|
||||||
|
return math.log(value_float, base_float)
|
||||||
|
except (ValueError, TypeError):
|
||||||
|
if default is _SENTINEL:
|
||||||
|
raise_no_default("log", value)
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
def sine(value, default=_SENTINEL):
|
def sine(value, default=_SENTINEL):
|
||||||
|
@ -447,6 +447,8 @@ def test_logarithm(hass):
|
|||||||
assert render(hass, "{{ 'no_number' | log(10, default=1) }}") == 1
|
assert render(hass, "{{ 'no_number' | log(10, default=1) }}") == 1
|
||||||
assert render(hass, "{{ log('no_number', 10, 1) }}") == 1
|
assert render(hass, "{{ log('no_number', 10, 1) }}") == 1
|
||||||
assert render(hass, "{{ log('no_number', 10, default=1) }}") == 1
|
assert render(hass, "{{ log('no_number', 10, default=1) }}") == 1
|
||||||
|
assert render(hass, "{{ log(0, 10, 1) }}") == 1
|
||||||
|
assert render(hass, "{{ log(0, 10, default=1) }}") == 1
|
||||||
|
|
||||||
|
|
||||||
def test_sine(hass):
|
def test_sine(hass):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user