File: //proc/3/root/lib64/python2.7/rexec.pyo
�
zfc           @   s#  d  Z  d d l m Z e d d d �[ d d l Z d d l Z d d l Z d d l Z d d l Z d g Z d f  d	 �  �  YZ	 d
 e	 f d �  �  YZ
 d Z d
 e	 f d �  �  YZ d e j
 f d �  �  YZ e j Z e j Z d e j f d �  �  YZ d �  Z e d k re j e �  � n  d S(   s9  Restricted execution facilities.
The class RExec exports methods r_exec(), r_eval(), r_execfile(), and
r_import(), which correspond roughly to the built-in operations
exec, eval(), execfile() and import, but executing the code in an
environment that only exposes those built-in operations that are
deemed safe.  To this end, a modest collection of 'fake' modules is
created which mimics the standard modules by the same names.  It is a
policy decision which built-in modules and operations are made
available; this module provides a reasonable default, but derived
classes can change the policies e.g. by overriding or extending class
variables like ok_builtin_modules or methods like make_sys().
XXX To do:
- r_open should allow writing tmp dir
- r_exec etc. with explicit globals/locals? (Use rexec("exec ... in ...")?)
i����(   t   warnpy3ks/   the rexec module has been removed in Python 3.0t
   stackleveli   Nt   RExect   FileBasec           B   s   e  Z d Z RS(
   t   filenot   flusht   isattyt   readt   readlinet	   readlinest   seekt   tellt   writet
   writelinest
   xreadlinest   __iter__(   R   R   R   R   R   R	   R
   R   R   R
   R   R   (   t   __name__t
   __module__t   ok_file_methods(    (    (    s   /usr/lib64/python2.7/rexec.pyR       s     t   FileWrapperc           B   s   e  Z d  �  Z d �  Z RS(   c         C   sS   xL |  j  D]A } t |  | � r
 t | | � r
 t |  | t | | � � q
 q
 Wd  S(   N(   R   t   hasattrt   setattrt   getattr(   t   selft   ft   m(    (    s   /usr/lib64/python2.7/rexec.pyt   __init__+   s    c         C   s   |  j  �  d  S(   N(   R   (   R   (    (    s   /usr/lib64/python2.7/rexec.pyt   close0   s    (   R   R   R   R   (    (    (    s   /usr/lib64/python2.7/rexec.pyR   '