Commit b2a1c875 authored by Klaus Wölfel's avatar Klaus Wölfel

Restricted: allow numpy reffunctions and more pandas indexing

parent 41f3d9e4
...@@ -34,6 +34,7 @@ from AccessControl import allow_module, allow_type, allow_class ...@@ -34,6 +34,7 @@ from AccessControl import allow_module, allow_type, allow_class
# we neeed to allow access to numpy's internal types # we neeed to allow access to numpy's internal types
import numpy as np import numpy as np
allow_module('numpy') allow_module('numpy')
allow_module('numpy.lib.recfunctions')
for dtype in ('int8', 'int16', 'int32', 'int64', \ for dtype in ('int8', 'int16', 'int32', 'int64', \
'uint8', 'uint16', 'uint32', 'uint64', \ 'uint8', 'uint16', 'uint32', 'uint64', \
'float16', 'float32', 'float64', \ 'float16', 'float32', 'float64', \
...@@ -75,10 +76,14 @@ allow_class(pd.core.groupby.DataFrameGroupBy) ...@@ -75,10 +76,14 @@ allow_class(pd.core.groupby.DataFrameGroupBy)
# Modify 'safetype' dict in full_write_guard function # Modify 'safetype' dict in full_write_guard function
# of RestrictedPython (closure) directly To allow # of RestrictedPython (closure) directly To allow
# write access to ndarray, ZBigArray and RAMArray objects # write access to ndarray, DataFrame, ZBigArray and RAMArray objects
from RestrictedPython.Guards import full_write_guard from RestrictedPython.Guards import full_write_guard
full_write_guard.func_closure[1].cell_contents.__self__[np.ndarray] = True full_write_guard.func_closure[1].cell_contents.__self__[np.ndarray] = True
full_write_guard.func_closure[1].cell_contents.__self__[np.core.records.recarray] = True full_write_guard.func_closure[1].cell_contents.__self__[np.core.records.recarray] = True
full_write_guard.func_closure[1].cell_contents.__self__[np.core.records.record] = True
full_write_guard.func_closure[1].cell_contents.__self__[pd.DataFrame] = True
full_write_guard.func_closure[1].cell_contents.__self__[pd.tseries.index.DatetimeIndex] = True
full_write_guard.func_closure[1].cell_contents.__self__[pd.core.indexing._iLocIndexer] = True
from wendelin.bigarray.array_zodb import ZBigArray from wendelin.bigarray.array_zodb import ZBigArray
full_write_guard.func_closure[1].cell_contents.__self__[ZBigArray] = True full_write_guard.func_closure[1].cell_contents.__self__[ZBigArray] = True
allow_type(ZBigArray) allow_type(ZBigArray)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment