î
½1kd-D  ã               @   sü  d  Z  d d l Z d d l Z d d l Z d d l m Z d d l m Z m Z y& d d l	 m
 Z
 m Z d d „  Z Wn4 e k
 r¬ d d l m Z m Z d	 d „  Z Yn Xd d
 l m Z d d l m Z d d l m Z m Z m Z d d l m Z d d l m Z d d l m Z m Z d d l m Z d d „  Z  d d „  Z! Gd d „  d e ƒ Z" e# j$ d j% ƒ  ƒ Z& d d „  Z' d d „  Z( d d „  Z) i d d 6d  d! 6Z* d" d# „  Z+ d$ d% „  Z, d& d' „  Z- d( d) d* d+ g Z. d d d d, d- d. „ Z/ d S)/z6setuptools.command.bdist_egg

Build .egg distributionsé    N)ÚCommand)Úremove_treeÚmkpath)Úget_pathÚget_python_versionc               C   s
   t  d ƒ S)NÚpurelib)r   © r   r   úR/var/www/pythonscrapper/code/venv/build/setuptools/setuptools/command/bdist_egg.pyÚ_get_purelib   s    r
   )Úget_python_libr   c               C   s
   t  d ƒ S)NF)r   r   r   r   r	   r
      s    )Úlog)ÚDistutilsSetupError)Úget_build_platformÚDistributionÚensure_directory)Ú
EntryPoint)ÚCodeType)Ú
basestringÚnext)ÚLibraryc             C   sK   d |  k r% t  j j |  ƒ d }  n  |  j d ƒ rG |  d  d … }  n  |  S)NÚ.r   Úmoduleé   iúÿÿÿ)ÚosÚpathÚsplitextÚendswith)Úfilenamer   r   r	   Ústrip_module   s
    r   c          
   C   sO   t  | d ƒ } | j d j d d d d |  d d d	 d
 g ƒ ƒ | j ƒ  d  S)NÚwÚ
zdef __bootstrap__():z-   global __bootstrap__, __loader__, __file__z!   import sys, pkg_resources, impz:   __file__ = pkg_resources.resource_filename(__name__,%r)z3   __loader__ = None; del __bootstrap__, __loader__z&   imp.load_dynamic(__name__,__file__)z__bootstrap__()Ú )ÚopenÚwriteÚjoinÚclose)ÚresourceÚpyfileÚfr   r   r	   Ú
write_stub"   s    r)   c               @   sÞ   e  Z d  Z d Z d* d d d e ƒ  f d+ d d d d f d, d- g Z d d d g Z d d „  Z d d „  Z d d „  Z	 d d „  Z
 d d „  Z d d „  Z d  d! „  Z d" d# „  Z d$ d% „  Z d& d' „  Z d( d) „  Z d	 S).Ú	bdist_eggzcreate an "egg" distributionú
bdist-dir=Úbú1temporary directory for creating the distributionz
plat-name=Úpz;platform name to embed in generated filenames (default: %s)úexclude-source-filesNú+remove all .py files from the generated eggz	keep-tempÚkz/keep the pseudo-installation tree around after z!creating the distribution archiveú	dist-dir=Údú-directory to put final built distributions inú
skip-buildú2skip rebuilding everything (for testing/debugging)c             C   sC   d  |  _  d  |  _ d |  _ d  |  _ d |  _ d  |  _ d  |  _ d  S)Nr   )Ú	bdist_dirÚ	plat_nameÚ	keep_tempÚdist_dirÚ
skip_buildÚ
egg_outputÚexclude_source_files)Úselfr   r   r	   Úinitialize_options]   s    						zbdist_egg.initialize_optionsc             C   sý   |  j  d ƒ } |  _ | j |  _ |  j d  k r^ |  j  d ƒ j } t j j | d ƒ |  _ n  |  j d  k r| t	 ƒ  |  _ n  |  j
 d d ƒ |  j d  k rù t d  d  | j | j t ƒ  |  j j ƒ  oË |  j ƒ j ƒ  } t j j |  j | d ƒ |  _ n  d  S)NÚegg_infoÚbdistÚeggr:   z.egg)údist_dirrC   )Úget_finalized_commandÚei_cmdr@   r7   Ú
bdist_baser   r   r$   r8   r   Úset_undefined_optionsr<   r   Úegg_nameZegg_versionr   ÚdistributionÚhas_ext_modulesr:   )r>   rE   rF   Úbasenamer   r   r	   Úfinalize_optionsg   s    !zbdist_egg.finalize_optionsc             C   sf  |  j  |  j d ƒ _ t j j t j j t ƒ  ƒ ƒ } |  j j	 g  } |  j _	 xÏ | D]Ç } t
 | t ƒ r
t | ƒ d k r
t j j | d ƒ r
t j j | d ƒ } t j j | ƒ } | | k sÝ | j | t j ƒ r| t | ƒ d d  … | d f } qq
n  |  j j	 j | ƒ qV Wz1 t j d |  j  ƒ |  j d d d d d  ƒWd  | |  j _	 Xd  S)	NÚinstallé   r   é   zinstalling package data to %sÚinstall_dataÚforceÚroot)r7   rD   Úinstall_libr   r   ÚnormcaseÚrealpathr
   rI   Ú
data_filesÚ
isinstanceÚtupleÚlenÚisabsÚ
startswithÚsepÚappendr   ÚinfoÚcall_command)r>   Úsite_packagesÚoldÚitemrU   Ú
normalizedr   r   r	   Údo_install_data†   s     !!-zbdist_egg.do_install_datac             C   s
   |  j  g S)N)r<   )r>   r   r   r	   Úget_outputs    s    zbdist_egg.get_outputsc             K   sm   x! t  D] } | j | |  j ƒ q W| j d |  j ƒ | j d |  j ƒ |  j | | � } |  j | ƒ | S)z8Invoke reinitialized command `cmdname` with keyword argsr;   Údry_run)ÚINSTALL_DIRECTORY_ATTRSÚ
setdefaultr7   r;   rf   Úreinitialize_commandÚrun_command)r>   ZcmdnameÚkwÚdirnameÚcmdr   r   r	   r_   ¤   s    zbdist_egg.call_commandc          	   C   sÍ  |  j  d ƒ t j d |  j ƒ |  j d ƒ } | j } d  | _ |  j j ƒ  rk |  j rk |  j  d ƒ n  |  j	 d d d ƒ} | | _ |  j
 ƒ  \ } } g  |  _ g  } xÀ t | ƒ D]² \ } } t j j | ƒ \ }	 }
 t j j |  j t |	 ƒ d ƒ } |  j j | ƒ t j d	 | ƒ |  j sCt t j j | ƒ | ƒ n  | j | ƒ | j t j d
 ƒ | | <q· W| rƒ| j | ƒ n  |  j j rœ|  j ƒ  n  |  j } t j j | d ƒ } |  j | ƒ |  j j rt j j | d ƒ } t j d | ƒ |  j	 d d | d d ƒn  |  j | ƒ t j j | d ƒ } | r£t j d | ƒ |  j sât | ƒ t | d ƒ } | j  d j | ƒ ƒ | j  d ƒ | j! ƒ  qân? t j j" | ƒ rât j d | ƒ |  j sât j# | ƒ qân  t$ t j j | d ƒ |  j% ƒ  ƒ t j j& t j j |  j' d ƒ ƒ r8t j( d ƒ n  |  j) rN|  j* ƒ  n  t+ |  j, | d |  j- d |  j d |  j. ƒ  ƒ|  j/ sžt0 |  j d |  j ƒn  t1 |  j d g  ƒ j d t2 ƒ  |  j, f ƒ d  S)Nr@   zinstalling library code to %srM   Ú
build_clibrS   Úwarn_dirr   z.pyzcreating stub loader for %sú/zEGG-INFOÚscriptszinstalling scripts to %sÚinstall_scriptsÚinstall_dirZno_eprO   znative_libs.txtz
writing %sÚwtr    zremoving %szdepends.txtzxWARNING: 'depends.txt' will not be used by setuptools 0.6!
Use the install_requires/extras_require setup() args instead.Úverboserf   ÚmodeÚ
dist_filesr*   )3rj   r   r^   r7   rD   rR   rI   Úhas_c_librariesr;   r_   Úget_ext_outputsÚstubsÚ	enumerater   r   r   r$   r   r]   rf   r)   rK   Úreplacer\   Úbyte_compilerV   rd   r   rq   Úcopy_metadata_tor   r"   r#   r%   ÚisfileÚunlinkÚwrite_safety_flagÚzip_safeÚexistsr@   Úwarnr=   Úzap_pyfilesÚmake_zipfiler<   ru   Ú
gen_headerr9   r   Úgetattrr   )r>   ZinstcmdZold_rootrm   Úall_outputsÚext_outputsZ
to_compiler.   Zext_namer   Úextr'   Zarchive_rootr@   Z
script_dirZnative_libsZ	libs_filer   r   r	   Úrun¯   sv    	 			"			
	$
		zbdist_egg.runc             C   s‰   t  j d ƒ xu t |  j ƒ D]d \ } } } xR | D]J } | j d ƒ r3 t j j | | ƒ } t  j d | ƒ t j	 | ƒ q3 q3 Wq Wd  S)Nz+Removing .py files from temporary directoryz.pyzDeleting %s)
r   r^   Úwalk_eggr7   r   r   r   r$   Údebugr€   )r>   ÚbaseÚdirsÚfilesÚnamer   r   r   r	   r…      s    zbdist_egg.zap_pyfilesc             C   sE   t  |  j d d  ƒ } | d  k	 r% | St j d ƒ t |  j |  j ƒ S)Nr‚   z4zip_safe flag not set; analyzing archive contents...)rˆ   rI   r   r„   Úanalyze_eggr7   rz   )r>   Úsafer   r   r	   r‚   	  s
    zbdist_egg.zip_safec       
      C   s'  t  j |  j j p d ƒ } | j d i  ƒ j d ƒ } | d  k rF d S| j sY | j ro t d | f ƒ ‚ n  t j	 d  d … } | j
 } d j | j ƒ } | j d } t j j |  j ƒ } d	 t ƒ  } |  j s#t t j j |  j ƒ d
 |  j ƒt |  j d ƒ }	 |	 j | ƒ |	 j ƒ  n  d S)Nr!   zsetuptools.installationZeggsecutabler   zGeggsecutable entry point (%r) cannot have 'extras' or refer to a moduleé   r   r   aH  #!/bin/sh
if [ `basename $0` = "%(basename)s" ]
then exec python%(pyver)s -c "import sys, os; sys.path.insert(0, os.path.abspath('$0')); from %(pkg)s import %(base)s; sys.exit(%(full)s())" "$@"
else
  echo $0 is not the correct name for this egg file.
  echo Please rename it back to %(basename)s and try again.
  exec false
fi
rf   Úa)r   Ú	parse_maprI   Zentry_pointsÚgetÚattrsÚextrasr   ÚsysÚversionÚmodule_namer$   r   r   rK   r<   Úlocalsrf   r   rl   r"   r#   r%   )
r>   ZepmÚepÚpyverÚpkgÚfullr�   rK   Úheaderr(   r   r   r	   r‡     s*    	
	"zbdist_egg.gen_headerc             C   s™   t  j j |  j ƒ } t  j j | d ƒ } xh |  j j j D]W } | j | ƒ r: t  j j | | t	 | ƒ d … ƒ } t
 | ƒ |  j | | ƒ q: q: Wd S)z*Copy metadata (egg info) to the target_dirr!   N)r   r   Únormpathr@   r$   rE   Úfilelistr‘   r[   rY   r   Ú	copy_file)r>   Ú
target_dirZnorm_egg_infoÚprefixr   Útargetr   r   r	   r~   ;  s    %
zbdist_egg.copy_metadata_toc             C   sŠ  g  } g  } i d |  j  6} x¤ t j |  j  ƒ D]� \ } } } xH | D]@ } t j j | ƒ d j ƒ  t k rE | j | | | ƒ qE qE Wx3 | D]+ } | | | d | t j j | | ƒ <q� Wq/ W|  j	 j
 ƒ  r€|  j d ƒ } xœ | j D]Ž }	 t |	 t ƒ rqë n  | j |	 j ƒ }
 | j |
 ƒ } t j j | ƒ j d ƒ së t j j t j j |  j  | ƒ ƒ ry| j | ƒ qyqë që Wn  | | f S)zAGet a list of relative paths to C extensions in the output distror!   rO   rp   Ú	build_extzdl-)r7   r   Úwalkr   r   ÚlowerÚNATIVE_EXTENSIONSr]   r$   rI   rJ   rD   Ú
extensionsrW   r   Zget_ext_fullnamer’   Zget_ext_filenamerK   r[   rƒ   )r>   r‰   rŠ   Úpathsr�   r�   r‘   r   Z	build_cmdr‹   Úfullnamer   r   r	   ry   G  s(    ""-$zbdist_egg.get_ext_outputs)r+   r,   r-   )r/   Nr0   )r2   r3   r4   )r5   Nr6   )Ú__name__Ú
__module__Ú__qualname__Údescriptionr   Úuser_optionsÚboolean_optionsr?   rL   rd   re   r_   rŒ   r…   r‚   r‡   r~   ry   r   r   r   r	   r*   4   s6    
   	
Q		)r*   z.dll .so .dylib .pydc             c   sh   t  j |  ƒ } t | ƒ \ } } } d | k r@ | j d ƒ n  | | | f Vx | D] } | VqU Wd S)z@Walk an unpacked egg's contents, skipping the metadata directoryzEGG-INFON)r   r«   r   Úremove)Úegg_dirÚwalkerr�   r�   r‘   Zbdfr   r   r	   r�   h  s    r�   c       	      C   sí   xB t  j ƒ  D]4 \ } } t j j t j j |  d | ƒ ƒ r | Sq Wt ƒ  sR d Sd } xŽ t |  ƒ D]€ \ } } } xn | D]f } | j d ƒ s{ | j d ƒ r¥ q{ q{ | j d ƒ sÃ | j d ƒ r{ t	 |  | | | ƒ oÛ | } q{ q{ Wqe W| S)NzEGG-INFOFTz.pyz.pywz.pycz.pyo)
Úsafety_flagsÚitemsr   r   rƒ   r$   Úcan_scanr�   r   Úscan_module)	r¸   rz   ÚflagÚfnr”   r�   r�   r‘   r’   r   r   r	   r“   r  s    $	 &r“   c             C   sÀ   x¹ t  j ƒ  D]« \ } } t j j |  | ƒ } t j j | ƒ rq | d  k s^ t | ƒ | k r¸ t j | ƒ q¸ q | d  k	 r t | ƒ | k r t | d ƒ } | j	 d ƒ | j
 ƒ  q q Wd  S)Nrt   r    )rº   r»   r   r   r$   rƒ   Úboolr€   r"   r#   r%   )r¸   r”   r¾   r¿   r(   r   r   r	   r�   ‚  s      r�   zzip-safeTznot-zip-safeFc             C   sõ  t  j j | | ƒ } | d d  … | k r/ d S| t |  ƒ d d … j t  j d ƒ } | | rg d pj d t  j j | ƒ d } t j d! k  rš d } n d	 } t	 | d
 ƒ } | j
 | ƒ t j | ƒ }	 | j ƒ  d }
 t j t |	 ƒ ƒ } x< d d g D]. } | | k rý t j d | | ƒ d }
 qý qý Wd | k r˜xZ d d d d d d d d d d d g D]. } | | k rct j d | | ƒ d }
 qcqcWn  d | k rñd | k rñd | k rñt j d d … d k rñt j d | ƒ d }
 qñn  |
 S)"z;Check whether module possibly uses unsafe-for-zipfile stuffNrO   Tr   r!   r   r•   é   é   ÚrbÚ__file__Ú__path__z%s: module references %sFÚinspectZ	getsourceZ
getabsfileZgetsourcefileZgetfilegetsourcelinesZ
findsourceZgetcommentsZgetframeinfoZgetinnerframesZgetouterframesÚstackÚtracez"%s: module MAY be using inspect.%sr±   Ú__main__z2.4z.%s: top-level module may be 'python -m' scriptéÿÿÿÿ)r•   r•   )r   r   r$   rY   r|   r\   r   r›   Úversion_infor"   ÚreadÚmarshalÚloadr%   ÚdictÚfromkeysÚiter_symbolsr   r„   rœ   )r¸   r�   r’   rz   r   r¡   r   Úskipr(   Úcoder”   ZsymbolsÚbadr   r   r	   r½   ‘  s>    )*	  
	$r½   c             c   sv   x |  j  D] } | Vq
 WxV |  j D]K } t | t ƒ r@ | Vq# t | t ƒ r# x t | ƒ D] } | Vq\ Wq# q# Wd S)zBYield names and strings used by `code` and its nested code objectsN)Úco_namesÚ	co_constsrW   r   r   rÑ   )rÓ   r’   Úconstr   r   r	   rÑ   ´  s     	rÑ   c               C   sD   t  j j d ƒ r& t  j d k r& d St j d ƒ t j d ƒ d  S)NÚjavaÚcliTz1Unable to analyze compiled code on this platform.zfPlease ask the author to include a 'zip_safe' setting (either True or False) in the package's setup.py)r›   Úplatformr[   r   r„   r   r   r   r	   r¼   ¾  s    "r¼   rS   rs   rP   Úinstall_baser   c                s  d d l  } t t j j |  ƒ d ˆ ƒt j d |  ˆ  ƒ ‡  ‡ f d d †  } | d k rn t j d k } n  | j	 | j
 g t | ƒ } ˆ sè | j |  | d | ƒ}	 x0 t j ˆ  ƒ D] \ }
 } } | |	 |
 | ƒ q¸ W|	 j ƒ  n3 x0 t j ˆ  ƒ D] \ }
 } } | d |
 | ƒ qø W|  S)	aq  Create a zip file from all the files under 'base_dir'.  The output
    zip file will be named 'base_dir' + ".zip".  Uses either the "zipfile"
    Python module (if available) or the InfoZIP "zip" utility (if installed
    and found on the default search path).  If neither tool is available,
    raises DistutilsExecError.  Returns the name of the output zip file.
    r   Nrf   z#creating '%s' and adding '%s' to itc                s�   xˆ | D]€ } t  j j t  j j | | ƒ ƒ } t  j j | ƒ r | t ˆ  ƒ d d  … } ˆ ss |  j | | ƒ n  t j d | ƒ q q Wd  S)NrO   zadding '%s')	r   r   r¤   r$   r   rY   r#   r   rŽ   )Úzrl   Únamesr’   r   r.   )Úbase_dirrf   r   r	   Úvisitû  s    !zmake_zipfile.<locals>.visitz2.4Úcompression)Úzipfiler   r   r   rl   r   r^   r›   rœ   Ú
ZIP_STOREDÚZIP_DEFLATEDrÀ   ÚZipFiler«   r%   )Úzip_filenamerÞ   ru   rf   Úcompressrv   rá   rß   rà   rÜ   rl   r�   r‘   r   )rÞ   rf   r	   r†   î  s    		r†   )0Ú__doc__r›   r   rÍ   Ú
setuptoolsr   Údistutils.dir_utilr   r   Ú	sysconfigr   r   r
   ÚImportErrorÚdistutils.sysconfigr   Ú	distutilsr   Zdistutils.errorsr   Úpkg_resourcesr   r   r   r   Útypesr   Zsetuptools.compatr   r   Zsetuptools.extensionr   r   r)   r*   rÏ   rÐ   Úsplitr­   r�   r“   r�   rº   r½   rÑ   r¼   rg   r†   r   r   r   r	   Ú<module>   sB   $ÿ 0


#
-	