"Jd/XdZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z ddl mZmZddlmZmZddlmZddlmZmZddlmZmZdd lmZdd lmZdd lm Z dd l!m"Z"dd l#m$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*m+Z+m,Z,ddl-m.Z.ddl/m0Z0ddl1m2Z2ddl3m4Z4ddl5m6Z6ej7e8Z9ej:dej;Ze e e&e e&fZ?de@de=fdZAde&de=de>de=fdZBde&de=fdZCde&de>de=fdZDde&de e=fd ZEde&d!ede@fd"ZFd#ede=fd$ZGde&d%e@ddfd&ZHde&d'e@d(e=d)e e@d*e e@d+e=de e@fd,ZIde&d'e@d)e e@d*e e@d+e=de e@f d-ZJde&d*e e@de=fd.ZKd/e e&d!ed(e=d)e e@d*e e@de?f d0ZLdS)1z;Orchestrator for building wheels from InstallRequirements. N)AnyCallableIterableListOptionalTuple)canonicalize_namecanonicalize_version)InvalidVersionVersion) WheelCache)InvalidWheelFilenameUnsupportedWheel)FilesystemWheelget_wheel_distribution)Link)Wheel)build_wheel_pep517)build_wheel_editable)build_wheel_legacy)InstallRequirement) indent_log) ensure_dir hash_fileis_wheel_installed)make_setuptools_clean_args)call_subprocess) TempDirectory) path_to_url)vcsz([a-z0-9_.]+)-([a-z0-9_.!+-]+)sreturncPtt|S)zjDetermine whether the string looks like an egg_info. :param s: The string to parse. E.g. foo-2.1 )bool _egg_info_research)r!s N/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/wheel_builder.py_contains_egg_infor(&s  ##A&& ' ''req need_wheelcheck_binary_allowedc|jrdS|jr$|r td|jdS|rdS|jsdS|jr|S|jrdS||s"td|jdSts"td|jdSdS)zBReturn whether an InstallRequirement should be built into a wheel.Fz(Skipping %s, due to already being wheel.TzCSkipping wheel build for %s, due to binaries being disabled for it.zOUsing legacy 'setup.py install' for %s, since package 'wheel' is not installed.) constraintis_wheelloggerinfoname source_direditablesupports_pyproject_editable use_pep517r)r*r+r,s r' _should_buildr7.s  ~u |   KK:   ut >u |1..000 ~t   $ $ Q H   u     6 H   u 4r)c0t|dtS)NTr+r,)r7 _always_true)r*s r'should_build_for_wheel_commandr;cs L Q Q QQr)c&t|d|S)NFr9)r7)r*r,s r' should_build_for_install_commandr=is#  4H   r)cr|js|jsdS|jri|jjr]|jrJ|jsJt j|jj}|sJ||jj|jrdSdS|jsJ|j \}}t|rdSdS)z Return whether a built InstallRequirement can be stored in the persistent wheel cache, assuming the wheel cache is available, and _should_build() has determined a wheel needs to be built. FT) r4r3linkis_vcsr get_backend_for_schemeschemeis_immutable_rev_checkouturlsplitextr()r* vcs_backendbaseexts r' _should_cacherIrs |3>u x CHO <~0AA   0 0s~ N N 4u 8OOO!!##ID#$t 5r) wheel_cachect|j}|jsJ|r*t|r||j}n||j}|S)zdReturn the persistent or temporary cache directory where the built wheel need to be stored. )r$ cache_dirr?rIget_path_for_linkget_ephem_path_for_link)r*rJcache_availablerLs r'_get_cache_dirrPsj;011O 8OOOB=--B11#(;; 77AA r)_cdS)NT)rQs r'r:r:s 4r) wheel_pathc>t|jpd}ttj|}t|j|kr(t d||jtt||}t|j }t|t|j kr(t d||j |j }|td t|}n"#t $rd|}t|wxYw|tdkr>))*T\72S2S) $f[11   *)))s D**E  output_dirverify build_optionsglobal_optionsr4c|rdnd} t|n:#t$r-}td||j|Yd}~dSd}~wwxYw|j5t |||||}dddn #1swxYwY|rU|rS t||nA#ttf$r-}td||j|Yd}~dSd}~wwxYw|S)zaBuild one wheel. :return: The filename of the built wheel, or None if the build failed. r4wheelzBuilding %s for %s failed: %sNzBuilt %s for %s is invalid: %s) rOSErrorr0warningr2 build_env_build_one_inside_envrerr) r*rfrgrhrir4artifacterTs r' _build_onerrsr&2zz7H :  +  H    ttttt   * ]NH                 f  Z ( ( ( ($&67    NN;XsxQR S S S44444  s> A"A  AA99A=A= BC+"CCc Htd5}|jsJ|jr|jsJ|jsJ|r t d|j|r t d|j|r(t|j|j|j|j}nQt|j|j|j|j}n)t|j|j |j |||j}|tj|}tj||} t!|\} } t#j||t d|j|| | t d||cdddS#t*$r+} t d |j| Yd} ~ nd} ~ wwxYw|jst-|| ddddS#1swxYwYdS) Nrk)kindz7Ignoring --global-option when building %s using PEP 517z6Ignoring --build-option when building %s using PEP 517)r2backendmetadata_directorytempd)r2 setup_py_pathr3rirhrwz3Created wheel for %s: filename=%s size=%d sha256=%szStored in directory: %sz Building wheel for %s failed: %s)rr2r6rvpep517_backendr0rmrrXrrrxunpacked_source_directoryrWrYjoinrshutilmover1 hexdigest Exception_clean_one_legacy) r*rfrhrir4temp_dirrT wheel_name dest_path wheel_hashlengthrqs r'roros G $ $ $=x >! ) ) ) )% % % % Msx Lch 1.'*'="-  0.'*'="-  ,X!/8-+m J  !))*55J Z< 2 2 2{==================s7D#H5A8F:: G/!G*%H*G//HHHct|j|}td|j t ||jdS#t$r$td|jYdSwxYw)N)rizRunning setup.py clean for %s)cwdTz Failed cleaning build dir for %sF) rrxr0r1r2rr3rerror)r*ri clean_argss r'rr1s+ %J  KK/::: 7777t  7BBBuusA*A>=A> requirementsc |sggfStddd|Dt5gg}}|D]}|jsJt ||}t ||||||jo|j} | rVtt| |_ |j j |_ |j jsJ|||| dddn #1swxYwY|r8tddd|D|r8tddd |D||fS) zBuild wheels. :return: The list of InstallRequirement that succeeded to build and the list of InstallRequirement that failed to build. z*Building wheels for collected packages: %sz, c3$K|] }|jV dS)Nr2.0r*s r' zbuild..Rs$33s#(333333r)NzSuccessfully built %s cg|] }|j SrSrrs r' zbuild..os:::3ch:::r)zFailed to build %scg|] }|j SrSrrs r'rzbuild..ts9993ch999r))r0r1r{rr2rPrrr4permit_editable_wheelsrrr? file_pathlocal_file_pathr/append) rrJrgrhribuild_successesbuild_failuresr*rL wheel_files r'buildr@s  2v  KK4 33l33333 ++*,b + +C8OOO&sK88I# ;!; J + J 7 788&)h&8#x((((&&s++++%%c****% ++++++++++++++++.  # HH::/::: ; ;     HH99.999 : :   N **s B0D  DD)M__doc__loggingos.pathrWrer|typingrrrrrrpip._vendor.packaging.utilsr r pip._vendor.packaging.versionr r pip._internal.cacher pip._internal.exceptionsrrpip._internal.metadatarrpip._internal.models.linkrpip._internal.models.wheelr$pip._internal.operations.build.wheelr-pip._internal.operations.build.wheel_editabler+pip._internal.operations.build.wheel_legacyrpip._internal.req.req_installrpip._internal.utils.loggingrpip._internal.utils.miscrrr$pip._internal.utils.setuptools_buildrpip._internal.utils.subprocessrpip._internal.utils.temp_dirrpip._internal.utils.urlsrpip._internal.vcsr getLogger__name__r0compile IGNORECASEr%r$BinaryAllowedPredicate BuildResultr[r(r7r;r=rIrPr:rerrrorrrSr)r'rs AAAAAAAAAAAAAAAAOOOOOOOOAAAAAAAA******KKKKKKKKJJJJJJJJ******,,,,,,CCCCCCNNNNNNJJJJJJ<<<<<<222222NNNNNNNNNNKKKKKK::::::666666000000!!!!!!  8 $ $rz;R]KK !#5"6"<=D+,d3E.FFG (#($((((2 2212 2222jR R RRRR  0   d^@          CD ' S T    <# ## #9 # I #  #c]####LD DD9DI D  D c] DDDDN - tCy T    7+-.7+7+ 7+9 7+ I 7+  7+7+7+7+7+7+r)