U l a @sdZddlmZddlmZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl m Z ddlmZddlmZddlmZdd lmZeZe d e jjZd Zd d ZGdddZdS)zWheels support.) get_platform)logN) parse_version)sys_tags)canonicalize_name)PY3)write_requirementsz^(?P.+?)-(?P\d.*?) ((-(?P\d.*?))?-(?P.+?)-(?P.+?)-(?P.+?) )\.whl$z8__import__('pkg_resources').declare_namespace(__name__) c Cst|D]\}}}tj||}|D].}tj||}tj|||}t||q&ttt|D]D\} } tj|| }tj||| }tj |sft|||| =qfq tj|ddD]\}}}|rt t |qdS)zDMove everything under `src_dir` to `dst_dir`, and delete the former.T)topdownN) oswalkpathrelpathjoinrenamesreversedlist enumerateexistsAssertionErrorrmdir) src_dirZdst_dirdirpathdirnames filenamessubdirfsrcdstndr QC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-wx4infiz\setuptools\wheel.pyunpack"s   r"c@sheZdZddZddZddZddZd d Zd d Zd dZ e ddZ e ddZ e ddZ dS)WheelcCsPttj|}|dkr$td|||_|D]\}}t|||q6dS)Nzinvalid wheel name: %r) WHEEL_NAMEr r basename ValueErrorfilename groupdictitemssetattr)selfr'matchkvr r r!__init__:s  zWheel.__init__cCs&t|jd|jd|jdS)z>List tags (py_version, abi, platform) supported by this wheel..) itertoolsproduct py_versionsplitabiplatformr+r r r!tagsBs    z Wheel.tagscs0tddtDtfdd|DdS)z5Is the wheel is compatible with the current platform?css|]}|j|j|jfVqdSN) interpreterr5r6.0tr r r! Lsz&Wheel.is_compatible..c3s|]}|krdVqdS)TNr r;supported_tagsr r!r>NsF)setrnextr8r7r r?r! is_compatibleJszWheel.is_compatiblecCs,tj|j|j|jdkrdntddS)Nany) project_nameversionr6z.egg) pkg_resources DistributionrErFr6regg_namer7r r r!rIPszWheel.egg_namecCsJ|D]4}t|}|drt|t|jr|SqtddS)Nz .dist-infoz.unsupported wheel format. .dist-info not found)namelist posixpathdirnameendswithr startswithrEr&)r+zfmemberrLr r r! get_dist_infoVs    zWheel.get_dist_infoc Cs(t|j}|||W5QRXdS)z"Install wheel as an egg directory.N)zipfileZipFiler'_install_as_egg)r+destination_eggdirrOr r r!install_as_egg`szWheel.install_as_eggcCs\d|j|jf}||}d|}tj|d}|||||||||||dS)Nz%s-%sz%s.dataEGG-INFO) rErFrQr r r_convert_metadata_move_data_entries_fix_namespace_packages)r+rUrOZ dist_basename dist_info dist_dataegg_infor r r!rTes  zWheel._install_as_eggc sLfdd}|d}t|d}td|ko>tdkn}|sTtd|t||tj|tj j |t |dd d t t tfd d jD}t|ttj|d tj|dtj t|dd} tjj} ttjz t| ddtj|dW5t| XdS)Nc sTt|8}tr&|dn|}tj |W5QRSQRXdS)Nzutf-8) openrKrrreaddecodeemailparserParserparsestr)namefpvalue)r[rOr r! get_metadataqsz-Wheel._convert_metadata..get_metadataZWHEELz Wheel-Versionz1.0z2.0dev0z$unsupported wheel format version: %s)metadatacSsd|_t|Sr9)markerstr)reqr r r!raw_reqsz(Wheel._convert_metadata..raw_reqc s2i|]*}|tfddt|fDqS)c3s|]}|kr|VqdSr9r )r<rl)install_requiresr r!r>sz5Wheel._convert_metadata...)sortedmaprequires)r<extra)distrnrmr r! s  z+Wheel._convert_metadata..METADATAzPKG-INFO)rnextras_require)attrsr]z requires.txt)rgetr&r mkdir extractallr rrGrH from_location PathMetadatarrorprqextrasrename setuptoolsdictr _global_log threshold set_thresholdWARNrget_command_obj) rOrUr[r]rhwheel_metadata wheel_versionZwheel_v1rvZ setup_distZ log_thresholdr )rsr[rnrmrOr!rXosT        zWheel._convert_metadatacstj|tjd}tj|rtj|dd}t|t|D]D}|drpttj||qLttj||tj||qLt |t tjjfdddDD]}t ||qtjrt dS)z,Move data entries to their correct location.scriptsrWz.pycc3s|]}tj|VqdSr9)r r r)r<rr\r r!r>sz+Wheel._move_data_entries..)dataheaderspurelibplatlibN) r r rrrylistdirrMunlinkr~rfilterr")rUr\Zdist_data_scriptsZegg_info_scriptsentryrr rr!rYs.         zWheel._move_data_entriesc Cstj|d}tj|rt|}|}W5QRX|D]l}tjj|f|d}tj|d}tj|s~t|tj|s>t|d}|t W5QRXq>dS)Nznamespace_packages.txtr0z __init__.pyw) r r rrr^r_r4rywriteNAMESPACE_PACKAGE_INIT)r]rUZnamespace_packagesrfmodZmod_dirZmod_initr r r!rZs      zWheel._fix_namespace_packagesN)__name__ __module__ __qualname__r/r8rCrIrQrVrT staticmethodrXrYrZr r r r!r#8s   ? r#)__doc__distutils.utilr distutilsrrar1r rKrerRrGrrZ setuptools.extern.packaging.tagsrZ!setuptools.extern.packaging.utilsrZsetuptools.extern.sixrZsetuptools.command.egg_infortype __metaclass__compileVERBOSEr,r$rr"r#r r r r!s0