Enhance python_script to support "_getitem_" (#8541)
* Enhance python_script to support "_getitem_" In order to use dict / list structures in python scripts we need _getitem_ allowed in the RestrictedPython environment. There is a default_guarded_getitem included with RestrictedPython, which is a pass through used in the Eval code paths. * Add tests for dict/list support in python_scripts * Lint
This commit is contained in:
parent
ee05a4ab89
commit
8d1999dc12
2 changed files with 18 additions and 0 deletions
|
@ -65,6 +65,7 @@ def execute(hass, filename, source, data=None):
|
|||
from RestrictedPython import compile_restricted_exec
|
||||
from RestrictedPython.Guards import safe_builtins, full_write_guard
|
||||
from RestrictedPython.Utilities import utility_builtins
|
||||
from RestrictedPython.Eval import default_guarded_getitem
|
||||
|
||||
compiled = compile_restricted_exec(source, filename=filename)
|
||||
|
||||
|
@ -99,6 +100,7 @@ def execute(hass, filename, source, data=None):
|
|||
'_getattr_': protected_getattr,
|
||||
'_write_': full_write_guard,
|
||||
'_getiter_': iter,
|
||||
'_getitem_': default_guarded_getitem
|
||||
}
|
||||
logger = logging.getLogger('{}.{}'.format(__name__, filename))
|
||||
local = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue