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

Allow more numpy and pandas in sandbox

parent fcb9a1da
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
Wendelin is a product containing general purpose tools to handle big Wendelin is a product containing general purpose tools to handle big
data manipulations. data manipulations.
""" """
from AccessControl import allow_module, allow_type 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
...@@ -37,11 +37,22 @@ allow_module('numpy') ...@@ -37,11 +37,22 @@ allow_module('numpy')
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', \
'complex64', 'complex128',): 'complex64', 'complex128'):
z = np.array([0,], dtype = dtype) z = np.array([0,], dtype = dtype)
allow_type(type(z[0])) allow_type(type(z[0]))
allow_type(type(z)) allow_type(type(z))
sz = np.array([(0,)], dtype = [('f0', dtype)])
allow_type(type(sz[0]))
allow_type(type(sz))
rz = np.rec.array(np.array([(0,)], dtype = [('f0', dtype)]))
allow_type(type(rz[0]))
allow_type(type(rz))
sz = np.array([('2017-07-12T12:30:20',)], dtype=[('date', 'M8[s]')])
allow_type(type(sz[0]['date']))
allow_module('sklearn') allow_module('sklearn')
allow_module('scipy') allow_module('scipy')
...@@ -53,13 +64,20 @@ allow_type(type(np.c_)) ...@@ -53,13 +64,20 @@ allow_type(type(np.c_))
import pandas as pd import pandas as pd
allow_type(pd.Series) allow_type(pd.Series)
allow_type(pd.Timestamp)
allow_type(pd.DatetimeIndex) allow_type(pd.DatetimeIndex)
allow_type(pd.DataFrame) allow_type(pd.DataFrame)
allow_class(pd.DataFrame)
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 and ZBigArray objects # write access to ndarray and ZBigArray 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
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)
\ No newline at end of file
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