Ñò
$8Zc           @   sy   d  Z  d d k l Z d d k l Z l Z l Z l Z l Z l	 Z	 l
 Z
 l Z l Z l Z d e i f d „  ƒ  YZ d S(   so   Fixer for execfile.

This converts usages of the execfile function into calls to the built-in
exec() function.
i   (   t
   fixer_base(
   t   Commat   Namet   Callt   LParent   RParent   Dott   Nodet   ArgListt   Stringt   symst   FixExecfilec           B   s   e  Z d  Z d „  Z RS(   s«   
    power< 'execfile' trailer< '(' arglist< filename=any [',' globals=any [',' locals=any ] ] > ')' > >
    |
    power< 'execfile' trailer< '(' filename=any ')' > >
    c         C   s¬  | p t  ‚ | d } | i d ƒ } | i d ƒ } | i d i d i ƒ  } t | i ƒ  g d | ƒ} t t i t d ƒ | g ƒ } t t i	 t
 ƒ  t d ƒ g ƒ t t i	 t ƒ  t ƒ  g ƒ g }	 | g |	 }
 | i ƒ  } d | _ t d	 d ƒ } |
 t ƒ  | t ƒ  | g } t t d
 ƒ | d ƒ } | g } | d  j	 o  | i t ƒ  | i ƒ  g ƒ n | d  j	 o  | i t ƒ  | i ƒ  g ƒ n t t d ƒ | d | i ƒS(   Nt   filenamet   globalst   localsiÿÿÿÿt   rparenu   openu   readu    u   'exec'u   compileu    u   exect   prefix(   t   AssertionErrort   gett   childrent   cloneR   R   R
   t   powerR   t   trailerR   R   R   R   R	   R   R   t   Nonet   extend(   t   selft   nodet   resultsR   R   R   t   execfile_parent	   open_argst	   open_callt   readt	   open_exprt   filename_argt   exec_strt   compile_argst   compile_callt   args(    (    s0   /usr/lib/python2.6/lib2to3/fixes/fix_execfile.pyt	   transform   s*    
!		  (   t   __name__t
   __module__t   PATTERNR&   (    (    (    s0   /usr/lib/python2.6/lib2to3/fixes/fix_execfile.pyR      s   N(   t   __doc__t    R    t
   fixer_utilR   R   R   R   R   R   R   R   R	   R
   t   BaseFixR   (    (    (    s0   /usr/lib/python2.6/lib2to3/fixes/fix_execfile.pyt   <module>   s   F