Copyright (C) 2000-2012 |
GNU Info (python2.1-lib.info)RExec ObjectsRExec Objects ------------- `RExec' instances support the following methods: `r_eval(code)' CODE must either be a string containing a Python expression, or a compiled code object, which will be evaluated in the restricted environment's `__main__' module. The value of the expression or code object will be returned. `r_exec(code)' CODE must either be a string containing one or more lines of Python code, or a compiled code object, which will be executed in the restricted environment's `__main__' module. `r_execfile(filename)' Execute the Python code contained in the file FILENAME in the restricted environment's `__main__' module. Methods whose names begin with `s_' are similar to the functions beginning with `r_', but the code will be granted access to restricted versions of the standard I/O streams `sys.stdin', `sys.stderr', and `sys.stdout'. `s_eval(code)' CODE must be a string containing a Python expression, which will be evaluated in the restricted environment. `s_exec(code)' CODE must be a string containing one or more lines of Python code, which will be executed in the restricted environment. `s_execfile(code)' Execute the Python code contained in the file FILENAME in the restricted environment. `RExec' objects must also support various methods which will be implicitly called by code executing in the restricted environment. Overriding these methods in a subclass is used to change the policies enforced by a restricted environment. `r_import(modulename[, globals[, locals[, fromlist]]])' Import the module MODULENAME, raising an `ImportError' exception if the module is considered unsafe. `r_open(filename[, mode[, bufsize]])' Method called when `open()' is called in the restricted environment. The arguments are identical to those of `open()', and a file object (or a class instance compatible with file objects) should be returned. `RExec''s default behaviour is allow opening any file for reading, but forbidding any attempt to write a file. See the example below for an implementation of a less restrictive `r_open()'. `r_reload(module)' Reload the module object MODULE, re-parsing and re-initializing it. `r_unload(module)' Unload the module object MODULE (i.e., remove it from the restricted environment's `sys.modules' dictionary). And their equivalents with access to restricted standard I/O streams: `s_import(modulename[, globals[, locals[, fromlist]]])' Import the module MODULENAME, raising an `ImportError' exception if the module is considered unsafe. `s_reload(module)' Reload the module object MODULE, re-parsing and re-initializing it. `s_unload(module)' Unload the module object MODULE. automatically generated by info2www version 1.2.2.9 |