;
Ðâ"Ic            	   @   sl   d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z Gd „  d e j ƒ Z d d „ Z
 d S(   u   
Main program for 2to3.
i    Ni   (   u   refactorc                sD   |  Ee  Z d  Z ‡  f d †  Z d „  Z ‡  f d †  Z d „  Z ‡  S(   u"   
    Prints output to stdout.
    c                s)   | |  _  t t |  ƒ j | | | ƒ d  S(   N(   u	   nobackupsu   superu   StdoutRefactoringToolu   __init__(   u   selfu   fixersu   optionsu   explicitu	   nobackups(   u	   __class__(    u)   /mit/python/lib/python3.0/lib2to3/main.pyu   __init__   s    	c             O   s3   |  j  j | | | f ƒ |  j j | | | Ž d  S(   N(   u   errorsu   appendu   loggeru   error(   u   selfu   msgu   argsu   kwargs(    (    u)   /mit/python/lib/python3.0/lib2to3/main.pyu	   log_error   s    c                sñ   |  j  pÇ | d } t j j | ƒ oR y t j | ƒ Wqy t j k
 o+ } z |  j d | ƒ WYd  d  } ~ Xqy Xn y t j | | ƒ WqÑ t j k
 o. } z |  j d | | ƒ WYd  d  } ~ XqÑ Xn t t	 |  ƒ j
 | | | ƒ d  S(   Nu   .baku   Can't remove backup %su   Can't rename %s to %s(   u	   nobackupsu   osu   pathu   lexistsu   removeu   erroru   log_messageu   renameu   superu   StdoutRefactoringToolu
   write_file(   u   selfu   new_textu   filenameu   old_textu   backupu   err(   u	   __class__(    u)   /mit/python/lib/python3.0/lib2to3/main.pyu
   write_file   s    

(+c             C   s   x | D] } t  | ƒ q Wd  S(   N(   u   print(   u   selfu   linesu   line(    (    u)   /mit/python/lib/python3.0/lib2to3/main.pyu   print_output+   s     (   u   __name__u
   __module__u   __doc__u   __init__u	   log_erroru
   write_fileu   print_output(   u
   __locals__(    (   u	   __class__u)   /mit/python/lib/python3.0/lib2to3/main.pyu   StdoutRefactoringTool   s
   
	u   StdoutRefactoringToolc          	      s„  t  j d d ƒ } | j d d d d d d ƒ| j d	 d
 d d d g  d d ƒ| j d d d d d g  d d ƒ| j d d d d d d ƒ| j d d d d d d ƒ| j d d d d d d ƒ| j d d d d d d ƒ| j d d d d d d0 d d ƒd0 } | j | ƒ \ } } | j o | j o | j d  ƒ n | j o> t	 d! ƒ x! t
 j ˆ  ƒ D] } t	 | ƒ qiW| p d" Sn | p+ t	 d# d$ t j ƒt	 d% d$ t j ƒd& Sd' | k o, d1 } | j o t	 d( d$ t j ƒd& Sn | j o
 t j n t j } t j d) d* d+ | ƒ i | j d, 6} t t
 j ˆ  ƒ ƒ } t ‡  f d- †  | j Dƒ ƒ }	 t ƒ  }
 | j og d0 } x= | j D]2 } | d. k o
 d1 } q’|
 j ˆ  d/ | ƒ q’W| o | j |
 ƒ n |
 } n | j |
 ƒ } | j |	 ƒ } t t | ƒ | t |
 ƒ | j ƒ } | j p< | o | j ƒ  n | j
 | | j | j  ƒ | j! ƒ  n t" t# | j ƒ ƒ S(2   uþ   Main program.

    Args:
        fixer_pkg: the name of a package where the fixers are located.
        args: optional; a list of command line arguments. If omitted,
              sys.argv[1:] is used.

    Returns a suggested exit status (0, 1, 2).
    u   usageu"   refactor.py [options] file|dir ...u   -du   --doctests_onlyu   actionu
   store_trueu   helpu   Fix up doctests onlyu   -fu   --fixu   appendu   defaultu1   Each FIX specifies a transformation; default: allu   -xu   --nofixu   Prevent a fixer from being run.u   -lu   --list-fixesu/   List available transformations (fixes/fix_*.py)u   -pu   --print-functionu0   Modify the grammar so that print() is a functionu   -vu	   --verboseu   More verbose loggingu   -wu   --writeu   Write back modified filesu   -nu   --nobackupsu'   Don't write backups for modified files.u   Can't use -n without -wu2   Available transformations for the -f/--fix option:i    u1   At least one file or directory argument required.u   fileu   Use --help to show usage.i   u   -u   Can't write to stdin.u   formatu   %(name)s: %(message)su   levelu   print_functionc             3   s   |  ] } ˆ  d  | Vq d S(   u   .fix_N(    (   u   .0u   fix(   u	   fixer_pkg(    u)   /mit/python/lib/python3.0/lib2to3/main.pyu	   <genexpr>i   s    u   allu   .fix_FT($   u   optparseu   OptionParseru
   add_optionu   Falseu
   parse_argsu   writeu	   nobackupsu   erroru
   list_fixesu   printu   refactoru   get_all_fix_namesu   sysu   stderru   Trueu   verboseu   loggingu   DEBUGu   INFOu   basicConfigu   print_functionu   setu   get_fixers_from_packageu   nofixu   fixu   addu   unionu
   differenceu   StdoutRefactoringToolu   sortedu   errorsu   refactor_stdinu   doctests_onlyu	   summarizeu   intu   bool(   u	   fixer_pkgu   argsu   parseru   refactor_stdinu   optionsu   fixnameu   levelu   rt_optsu   avail_fixesu   unwanted_fixesu   explicitu   all_presentu   fixu	   requestedu   fixer_namesu   rt(    (   u	   fixer_pkgu)   /mit/python/lib/python3.0/lib2to3/main.pyu   main0   sz    

 	
		

 
!
(   u   __doc__u   sysu   osu   loggingu   optparseu    u   refactoru   RefactoringToolu   StdoutRefactoringToolu   Noneu   main(    (    (    u)   /mit/python/lib/python3.0/lib2to3/main.pyu   <module>   s   #