$YfL @ s d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l
Z
d d l Z d d Z d d Z
d d Z d d Z d
d Z d S) Nc C s t j d d } | j d d d | j d d d d d d
d t j j | j } d } y t t t | Wn> t
k
r } z t d
j | d } WYd d } ~ Xn Xt j
d d S)Ndescriptionz,Recreate wheel of package with given RECORD.record_pathhelpzPath to RECORD filez-oz--output-dirz>Dir where to place the wheel, defaults to current working dir.destoutdirdefaultr z
Failed: {} )argparseArgumentParseradd_argumentospathcurdir
parse_argsprintrewheel_from_recordvars
BaseExceptionformatsysexit)parsernsretcodee r -/opt/alt/python35/lib64/python3.5/__init__.pyrun
s
r c s g } t j t j t j g } d d | D } x | D] } d } x | D] t j j | d j t j f d d t j
D } f d d | D } t | d k rN | d } qN W| d k r | j t j j | d q; | j d q; W| S) Nc S s( g | ] } t j j | r | q Sr )r r
exists).0spr r r
( s z'find_system_records..z-[^\{0}]+\.dist-infoc s% g | ] } t j j | q Sr )r r
join)r p)r r r r! . s c s( g | ] } t j | r | q Sr )rematch)r c)dist_info_rer r r! 0 s r r ZRECORD)
sitegetsitepackagesr base_prefixbase_exec_prefixr r
r" r seplistdirlenappend)ZprojectsrecordsZsys_sitepackZprojectr
Z
candidatesZfilteredr )r' r r find_system_records s
%"r1 c C sE t j j t j j | } | t | d j t j j } t | | \ } } t | } t j j | | d } t j
| d d d t j } t j
} t j | }
xO | D]G \ } } }
| j t j j | | d | |
j | | |
g q W|
j | d d g | j | | j | j | j S)Nz.whlmodewcompressionZarcname )r r
dirnamer. stripr, get_records_to_packget_wheel_namer" zipfileZipFileZIP_DEFLATEDioStringIOcsvwriterwriteZwriterowZwritestrgetvalueclosefilename)r r site_dirrecord_relpathto_writeto_omitZnew_wheel_nameZnew_wheel_pathZ new_wheelZ
new_recordr@ fZsha_hashsizer r r r : s %"
r c C s t j j t j j | d } t j | d d % } t j j j | j
} Wd QRXt j j t j j | d } t j | d d % } t j j j | j
} Wd QRX| j d } | j d } d } g }
x1 | j d D] } |
j
| j d d
q Wd j |
}
| j d j d d d
\ } }
t d | | | |
| |
g } d j t | S)NZWHEELencodingzutf-8ZMETADATANameZVersionr5 ZTag-r .r )r r
r" r6 codecsopenemailr ZParserZparsestrreadgetZget_allr/ splitfilterlist)r Zwheel_info_pathZwheel_info_fileZ
wheel_infoZ
metadata_pathZ
metadata_fileZmetadataZdistributionversionZ build_tagZlang_tagtZabi_tagZplat_tagZto_joinr r r r9 V s !%!%(!r9 c
C s\ t j j | | } t j | d d } | j } Wd QRXt j j | j t j j } | d t d d } g } g } x | j
D] } | j d } t | d k r t j j | d s.| d j
d s.| d j d s.| d j d
s.| d | k s.| d j
| r>| j | qN| j | q q W| | f S)NrK zutf-8z dist-infodata,rO r z..z.pycz.pyo)r r
r" rP rQ rS r6 r7 r, r.
splitlinesrU isabs
startswithendswithr/ )
rE rF Zrecord_file_pathZrecord_fileZrecord_contentsZdata_dirrG rH lZsplr r r r8 n s" !)&#r8 )r rP r? Zemail.parserrR r r= r$ r(
subprocessr r: r r1 r r9 r8 r r r r s