U e5dX ã @ s” d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm Z d dl mZmZ d dlm Z d dlZe d¡ZG d d „ d eƒZG dd„ deeƒZdS ) é N)ÚST_MODE)Ú sysconfig)ÚCommand)Únewer)Úconvert_pathÚ Mixin2to3)Úlogs ^#!.*python[0-9.]*([ ].*)?$c @ sH e Zd ZdZdddgZdgZdd„ Zdd „ Zd d„ Zdd „ Z dd„ Z dS )Ú build_scriptsz("build" scripts (copy and fixup #! line))z build-dir=Údzdirectory to "build" (copy) to)ÚforceÚfz1forcibly build everything (ignore file timestamps)zexecutable=Úez*specify final destination interpreter pathr c C s" d | _ d | _d | _d | _d | _d S ©N)Ú build_dirÚscriptsr Ú executableÚoutfiles©Úself© r ú7/usr/lib64/python3.8/distutils/command/build_scripts.pyÚinitialize_options s z build_scripts.initialize_optionsc C s | dddd¡ | jj| _d S )NZbuild)r r )r r )r r )Zset_undefined_optionsZdistributionr r r r r Úfinalize_options% s ýzbuild_scripts.finalize_optionsc C s | j S r )r r r r r Úget_source_files, s zbuild_scripts.get_source_filesc C s | j s d S | ¡ d S r )r Úcopy_scriptsr r r r Úrun/ s zbuild_scripts.runc C s´ | | j¡ g }g }| jD �]}d}t|ƒ}tj | jtj |¡¡}| |¡ | j slt ||ƒslt d|¡ qzt |dƒ}W n tk rš | js’‚ d }Y nXX t |j¡\}}| d¡ | ¡ } | sÒ| d| ¡ qt | ¡} | ròd}| d¡pðd}|�rt d || j¡ | |¡ | j�stj�s*| j}n(tj t d ¡dt d¡t d ¡f ¡}t |¡}d| | d } z| d¡ W n$ tk �rž t d !| ¡ƒ‚Y nX z| |¡ W n& tk �rÔ t d !| |¡ƒ‚Y nX t |dƒ�}| "| ¡ | #| $¡ ¡ W 5 Q R X |�r8| %¡ q|�r"| %¡ | |¡ | &||¡ qtj'dk�r¬|D ]`}| j�rdt d|¡ nDt (|¡t) d@ }|dB d@ }||k�rJt d|||¡ t *||¡ �qJ||fS )NFznot copying %s (up-to-date)Úrbr z%s is an empty file (skipping)Té ó zcopying and adjusting %s -> %sZBINDIRz python%s%sZVERSIONZEXEs #!ó zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})ÚwbÚposixzchanging mode of %siÿ im z!changing mode of %s from %o to %o)+Zmkpathr r r ÚosÚpathÚjoinÚbasenameÚappendr r r ÚdebugÚopenÚOSErrorÚdry_runÚtokenizeÚdetect_encodingÚreadlineÚseekÚwarnÚ first_line_reÚmatchÚgroupÚinfor Zpython_buildr Zget_config_varÚfsencodeÚdecodeÚUnicodeDecodeErrorÚ ValueErrorÚformatÚwriteÚ writelinesÚ readlinesÚcloseZ copy_fileÚnameÚstatr Úchmod)r r Ú updated_filesZscriptZadjustZoutfiler ÚencodingÚlinesZ first_liner1 Zpost_interpr ZshebangZoutfÚfileZoldmodeZnewmoder r r r 5 s¦ ÿ ÿþ ÿÿ þÿ ÿzbuild_scripts.copy_scriptsN)Ú__name__Ú __module__Ú__qualname__ZdescriptionZuser_optionsZboolean_optionsr r r r r r r r r r s ýr c @ s e Zd Zdd„ ZdS )Úbuild_scripts_2to3c C s&