U e5d«>ã@stddlZddlZddlZddlmZddlmZddlmZm Z ddl Tddl m Z ddl mZGdd „d eƒZdS) éN)ÚCommand)Ú get_platform)Ú create_treeÚ remove_tree)Ú*)Úget_python_version)Úlogc sšeZdZdZddddeƒfdddd d d d d dddg ZddddgZejdkZ ‡fdd„Z dd„Z dd„Z dd„Z dd„Zd'd!d"„Zd#d$„Zd%d&„Z‡ZS)(Ú bdist_wininstz-create an executable installer for MS Windows)z bdist-dir=Nz1temporary directory for creating the distributionz plat-name=Úpz;platform name to embed in generated filenames (default: %s))ú keep-tempÚkzPkeep the pseudo-installation tree around after creating the distribution archive)ztarget-version=Nz6require a specific python version on the target system)úno-target-compileÚcz/do not compile .py to .pyc on the target system)úno-target-optimizeÚoz;do not compile .py to .pyo (optimized) on the target system)z dist-dir=Údz-directory to put final built distributions in)zbitmap=Úbz>bitmap to use for the installer instead of python-powered logo)ztitle=Útz?title to display on the installer background instead of default)ú skip-buildNz2skip rebuilding everything (for testing/debugging))zinstall-script=NzUbasename of installation script to be run after installation or before deinstallation)zpre-install-script=Nz{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distribution)zuser-access-control=NzŠspecify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACr r rrÚwin32cs tƒj||Žt dtd¡dS)Nz^bdist_wininst command is deprecated since Python 3.8, use bdist_wheel (wheel packages) insteadé)ÚsuperÚ__init__ÚwarningsÚwarnÚDeprecationWarning)ÚselfÚargsÚkw©Ú __class__©ú7/usr/lib64/python3.8/distutils/command/bdist_wininst.pyr?s þzbdist_wininst.__init__cCsRd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) Ú bdist_dirÚ plat_nameÚ keep_tempÚno_target_compileÚno_target_optimizeÚtarget_versionÚdist_dirÚbitmapÚtitleÚ skip_buildÚinstall_scriptÚpre_install_scriptÚuser_access_control)rr!r!r"Úinitialize_optionsEsz bdist_wininst.initialize_optionscCsâ| dd¡|jdkrR|jr6|jr6|j d¡}|j|_| d¡j}tj   |d¡|_|j s^d|_ |js˜|j  ¡r˜t ƒ}|j r’|j |kr’td|fƒ‚||_ | ddd¡|jrÞ|jjD]}|jtj  |¡kr´qÞq´td|jƒ‚dS) NÚbdist)r,r,ZwininstÚzMtarget version can only be %s, or the '--skip-build' option must be specified)r)r))r$r$z(install_script '%s' not found in scripts)Zset_undefined_optionsr#r,r$Ú distributionZget_command_objÚget_finalized_commandÚ bdist_baseÚosÚpathÚjoinr(Úhas_ext_modulesrZDistutilsOptionErrorr-ÚscriptsÚbasename)rr1r5Z short_versionÚscriptr!r!r"Úfinalize_optionsUs>     ÿÿþ ÿÿzbdist_wininst.finalize_optionsc Csàtjdkr&|j ¡s|j ¡r&tdƒ‚|js6| d¡|jddd�}|j |_ |j|_d|_ |j |_ | d¡}d|_ d|_|j ¡rÌ|j}|sžd tjdd …}d |j |f}| d¡}tj |jd |¡|_d D],}| ¡}|dkrì|d}t|d||ƒqÐt d|j ¡| ¡tj dtj |j d¡¡| ¡tjd=ddlm}|ƒ} |j  ¡} |j!| d|j d�} | "| | |j#¡|j ¡�r�t$ƒ} nd} |jj% &d| | '| ¡f¡t (d| ¡t )| ¡|j*�sÜt+|j |j,d�dS)Nrz^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformÚbuildÚinstallé)Zreinit_subcommandsrÚ install_libz%d.%drz.%s-%sÚlib)ZpurelibZplatlibÚheadersr:ÚdatarCz/Include/$dist_nameZinstall_zinstalling to %sZPURELIB)ÚmktempÚzip)Zroot_dirÚanyr zremoving temporary file '%s')Údry_run)-ÚsysÚplatformr3r9Zhas_c_librariesZDistutilsPlatformErrorr,Z run_commandZreinitialize_commandr#ÚrootZwarn_dirr$ÚcompileÚoptimizer(Ú version_infor4r6r7r8Z build_baseZ build_libÚupperÚsetattrrÚinfoZensure_finalizedÚinsertÚrunZtempfilerEÚ get_fullnameZ make_archiveÚ create_exer*rZ dist_filesÚappendÚget_installer_filenameÚdebugÚremover%rrH) rr?rAr(Zplat_specifierr>ÚkeyÚvaluerEZarchive_basenameÚfullnameÚarcnameZ pyversionr!r!r"rS{sr ÿþÿ     ÿþ  ÿ  ÿ  zbdist_wininst.runc CsZg}|jj}| d¡|jpdd}dd„}dD]B}t||dƒ}|r0|d| ¡||ƒf}| d|||ƒf¡q0| d ¡|jr”| d |j¡| d ||ƒ¡| d |j ¡| d |j ¡|j rà| d|j ¡|j rö| d|j ¡|j �p|j  ¡}| d||ƒ¡ddl }ddl} d| |  ¡¡| jf} | d| ¡d |¡S)Nz [metadata]r2Ú cSs | dd¡S)Nr^z\n)Úreplace)Úsr!r!r"ÚescapeÙsz)bdist_wininst.get_inidata..escape)ZauthorZ author_emailÚ descriptionZ maintainerZmaintainer_emailÚnameZurlÚversionz %s: %sz%s=%sz [Setup]zinstall_script=%szinfo=%sztarget_compile=%dztarget_optimize=%dztarget_version=%szuser_access_control=%sztitle=%srzBuilt %s with distutils-%sz build_info=%s)r3ÚmetadatarVZlong_descriptionÚgetattrÚ capitalizer-r&r'r(r/r+rTÚtimeÚ distutilsÚctimeÚ __version__r8) rÚlinesrerQrarcrDr+rhriZ build_infor!r!r"Ú get_inidataÌs>  ÿ ÿzbdist_wininst.get_inidataNc CsHddl}| |j¡| ¡}| |¡}| d|¡|r`t|dƒ�}| ¡}W5QRXt|ƒ} nd} t|dƒ�Ð} |   |  ¡¡|rŒ|   |¡t |t ƒr |  d¡}|d}|jræt|jddd ��} |  ¡  d¡} W5QRX|| d }n|d}|   |¡| d d t|ƒ| ¡} |   | ¡t|dƒ�}|   | ¡¡W5QRXW5QRXdS) Nrz creating %sÚrbÚwbÚmbcsóÚrzlatin-1)Úencodings zs8          zbdist_wininst.get_exe_bytes)N)Ú__name__Ú __module__Ú __qualname__rbrZ user_optionsZboolean_optionsrIrJZ _unsupportedrr0r=rSrmrUrWryÚ __classcell__r!r!rr"r s>ÿÿá%ÿ  &Q. 7 r )r6rIrZdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrrirr r!r!r!r"Ús