
OyTLc           @   sh  d  Z  d d l Z d d l Z d d l Z d d l m Z d d l Td d l m Z d d l	 m
 Z
 d d l m Z d d l m Z d d	 l m Z m Z m Z m Z m Z m Z m Z m Z d d
 l
 m Z d e f d     YZ d e f d     YZ d e
 f d     YZ d   Z d   Z d   Z d   Z d   Z d   Z  e! d  Z" d   Z# d   Z$ d S(   sU   setuptools.command.egg_info

Create a distribution's .egg-info directory and contentsiN(   t   Command(   t   *(   t   log(   t   sdist(   t   convert_path(   t   FileList(   t   parse_requirementst	   safe_namet   parse_versiont   safe_versiont   yield_linest
   EntryPointt   iter_entry_pointst   to_filename(   t   walk_revctrlt   egg_infoc           B   s   e  Z d  Z d d  d! d" d# d$ g Z d d g Z i d d 6d d 6Z d   Z d   Z d   Z e	 d  Z
 d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(%   s+   create a distribution's .egg-info directorys	   egg-base=t   esL   directory containing .egg-info directories (default: top of the source tree)s   tag-svn-revisiont   rs,   Add subversion revision ID to version numbers   tag-datet   ds0   Add date stamp (e.g. 20050528) to version numbers
   tag-build=t   bs-   Specify explicit tag to add to version numbers   no-svn-revisiont   Rs*   Don't add subversion revision ID [default]s   no-datet   Ds"   Don't include date stamp [default]c         C   sU   d  |  _ d  |  _ d  |  _ d  |  _ d  |  _ d |  _ d |  _ t |  _	 d  |  _
 d  S(   Ni    (   t   Nonet   egg_namet   egg_versiont   egg_baseR   t	   tag_buildt   tag_svn_revisiont   tag_datet   Falset   broken_egg_infot   vtags(   t   self(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyt   initialize_options*   s    								c         C   sC   d d l  m } | | i i d d 6d d 6|  j   d 6d 6 d  S(   Ni(   t   edit_configi    R   R   R   R   (   t   setoptR"   t   tags(   R    t   filenameR"   (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyt   save_version_info5   s
    c         C   s  t  |  j j    |  _ |  j   |  _ |  j   |  _ y$ t t	 d |  j |  j f   Wn- t
 k
 r t d |  j |  j f   n X|  j d  k r |  j j } | p i  j d t j  |  _ n  |  j d  t |  j  d |  _ |  j t j k rt j j |  j |  j  |  _ n  d |  j k r8|  j   n  |  j |  j j _ |  j j } | d  k	 r| j |  j j   k r|  j | _ t |  j  | _ d  |  j _ n  d  S(   Ns   %s==%ss2   Invalid distribution name or version syntax: %s-%st    R   s	   .egg-infot   -(    R   t   distributiont   get_nameR   R$   R   t   tagged_versionR   t   listR   t
   ValueErrort   DistutilsOptionErrorR   R   t   package_dirt   gett   ost   curdirt   ensure_dirnameR   R   t   patht   joint   check_broken_egg_infot   metadatat   versiont   _patched_distt   keyt   lowert   _versionR   t   _parsed_version(   R    t   dirst   pd(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyt   finalize_optionsS   s2    !!! $c         C   sl   | r |  j  | | |  nL t j j |  rh | d k rX | rX t j d | |  d S|  j |  n  d S(   s  Write `data` to `filename` or delete if empty

        If `data` is non-empty, this routine is the same as ``write_file()``.
        If `data` is empty but not ``None``, this is the same as calling
        ``delete_file(filename)`.  If `data` is ``None``, then this is a no-op
        unless `filename` exists, in which case a warning is issued about the
        orphaned file (if `force` is false), or deleted (if `force` is true).
        s$   %s not set in setup(), but %s existsN(   t
   write_fileR1   R4   t   existsR   R   t   warnt   delete_file(   R    t   whatR%   t   datat   force(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyt   write_or_delete_file|   s    	c         C   sj   t  j d | |  t j d k r4 | j d  } n  |  j sf t | d  } | j |  | j   n  d S(   s   Write `data` to `filename` (if not a dry run) after announcing it

        `what` is used in a log message to identify what is being written
        to the file.
        s   writing %s to %si   s   utf-8t   wbN(   i   (	   R   t   infot   syst   version_infot   encodet   dry_runt   opent   writet   close(   R    RE   R%   RF   t   f(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyRA      s    	c         C   s-   t  j d |  |  j s) t j |  n  d S(   s8   Delete `filename` (if not a dry run) after announcing its   deleting %sN(   R   RJ   RN   R1   t   unlink(   R    R%   (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyRD      s    	c         C   s   t  |  j j   |  j  S(   N(   R	   R)   t   get_versionR   (   R    (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR+      s    c         C   s   |  j  |  j  |  j j } xN t d  D]@ } | j d |  } | |  | j t j j	 |  j | j   q) Wt j j	 |  j d  } t j j
 |  r |  j |  n  |  j   d  S(   Ns   egg_info.writerst	   installers   native_libs.txt(   t   mkpathR   R)   t   fetch_build_eggR   t   loadt   nameR1   R4   R5   RB   RD   t   find_sources(   R    RU   t   ept   writert   nl(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyt   run   s    ,c         C   s   d } |  j  r | |  j  7} n  |  j rc t j j d  sL t j j d  rc | d |  j   7} n  |  j r d d  l } | | j d  7} n  | S(   NR'   s   .svns   PKG-INFOs   -r%sis   -%Y%m%d(	   R   R   R1   R4   RB   t   get_svn_revisionR   t   timet   strftime(   R    R8   R`   (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR$      s    		$	 c      
   C   s0  d } t  j d  } t  j d  } xt j t j  D]\ } } } d | k r_ g  | (q7 n  | j d  t t j j | d d   } | j	   } | j
   | j d  s | j d  s | j d  rPt t j | j d	   } | d d =| d d
 }	 t g  | D]2 }
 t |
  d k r|
 d rt |
 d  ^ qd g  } n | j d  r| j |  j d  }	 t g  | j |  D] } t | j d   ^ qd g  } n t j d |  g  | (q7 | t j k r|	 d } n |	 j |  s
g  | (q7 n  t | |  } q7 Wt | p,t    S(   Ni    s   url="([^"]+)"s   committed-rev="(\d+)"s   .svnt   entriest   10t   9t   8s   

i   i	   s   <?xmli   s-   unrecognized .svn/entries format; skipping %st   /(   t   ret   compileR1   t   walkR2   t   removeRO   R4   R5   t   readRQ   t
   startswitht   mapt   strt
   splitlinest   splitt   maxt   lent   intt   searcht   groupt   finditerR   RC   t   get_pkg_info_revision(   R    t   revisiont   urlret   revret   baseR>   t   filesRR   RF   t   dirurlR   t   localrevt   mt   base_url(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR_      s:    "
-OAc         C   sJ   t  j j |  j d  } t |  j  } | | _ | j   | j |  _ d S(   s"   Generate SOURCES.txt manifest files   SOURCES.txtN(	   R1   R4   R5   R   t   manifest_makerR)   t   manifestR^   t   filelist(   R    t   manifest_filenamet   mm(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyRZ      s
    	
c         C   s   |  j  d } |  j t j k r: t j j |  j |  } n  t j j |  r t j d d d d d | |  j	  |  j	 |  _
 | |  _	 n  d  S(   Ns	   .egg-infoR(   iN   s   
Note: Your current .egg-info directory has a '-' in its name;
this will not work correctly with "setup.py develop".

Please rename %s to %s to correct this problem.
(   R   R   R1   R2   R4   R5   RB   R   RC   R   R   (   R    t   bei(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR6     s    (   s	   egg-base=R   sL   directory containing .egg-info directories (default: top of the source tree)(   s   tag-svn-revisionR   s,   Add subversion revision ID to version number(   s   tag-dateR   s0   Add date stamp (e.g. 20050528) to version number(   s
   tag-build=R   s-   Specify explicit tag to add to version number(   s   no-svn-revisionR   s*   Don't add subversion revision ID [default](   s   no-dateR   s"   Don't include date stamp [default](   t   __name__t
   __module__t   descriptiont   user_optionst   boolean_optionst   negative_optR!   R&   R@   R   RH   RA   RD   R+   R^   R$   R_   RZ   R6   (    (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR      s0     	

			)						)	R   c           B   s   e  Z d  Z d   Z RS(   s@   File list that accepts only existing, platform-independent pathsc         C   sQ   | j  d  r | d  } n  t |  } t j j |  rM |  j j |  n  d  S(   Ns   i(   t   endswithR   R1   R4   RB   R|   t   append(   R    t   itemR4   (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR     s
    (   R   R   t   __doc__R   (    (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR     s   R   c           B   sM   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   s   MANIFEST.inc         C   s(   d |  _  d |  _ d |  _ d |  _ d  S(   Ni   (   t   use_defaultst   prunet   manifest_onlyt   force_manifest(   R    (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR!   &  s    			c         C   s   d  S(   N(    (   R    (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR@   ,  s    c         C   s   t    |  _ t j j |  j  s. |  j   n  |  j j   |  j   t j j |  j	  rg |  j
   n  |  j   |  j j   |  j j   |  j   d  S(   N(   R   R   R1   R4   RB   R   t   write_manifestt   findallt   add_defaultst   templatet   read_templatet   prune_file_listt   sortt   remove_duplicates(   R    (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR^   /  s    

c         C   sm   |  j  j } t j d k rF g  | D] } | j t j d  ^ q" } n  |  j t |  j | f d |  j  d S(   s   Write the file list in 'self.filelist' (presumably as filled in
        by 'add_defaults()' and 'read_template()') to the manifest file
        named by 'self.manifest'.
        Rf   s   writing manifest file '%s'N(   R   R|   R1   t   sept   replacet   executeRA   R   (   R    R|   RR   (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR   <  s
    +c         C   s&   | j  d  s" t j |  |  n  d  S(   Ns   standard file not found:(   Rl   R   RC   (   R    t   msg(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyRC   G  s    c         C   s   t  j |   |  j j |  j  |  j j |  j  t t    } | r[ |  j j |  n" t	 j
 j |  j  r} |  j   n  |  j d  } |  j j d d | j d  S(   NR   R   t   prefix(   R   R   R   R   R   R   R,   R   t   extendR1   R4   RB   t   read_manifestt   get_finalized_commandt   include_patternR   (   R    t   rcfilest   ei_cmd(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR   K  s    c         C   s   |  j  d  } |  j j   } |  j j d  d | j |  j j d  d | t j t	 j
  } |  j j | d | d d d  S(   Nt   buildR   s   (RCS|CVS|\.svn)t   is_regexi   (   R   R)   t   get_fullnameR   t   exclude_patternR   t
   build_baseRg   t   escapeR1   R   (   R    R   t   base_dirR   (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR   W  s    (
   R   R   R   R!   R@   R^   R   RC   R   R   (    (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR   "  s   						c         C   sZ   d j  |  } t j d k r0 | j d  } n  t |  d  } | j |  | j   d S(   s{   Create a file with the specified name and write 'contents' (a
    sequence of strings without line terminators) to it.
    s   
i   s   utf-8RI   N(   i   (   R5   RK   RL   RM   RO   RP   RQ   (   R%   t   contentsRR   (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyRA   `  s    c         C   s   t  j d |  |  j s |  j j } |  j | j | _ } |  j | j | _ } z | j	 |  j
  Wd  | | | _ | _ Xt |  j d d   } d d  l } | j |  j
 |  n  d  S(   Ns
   writing %st   zip_safei(   R   RJ   RN   R)   R7   R   R8   R   RY   t   write_pkg_infoR   t   getattrR   t	   bdist_eggt   write_safety_flag(   t   cmdt   basenameR%   R7   t   oldvert   oldnamet   safeR   (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR   w  s    	 c         C   s&   t  j j |  r" t j d  n  d  S(   Nss   WARNING: 'depends.txt' is not used by setuptools 0.6!
Use the install_requires/extras_require setup() args instead.(   R1   R4   RB   R   RC   (   R   R   R%   (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyt   warn_depends_obsolete  s    c      	   C   s   |  j  } d j t | j p d   g } xI | j p9 i  j   D]2 \ } } | j d | d j t |   f  q@ W|  j d | d j |   d  S(   Ns   
s	   

[%s]
%st   requirementsR'   (    (   R)   R5   R
   t   install_requirest   extras_requiret   itemsR   RH   (   R   R   R%   t   distRF   t   extrat   reqs(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyt   write_requirements  s
    	!"*c         C   s_   t  j g  |  j j   D] } | j d d  d ^ q  } |  j d | d j |  d  d  S(   Nt   .i   i    s   top-level namess   
(   t   dictt   fromkeysR)   t   iter_distribution_namesRp   RA   R5   (   R   R   R%   t   kt   pkgs(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyt   write_toplevel_names  s    2c         C   s   t  |  | | t  d  S(   N(   t	   write_argt   True(   R   R   R%   (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyt   overwrite_arg  s    c         C   sg   t  j j |  d } t |  j | d   } | d  k	 rM d j |  d } n  |  j | | | |  d  S(   Ni    s   
(   R1   R4   t   splitextR   R)   R   R5   RH   (   R   R   R%   RG   t   argnamet   value(    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyR     s
    c         C   s   |  j  j } t | t  s' | d  k r0 | } n | d  k	 r g  } xs | j   D]e \ } } t | t  s t j | |  } d j t	 t
 | j     } n  | j d | | f  qO Wd j |  } n  |  j d | | t  d  S(   Ns   
s	   [%s]
%s

R'   s   entry points(   R)   t   entry_pointst
   isinstancet
   basestringR   R   R   t   parse_groupR5   Rm   Rn   t   valuesR   RH   R   (   R   R   R%   R[   RF   t   sectionR   (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyt   write_entries  s    	!c          C   sn   t  j j d  rj t d d  }  x9 |  D]1 } t j d |  } | r( t | j d   Sq( W|  j   n  d S(   Ns   PKG-INFOt   rUs   Version:.*-r(\d+)\s*$i   i    (	   R1   R4   RB   RO   Rg   t   matchRs   Ru   RQ   (   RR   t   lineR   (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyRw     s    (%   R   R1   Rg   RK   t
   setuptoolsR    t   distutils.errorst	   distutilsR   t   setuptools.command.sdistR   t   distutils.utilR   t   distutils.filelistR   t   pkg_resourcesR   R   R   R	   R
   R   R   R   R   R   R   RA   R   R   R   R   R   R   R   R   Rw   (    (    (    s?   /usr/lib/python2.7/dist-packages/setuptools/command/egg_info.pyt   <module>   s*   $
:>					
		