Restricted: Allow datetime module class attributes.
Restricted: Allow datetime module class attributes. To allow the class attributes, we add a helper method ``allow_class_attribute''. Why addng this is because allow_module can allow instance methods but not class attributes. For example, datetime.datetime.now(), datetime.datetime.max, dict.fromkeys(), Decimal.from_float(), epoll.fromfd(), itertools.chain.from_iterable() are class attributes in Python 2.7. Also, add a special in-advance-import for datetime.datetime.strptime(). It is because datetime.datetime.strptime() imports _strptime by C function PyImport_Import which calls __import__(name, globals, locals, fromlist=['__doc__'], level=0). The "level=0" is not supported by AccessControl in Zope2. At the same time, the dummy from '__doc__' is neither allowed in it by default. Therefore we import _strptime in advance in this monkey patch file. This prevents both importing _strptime with level=0, and accessing __doc__, when calling datetime.datetime.strptime() in Restricted environment. /cc @vpelletier @jm @klaus /reviewed-on !275
Showing
Please register or sign in to comment