ó ÿ¾v]c@shdZddlZddlZddlZddlZddlmZddlmZddl m Z ddl m Z ddlmZddlmZdd lmZddlZd d lmZmZmZmZd d lmZd d lmZd dlmZd dlmZd dlm Z!ej"Z"ej#Z#dZ$d„Z%d„Z&defd„ƒYZ'dS(sI Create a wheel (.whl) distribution. A wheel is a built archive format. iÿÿÿÿN(t Generator(tCommand(tget_python_version(tlog(tiglob(trmtree(twarni(t get_abbr_implt get_impl_vert get_abi_tagt get_platform(twrite_pkg_info(tpkginfo_to_metadata(t WheelFile(t pep425tags(t __version__scp3\dcCst|ƒjddƒS(Nt-t_(t safe_nametreplace(tname((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pyt safer_name#scCst|ƒjddƒS(NRR(t safe_versionR(tversion((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pyt safer_version'st bdist_wheelcBsãeZdZd,dddeƒfddd d fd-d/d0d1d2d3dd.deƒdfd4d5g ZddddgZd!„Zd"„Z e d#„ƒZ d$„Z d%„Z d&ed'd(„Zd)„Ze d*„ƒZd+„ZRS(6screate a wheel distributions bdist-dir=tbs1temporary directory for creating the distributions plat-name=tps;platform name to embed in generated filenames (default: %s)s keep-temptks/keep the pseudo-installation tree around after s!creating the distribution archives dist-dir=tds-directory to put final built distributions ins skip-builds2skip rebuilding everything (for testing/debugging)trelatives7build the archive using relative paths (default: false)sowner=tus@Owner name used when creating a tar file [default: current user]sgroup=tgsAGroup name used when creating a tar file [default: current group]t universals'make a universal wheel (default: false)s python-tag=s7Python implementation compatibility tag (default: py%s)is build-number=sqBuild number for this particular version. As specified in PEP-0427, this must start with a digit. [default: None]spy-limited-api=s?Python tag (cp32|cp33|cpNN) for abi3 wheel tag (default: false)cCs±d|_d|_d|_d|_d|_t|_d|_d|_ d|_ d|_ t|_ d|_ d|_t|_dtƒd|_d|_t|_t|_dS(Ntziptpyi(tNonet bdist_dirtdata_dirt plat_nametplat_tagtformattFalset keep_temptdist_dirt egginfo_dirt root_is_puret skip_buildRtownertgroupR!Rt python_tagt build_numbertpy_limited_apitplat_name_supplied(tself((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pytinitialize_optionsUs$                cCsg|jdkr<|jdƒj}tjj|dƒ|_n|jd|_|j dk |_ d}|j dt ||ƒŒ|j jƒp˜|j jƒ |_|jrÑtjt|jƒ rÑtdtƒ‚n|j jdƒ}d|kr1tjd ƒ|dd jƒ}|jƒdkr1t|_q1n|jdk rc|jd jƒ rctdƒ‚ndS(Ntbdisttwheels.dataR,R'R/spy-limited-api must match '%s'R!s=The [wheel] section is deprecated. Use [bdist_wheel] instead.it1ttruetyess1Build tag (build-number) must start with a digit.(R,R'R/(R:R;R<(R%R$tget_finalized_commandt bdist_basetostpathtjointwheel_dist_nameR&R'R5tset_undefined_optionsR"t distributionthas_ext_modulesthas_c_librariesR.R4tretmatchtPY_LIMITED_API_PATTERNt ValueErrortget_option_dicttloggerRtstriptlowertTrueR!R3tisdigit(R6R>t need_optionsR9tval((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pytfinalize_optionsis(   #cCsSt|jjƒƒt|jjƒƒf}|jrF||jf7}ndj|ƒS(s4Return distribution full name with - replaced with _R(RRDtget_nameRt get_versionR3RA(R6t components((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pyRBˆs  cCs›|jr|j}nH|jr'd}n6|jp6tƒ}|dkr]tjdkr]d}n|jddƒjddƒ}|jr±|jr–d }n |j}|d |f}næt ƒ}t ƒ}||}|j rû||j d ƒrû|j }d }nt tƒƒjƒ}|||f}tjd |jr7|ndƒ}|j sv||dksvtd||dfƒ‚n||ks—tdj|ƒƒ‚|S(Ntanys linux-x86_64t linux_x86_64iÿÿÿt linux_i686RRt.spy2.py3tnonetcp3tabi3tsupplied_platformis%s != %ss)would build wheel with unsupported tag {}(s linux-x86_64RX(R5R'R.R tsystmaxsizeRR!R2RRR4t startswithtstrR RNRt get_supportedR$tAssertionErrorR)(R6R'timplttagt impl_nametimpl_vertabi_tagtsupported_tags((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pytget_tag‘s6                -!cCs|jdƒ}d|_t|_|jdƒ}t|_|jsR|jdƒn|jddtƒ}|j|_ t|_ |j|_t|_ |jdƒ}t|_ x4dD],}t |d |tjj|j|ƒƒq°Wd}tjdkr,tjjtjj|jdƒƒ}||_|_nt ||jrAdnd|ƒtjd|jƒ|jdƒ|jƒ\}}} dj|j||| ƒ} |js°|j} n$tjj|j|j|jƒƒ} |jddƒdjt |j!j"ƒƒt#|j!j$ƒƒƒ} tjj|j| ƒ} |j%|j&| ƒ|j'| ƒtjj(|j)ƒsttj*|j)ƒntjj|j)| dƒ}t+|dƒ}|j,| ƒWdQXt-|j!dgƒj.dt/ƒ|fƒ|j0stjd|jƒ|j1st2|jƒqndS( Nt build_scriptstpythont build_exttbuildtinstalltreinit_subcommandstinstall_scriptstheaderstscriptstdatatpurelibtplatlibtinstall_ttnts..tinstall_purelibtinstall_platlibsinstalling to %ss {}-{}-{}-{}tinstall_egg_infottargetR-s{}-{}.dist-infos.whltwt dist_filesRs removing %s(RsRtRuRvRw(R~R-(3treinitialize_commandt executableROtforceR*tinplaceR/t run_commandR%troottcompiletwarn_dirtno_eptsetattrR?R@RAR&Rtnormpathtinstall_libbaset install_libR.RLtinfoRkR)RBRt_ensure_relativet install_baseRCRRDRTRRUtegg2distR-twrite_wheelfiletexistsR,tmakedirsR t write_filestgetattrtappendRR+tdry_runR(R6RlRnRpRrtkeytbasedir_observedtimpl_tagRiR(tarchive_basenamet archive_roottdistinfo_dirnamet distinfo_dirt wheel_pathtwf((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pytrun·sj            $       s bdist_wheel (t)c Cs>ddlm}|ƒ}d|d<||d*s t license_filesRyit license_filesEThe "license_file" option is deprecated. Use "license_files" instead.s LICEN[CS]E*sCOPYING*sNOTICE*sAUTHORS*s/adding license file "%s" (matched pattern "%s")(RyRy(s LICEN[CS]E*sCOPYING*sNOTICE*sAUTHORS*(RDRKtsettsortedtgetRªRtDeprecationWarningtaddRR?R@tisfileRLRŽ(R6R·tfilestpatternstpatternR@((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pyt license_paths%s  )   cCsâd„}||ƒtjj|ƒs­ddl}tjjtjj|ƒdƒ}|j|ƒ}d|f}|ržtjj|dƒ}|d|f7}nt|ƒ‚ntjj|ƒrä|} t ||ƒ} tj |ƒntjj|dƒ} t || ƒ} t j ||d d „ƒtjj|d ƒ} t | d ƒ} | jƒjƒ} WdQX| ss|| ƒnttjj|d ƒ| ƒxB|jD]7}tjj|ƒ}t j|tjj||ƒƒq™W||ƒdS(s:Convert an .egg-info directory into a .dist-info directorycSsmtjj|ƒrGtjj|ƒ rGtjj|ƒrGtj|ƒn"tjj|ƒritj|ƒndS(s-Appropriately delete directory, file or link.N(R?R@R“tislinktisdirtshutilRtunlink(R((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pytadios?s7iÿÿÿÿNs *.egg-infos)Egg metadata expected at %s but not foundis- (%s found - possible misnamed archive file?)sPKG-INFOtignorecSsddddhS(NsPKG-INFOs requires.txts SOURCES.txts not-zip-safe((txty((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pytcs sdependency_links.txttrtMETADATA(R?R@R“tglobRAtdirnametbasenameRJRÁR tmkdirRÈtcopytreeR«treadRMR RÅtcopy(R6t egginfo_patht distinfo_pathRÊRÑtpattpossibleterrtaltt pkginfo_pathtpkg_infotdependency_links_pathtdependency_links_filetdependency_linkst license_pathtfilename((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pyR‘=s:   !   #(s bdist-dir=Rs1temporary directory for creating the distribution(s dist-dir=Rs-directory to put final built distributions inN(s skip-buildNs2skip rebuilding everything (for testing/debugging)(RNs7build the archive using relative paths (default: false)(sowner=Rs@Owner name used when creating a tar file [default: current user](sgroup=R sAGroup name used when creating a tar file [default: current group](R!Ns'make a universal wheel (default: false)(s build-number=NsqBuild number for this particular version. As specified in PEP-0427, this must start with a digit. [default: None](spy-limited-api=Ns?Python tag (cp32|cp33|cpNN) for abi3 wheel tag (default: false)(t__name__t __module__t descriptionR R$Rt user_optionstboolean_optionsR7RStpropertyRBRkR¢t wheel_versionR’RRÅR‘(((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pyR+sL     & R ((t__doc__R?RÈR_RGtemail.generatorRtdistutils.coreRtdistutils.sysconfigRt distutilsRRLRÑRRtwarningsRt pkg_resourcesRRRR R tpkginfoR R·R t wheelfileR RyRRëRRRIRRR(((s2/tmp/pip-install-vZZv26/wheel/wheel/bdist_wheel.pyts0     "