mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 20:57:21 +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):
|
||||
"""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:
|
||||
base_float = float(base)
|
||||
except (ValueError, TypeError):
|
||||
if default is _SENTINEL:
|
||||
raise_no_default("log", base)
|
||||
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):
|
||||
|
@ -447,6 +447,8 @@ def test_logarithm(hass):
|
||||
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, default=1) }}") == 1
|
||||
assert render(hass, "{{ log(0, 10, 1) }}") == 1
|
||||
assert render(hass, "{{ log(0, 10, default=1) }}") == 1
|
||||
|
||||
|
||||
def test_sine(hass):
|
||||
|
Loading…
x
Reference in New Issue
Block a user