mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 22:27:07 +00:00
Add more builtins to safe list (python_script) (#42146)
This commit is contained in:
parent
1c58a0fedc
commit
f92ebde75a
@ -5,15 +5,18 @@ import logging
|
|||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from RestrictedPython import compile_restricted_exec
|
from RestrictedPython import (
|
||||||
|
compile_restricted_exec,
|
||||||
|
limited_builtins,
|
||||||
|
safe_builtins,
|
||||||
|
utility_builtins,
|
||||||
|
)
|
||||||
from RestrictedPython.Eval import default_guarded_getitem
|
from RestrictedPython.Eval import default_guarded_getitem
|
||||||
from RestrictedPython.Guards import (
|
from RestrictedPython.Guards import (
|
||||||
full_write_guard,
|
full_write_guard,
|
||||||
guarded_iter_unpack_sequence,
|
guarded_iter_unpack_sequence,
|
||||||
guarded_unpack_sequence,
|
guarded_unpack_sequence,
|
||||||
safe_builtins,
|
|
||||||
)
|
)
|
||||||
from RestrictedPython.Utilities import utility_builtins
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.const import SERVICE_RELOAD
|
from homeassistant.const import SERVICE_RELOAD
|
||||||
@ -178,12 +181,21 @@ def execute(hass, filename, source, data=None):
|
|||||||
|
|
||||||
return getattr(obj, name, default)
|
return getattr(obj, name, default)
|
||||||
|
|
||||||
|
extra_builtins = {
|
||||||
|
"datetime": datetime,
|
||||||
|
"sorted": sorted,
|
||||||
|
"time": TimeWrapper(),
|
||||||
|
"dt_util": dt_util,
|
||||||
|
"min": min,
|
||||||
|
"max": max,
|
||||||
|
"sum": sum,
|
||||||
|
"any": any,
|
||||||
|
"all": all,
|
||||||
|
}
|
||||||
builtins = safe_builtins.copy()
|
builtins = safe_builtins.copy()
|
||||||
builtins.update(utility_builtins)
|
builtins.update(utility_builtins)
|
||||||
builtins["datetime"] = datetime
|
builtins.update(limited_builtins)
|
||||||
builtins["sorted"] = sorted
|
builtins.update(extra_builtins)
|
||||||
builtins["time"] = TimeWrapper()
|
|
||||||
builtins["dt_util"] = dt_util
|
|
||||||
logger = logging.getLogger(f"{__name__}.{filename}")
|
logger = logging.getLogger(f"{__name__}.{filename}")
|
||||||
restricted_globals = {
|
restricted_globals = {
|
||||||
"__builtins__": builtins,
|
"__builtins__": builtins,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user