î
½1kd2!  ã               @   sû   d  d l  Z  d  d l Z d  d l Z d  d l m Z d  d l Z d  d l m Z d  d l m	 Z	 d  d l
 m Z d  d l m Z d Z d
 d d „ Z Gd d „  d e ƒ Z d
 d d „ Z e d e j d e j ƒ ƒ e j g Z Gd d „  d e ƒ Z d S)é    N)Úglob)Úsdist)Úconvert_path)Úlog)Ú	svn_utilsÚREADMEú
README.rstú
README.txtÚ c             c   s@   x9 t  j d ƒ D]( } x | j ƒ  |  ƒ D] } | Vq) Wq Wd S)z%Find all files under revision controlzsetuptools.file_findersN)Úpkg_resourcesÚiter_entry_pointsÚload)ÚdirnameÚepÚitem© r   úN/var/www/pythonscrapper/code/venv/build/setuptools/setuptools/command/sdist.pyÚwalk_revctrl   s    r   c               @   sL   e  Z d  Z d Z d d „  d d „ Z d d „  Z d d	 d
 „ Z e Z d S)Ú	re_finderzc
    Finder that locates files based on entries in a file matched by a
    regular expression.
    c             C   s   |  S)Nr   )Úxr   r   r   Ú<lambda>   s    zre_finder.<lambda>c             C   s%   | |  _  | |  _ t | ƒ |  _ d  S)N)ÚpatternÚpostprocr   Úentries_path)ÚselfÚpathr   r   r   r   r   Ú__init__   s    		zre_finder.__init__c             c   s}   t  | d ƒ } z | j ƒ  } Wd  | j ƒ  XxI |  j j | ƒ D]5 } | j d ƒ } |  j | ƒ } t j | | ƒ Vq@ Wd  S)NÚrUé   )	ÚopenÚreadÚcloser   ÚfinditerÚgroupr   r   Újoinpath)r   r   ÚfilenameÚfÚdataÚmatchr   r   r   r   Ú_finder"   s    zre_finder._finderr
   c             c   sš   t  j | |  j ƒ } t j j | ƒ s+ d  Sxh |  j | | ƒ D]T } t j j | ƒ r^ | Vq> t j j | ƒ r> x |  j | ƒ D] } | Vq€ Wq> q> Wd  S)N)	r   r$   r   Úosr   Úisfiler)   ÚisdirÚfind)r   r   r   r   r   r   r   r-   /   s    zre_finder.findN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r)   r-   Ú__call__r   r   r   r   r      s
   r   c             c   s1   x* t  D]" } x | |  ƒ D] } | Vq Wq Wd S)zPrimary svn_cvs entry pointN)Úfinders)r   Úfinderr   r   r   r   Ú_default_revctrl>   s    r5   zCVS/Entriesz^\w?/([^/]+)/c               @   sè   e  Z d  Z d Z d  d d d d f d! g Z i  Z d d „  Z d d „  Z e j	 d" k  p– d# e j	 k ou d$ k  n p– d% e j	 k o” d& k  n Z
 e
 r¨ e Z n  d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z d S)'r   z=Smart sdist that finds anything supported by revision controlúformats=Nú6formats for source distribution (comma-separated list)z	keep-tempÚkz1keep the distribution tree around after creating zarchive file(s)ú	dist-dir=ÚdúFdirectory to put the source distribution archive(s) in [default: dist]c             C   s  |  j  d ƒ |  j d ƒ } | j |  _ |  j j t j j | j d ƒ ƒ |  j ƒ  x! |  j	 ƒ  D] } |  j  | ƒ qa Wd d  l
 } d | j j k r£ |  j ƒ  n  |  j ƒ  t |  j d g  ƒ } x< |  j D]1 } d d | f } | | k rÌ | j | ƒ qÌ qÌ Wd  S)NÚegg_infozSOURCES.txtr   ÚcheckÚ
dist_filesr   r
   )Úrun_commandÚget_finalized_commandÚfilelistÚappendr*   r   Újoinr<   Úcheck_readmeÚget_sub_commandsÚdistutils.commandÚcommandÚ__all__Zcheck_metadataZmake_distributionÚgetattrÚdistributionZarchive_files)r   Zei_cmdÚcmd_nameÚ	distutilsr>   Úfiler'   r   r   r   Úrun[   s     "

z	sdist.runc          	   C   sD   y t  j |  ƒ Wn, t j ƒ  d j j j d j ƒ  ‚  Yn Xd  S)Né   Útemplate)Ú_sdistÚread_templateÚsysÚexc_infoÚtb_nextÚtb_frameÚf_localsr!   )r   r   r   r   Z__read_template_hackt   s
    !zsdist.__read_template_hackrO   é   é   r   r   é   c                s`  t  |  j j g } xÂ | D]º } t | t ƒ r� | } d } x: | D]2 } t j j | ƒ rA d } |  j j	 | ƒ PqA qA W| sÓ |  j
 d d j | ƒ ƒ qÓ q t j j | ƒ rÂ |  j j	 | ƒ q |  j
 d | ƒ q Wd d g } xH | D]@ } t t t j j t | ƒ ƒ ƒ } | rê |  j j | ƒ qê qê W|  j j ƒ  r·|  j d ƒ } |  j j | j ƒ  ƒ |  j j s·xC | j D]5 \ }	 ‰  }	 }
 |  j j ‡  f d	 d
 †  |
 Dƒ ƒ qxWq·n  |  j j ƒ  rî|  j d ƒ } |  j j | j ƒ  ƒ n  |  j j ƒ  r%|  j d ƒ } |  j j | j ƒ  ƒ n  |  j j ƒ  r\|  j d ƒ } |  j j | j ƒ  ƒ n  d  S)Nr   r   z,standard file not found: should have one of z, zstandard file '%s' not foundztest/test*.pyz	setup.cfgÚbuild_pyc                s%   g  |  ] } t  j j ˆ  | ƒ ‘ q Sr   )r*   r   rC   )Ú.0r%   )Úsrc_dirr   r   ú
<listcomp>¯   s   	z&sdist.add_defaults.<locals>.<listcomp>Ú	build_extÚ
build_clibÚbuild_scripts)ÚREADMESrJ   Úscript_nameÚ
isinstanceÚtupler*   r   ÚexistsrA   rB   ÚwarnrC   ÚlistÚfilterr+   r   ÚextendÚhas_pure_modulesr@   Zget_source_filesZinclude_package_dataÚ
data_filesÚhas_ext_modulesÚhas_c_librariesÚhas_scripts)r   Z	standardsÚfnZaltsZgot_itÚoptionalr   Úfilesr[   Ú_Ú	filenamesr_   r`   ra   r   )r]   r   Úadd_defaults‰   sL    	!zsdist.add_defaultsc             C   sE   x> t  D] } t j j | ƒ r d  Sq W|  j d d j t  ƒ ƒ d  S)Nz,standard file not found: should have one of z, )rb   r*   r   rf   rg   rC   )r   r&   r   r   r   rD   ¾   s
    zsdist.check_readmec             C   sƒ   t  j |  | | ƒ t j j | d ƒ } t t d ƒ ri t j j | ƒ ri t j | ƒ |  j d | ƒ n  |  j	 d ƒ j
 | ƒ d  S)Nz	setup.cfgÚlinkr<   )rQ   Úmake_release_treer*   r   rC   Úhasattrrf   ÚunlinkÚ	copy_filer@   Zsave_version_info)r   Úbase_dirrr   Údestr   r   r   rw   Ç   s    !zsdist.make_release_treec          
   C   sY   t  j j |  j ƒ s d St |  j d ƒ } z | j ƒ  } Wd  | j ƒ  X| d j ƒ  k S)NFÚrbUz+# file GENERATED by distutils, do NOT edit
)r*   r   r+   Úmanifestr   Úreadliner!   Úencode)r   ÚfpÚ
first_liner   r   r   Ú_manifest_is_not_generatedÔ   s    z sdist._manifest_is_not_generatedc             C   sÊ   t  j d |  j ƒ t |  j d ƒ } x” | D]Œ } t j d k r€ y | j d ƒ } Wq€ t k
 r| t  j d | ƒ w, Yq€ Xn  | j	 ƒ  } | j
 d ƒ s, | r¨ q, n  |  j j | ƒ q, W| j ƒ  d S)	zªRead the manifest file (named by 'self.manifest') and use it to
        fill in 'self.filelist', the list of files to include in the source
        distribution.
        zreading manifest file '%s'r}   rY   zUTF-8z"%r not UTF-8 decodable -- skippingú#N)rY   )r   Úinfor~   r   rS   Úversion_infoÚdecodeÚUnicodeDecodeErrorrg   ÚstripÚ
startswithrA   rB   r!   )r   r~   Úliner   r   r   Úread_manifestà   s    zsdist.read_manifest)r6   Nr7   )r9   r:   r;   )rO   rX   rO   )rY   r   )rY   r   rZ   )rY   rO   )rY   rO   r   )r.   r/   r0   r1   Úuser_optionsÚnegative_optrN   Z_sdist__read_template_hackrS   r†   Zhas_leaky_handlerR   ru   rD   rw   rƒ   rŒ   r   r   r   r   r   K   s*     		5	r   )r   r   r	   )r*   ÚrerS   r   r   Zdistutils.command.sdistr   rQ   Údistutils.utilr   rL   r   Ú
setuptoolsr   rb   r   Úobjectr   r5   ÚcompileÚMZ
svn_finderr3   r   r   r   r   Ú<module>   s   '