Ñò
6»‚Uc           @   sÈ   d  d k  l  Z  d  d k l Z d  d k i i Z d  d k Z d  d k Z d  d k	 Z	 d  d k
 Z
 y d  d k l Z Wn& e j
 o d d
 d „  ƒ  YZ n Xd e i e f d „  ƒ  YZ d	 „  Z d S(   iÿÿÿÿ(   t   glob(   t   convert_pathN(   t	   Mixin2to3R   c           B   s   e  Z e d  „ Z RS(   c         C   s   d S(   s
   do nothingN(    (   t   selft   filest   doctests(    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyt   run_2to3   s    (   t   __name__t
   __module__t   TrueR   (    (    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyR      s   t   build_pyc           B   sƒ   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z RS(   sX  Enhanced 'build_py' command that includes data files with packages

    The data files are specified via a 'package_data' argument to 'setup()'.
    See 'setuptools.dist.Distribution' for more details.

    Also, this version of the 'build_py' command allows you to specify both
    'py_modules' and 'packages' in the same setup operation.
    c         C   si   t  i i |  ƒ |  i i |  _ |  i i p h  |  _ d |  i j o |  i d =n g  |  _ g  |  _ d  S(   Nt
   data_files(	   t   origR
   t   finalize_optionst   distributiont   package_datat   exclude_package_datat   __dict__t   _build_py__updated_filest   _build_py__doctests_2to3(   R   (    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyR      s    		c         C   s±   |  i  o |  i o d S|  i  o |  i ƒ  n |  i o |  i ƒ  |  i ƒ  n |  i |  i t ƒ |  i |  i t ƒ |  i |  i	 t ƒ |  i
 t i i |  d d ƒƒ d S(   s?   Build modules, packages, and copy data files to build directoryNt   include_bytecodei    (   t
   py_modulest   packagest   build_modulest   build_packagest   build_package_dataR   R   t   FalseR	   R   t   byte_compileR   R
   t   get_outputs(   R   (    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyt   run%   s    


c         C   s8   | d j o |  i  ƒ  |  _ } | St i i |  | ƒ S(   NR   (   t   _get_data_filesR   R   R
   t   __getattr__(   R   t   attrR   (    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyR   9   s    c         C   sF   t  i i |  | | | ƒ \ } } | o |  i i | ƒ n | | f S(   N(   R   R
   t   build_moduleR   t   append(   R   t   modulet   module_filet   packaget   outfilet   copied(    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyR!   ?   s
    c   	      C   s½   |  i  ƒ  g  } x¦ |  i p d D]” } |  i | ƒ } t i i |  i g | i d ƒ Œ  } t | ƒ d } g  } |  i	 | | ƒ D] } | | | q‚ ~ } | i
 | | | | f ƒ q! W| S(   s?   Generate list of '(package,src_dir,build_dir,filenames)' tuplest   .i   (    (   t   analyze_manifestR   t   get_package_dirt   ost   patht   joint	   build_libt   splitt   lent   find_data_filesR"   (	   R   t   dataR%   t   src_dirt	   build_dirt   plent   _[1]t   filet	   filenames(    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyR   F   s    
 %1c         C   sŠ   |  i  i d g  ƒ |  i  i | g  ƒ } |  i i | g  ƒ } x6 | D]. } | i t t i i | t | ƒ ƒ ƒ ƒ qE W|  i	 | | | ƒ S(   s6   Return filenames for package's data files in 'src_dir't    (
   R   t   gett   manifest_filest   extendR    R+   R,   R-   R   t   exclude_data_files(   R   R%   R3   t   globsR   t   pattern(    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyR1   [   s     ,c   
      C   sÐ   xÉ |  i  D]¾ \ } } } } x© | D]¡ } t i i | | ƒ } |  i t i i | ƒ ƒ t i i | | ƒ } |  i | | ƒ \ } }	 t i i | ƒ } |	 o' | |  i i	 j o |  i
 i | ƒ q# q# Wq
 Wd S(   s$   Copy data files into build directoryN(   R   R+   R,   R-   t   mkpatht   dirnamet	   copy_filet   abspathR   t   convert_2to3_doctestsR   R"   (
   R   R%   R3   R4   R8   t   filenamet   targett   srcfilet   outfR'   (    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyR   e   s    
  c         C   sh  h  |  _  } |  i i p d  Sh  } x1 |  i p d D] } | | t |  i | ƒ ƒ <q6 W|  i d ƒ |  i d ƒ } xì | i i	 D]Þ } t
 i i t | ƒ ƒ \ } } d  } | }	 xY | oQ | | j oD | | j o7 | } t
 i i | ƒ \ } }
 t
 i i |
 | ƒ } qµ W| | j oE | i d ƒ o | |	 j o q‚ n | i | | g  ƒ i | ƒ q‚ q‚ Wd  S(   Nt   egg_infos   .py(    (   R;   R   t   include_package_dataR   t   assert_relativeR*   t   run_commandt   get_finalized_commandt   filelistR   R+   R,   R/   t   NoneR-   t   endswitht
   setdefaultR"   (   R   t   mft   src_dirsR%   t   ei_cmdR,   t   dt   ft   prevt   oldft   df(    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyR)   r   s.       !c         C   s   d  S(   N(    (   R   (    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyt   get_data_filesŠ   s    c      	   C   s  y |  i  | SWn t j
 o n Xt i i |  | | ƒ } | |  i  | <| p |  i i o | Sx> |  i i D], } | | j p | i | d ƒ o Pqr qr W| St | d ƒ } d i	 ƒ  | i
 ƒ  j o' d d k l } | d | f ƒ ‚ n | i ƒ  | S(   s8   Check namespace packages' __init__ for declare_namespaceR(   t   rbUt   declare_namespaceiÿÿÿÿ(   t   DistutilsErrorsÁ   Namespace package problem: %s is a namespace package, but its
__init__.py does not call declare_namespace()! Please fix it.
(See the setuptools manual under "Namespace Packages" for details.)
"(   t   packages_checkedt   KeyErrorR   R
   t   check_packageR   t   namespace_packagest
   startswitht   opent   encodet   readt   distutils.errorsR]   t   close(   R   R%   t   package_dirt   init_pyt   pkgRV   R]   (    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyR`      s*     !	
c         C   s   h  |  _  t i i |  ƒ d  S(   N(   R^   R   R
   t   initialize_options(   R   (    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyRk   ­   s    	c         C   sF   t  i i |  | ƒ } |  i i d  j	 o t i i |  i i | ƒ S| S(   N(	   R   R
   R*   R   t   src_rootRO   R+   R,   R-   (   R   R%   t   res(    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyR*   ±   s    c   
      C   sÒ   |  i  i d g  ƒ |  i  i | g  ƒ } g  } x< | D]4 } | i t i | t i i | t | ƒ ƒ ƒ ƒ q5 Wt	 i
 | ƒ } h  } g  } | D]> }	 |	 | j o+ |	 | j o | i |	 d ƒ o | |	 q q ~ S(   s6   Filter filenames for package's data files in 'src_dir'R9   i   (   R   R:   R<   t   fnmatcht   filterR+   R,   R-   R   t   dictt   fromkeysRQ   (
   R   R%   R3   R   R>   t   badR?   t   seenR6   RV   (    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyR=   ·   s     &(   R   R   t   __doc__R   R   R   R!   R   R1   R   R)   RZ   R`   Rk   R*   R=   (    (    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyR
      s   	
					
				 		c         C   sQ   t  i i |  ƒ p |  Sd d k l } t i d ƒ i ƒ  |  } | | ƒ ‚ d  S(   Niÿÿÿÿ(   t   DistutilsSetupErrorsÓ   
        Error: setup script specifies an absolute path:

            %s

        setup() arguments must *always* be /-separated paths relative to the
        setup.py directory, *never* absolute paths.
        (   R+   R,   t   isabsRf   Ru   t   textwrapt   dedentt   lstrip(   R,   Ru   t   msg(    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyRK   Ê   s    (    (   R    t   distutils.utilR   t   distutils.command.build_pyt   commandR
   R   R+   t   sysRn   Rw   t   setuptools.lib2to3_exR   t   ImportErrorRK   (    (    (    sC   /home/rpmbuild/BUILD/setuptools-18.1/setuptools/command/build_py.pyt   <module>   s   ¹