add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
U

�	]^WUc@s"ddlZddlZddlZddlZddlZejejgadada	da
dd�Zdd�Zdd�Z
dd	�Zd
d�Zd1dd
�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd2dd�Zd3dd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Z ej!j"�se �d.d/�Z#e$d0k�re#�dS)4�NcGsBtjj|�}ztj�|�}Wntk
r0YnX|tj�|�fS�N)�os�path�join�abspath�OSErrorZnormcase)Zpaths�dir�r�/usr/lib64/python3.8/site.py�makepath[sr
cCs�ttj���D]~}tt|dd�dd�dkr,qztj�|j�|_Wnt	t
tfk
rZYnXztj�|j�|_Wqt	t
tfk
r�YqXqdS)NZ
__loader__Z
__module__)Z_frozen_importlibZ_frozen_importlib_external)
�set�sysZmodulesZvalues�getattrrrr�__file__ZAttributeErrorr�	TypeErrorZ
__cached__)Zmrrr	�	abs_pathsds�rcCsPg}t�}tjD],}t|�\}}||kr|�|�|�|�q|tjdd�<|Sr)rrrr
�append�add)ZL�known_pathsr�dircaserrr	�removeduppathsts

rc	CsVt�}tjD]D}z&tj�|�r4t|�\}}|�|�Wqtk
rNYqYqXq|Sr)rrrr�existsr
rr)ZdZitem�_Zitemcaserrr	�_init_pathinfo�s
rcCsr|dkrt�}d}nd}tj�||�}zt�t�|��}Wntk
rPYdSX|��t|�D]�\}}|�	d�rvqbzZ|�	d�r�t
|�Wqb|��}t||�\}}	|	|kr�tj�
|�r�tj�|�|�|	�Wqbtk
�rVtd�|d|�tjd�ddl}
|
jt���D](}|��D]}td	|tjd��q�qtd
tjd�Y�qZYqbXqbW5QRX|�rnd}|S)NTFz#)zimport zimport	z"Error processing line {:d} of {}:
�)Zfilerz  z
Remainder of file ignored)rrrr�ioZ
TextIOWrapperZ	open_coderZ	enumerateZ
startswithZexecZrstripr
rrrr�	Exception�printZformat�stderr�	tracebackZformat_exception�exc_infoZ
splitlines)�sitedir�namer�resetZfullname�fZn�linerrrZrecordrrr	�
addpackage�sF

�r%cCs�|dkrt�}d}nd}t|�\}}||krBtj�|�|�|�zt�|�}Wntk
rfYdSXdd�|D�}t	|�D]}t
|||�q~|r�d}|S)NTFcSsg|]}|�d�r|�qS)z.pth)Zendswith)�.0r!rrr	�
<listcomp>�s
zaddsitedir.<locals>.<listcomp>)rr
rrrrrZlistdirrZsortedr%)r rr"ZsitedircaseZnamesr!rrr	�
addsitedir�s$
r(cCs`tjjrdSttd�r4ttd�r4t��t��kr4dSttd�r\ttd�r\t��t��kr\dSdS)NF�getuid�geteuid�getgid�getegidT)	r�flagsZno_user_site�hasattrrr*r)r,r+rrrr	�check_enableusersite�s
r/cCsztj�dd�}|r|Sdd�}tjdkrBtj�d�p6d}||d�Stjdkrptjrp|dd	tjd
tjdd��S|dd�S)
NZPYTHONUSERBASEcWstj�tjj|��Sr)rr�
expanduserr)�argsrrr	�joinuser��z_getuserbase.<locals>.joinuser�ntZAPPDATA�~ZPython�darwinZLibraryz%d.%d�z.local)r�environZgetr!r�platform�
_framework�version_info)Zenv_baser2Zbaserrr	�_getuserbase�s


�r<cCsdtj}tjdkr,|�d|d�|d�d�StjdkrFtjrF|�d�S|�d|d�d	|d�d
�S)Nr4z\Pythonrrz\site-packagesr6z/lib/python/site-packagesz/lib/pythonZ.z/site-packages)rr;rr!r9r:)�userbase�versionrrr	�	_get_path
s

r?cCstdkrt�atSr)�	USER_BASEr<rrrr	�getuserbasesrAcCst�}tdkrt|�atSr)rA�	USER_SITEr?)r=rrr	�getusersitepackages#srCcCs$t�}tr tj�|�r t||�|Sr)rC�ENABLE_USER_SITErr�isdirr()r�	user_siterrr	�addusersitepackages1s
rGcCs�g}t�}|dkrt}|D]�}|r||kr,q|�|�tjdkr�|�tj�|ddtj	dd�d��|�tj�|ddtj
dd�d��q|�|�|�tj�|dd��|�tj�|dd��q|S)	Nz/Zlib64Zpython�z
site-packagesZlibzpython%d.%dr7)r�PREFIXESrr�seprrrrr>r;)�prefixesZsitepackagesZseen�prefixrrr	�getsitepackages?s*

��
rMcCsBtrdtjkrt�dd�t|�D]}tj�|�r"t||�q"|S)NZRPM_BUILD_ROOTrz
/usr/local)	rDrr8rI�insertrMrrEr()rrKr rrr	�addsitepackages^srOcCs4tjdkrd}nd}t�d|�t_t�d|�t_dS)Nz\zCtrl-Z plus ReturnzCtrl-D (i.e. EOF)�quit�exit)rrJ�
_sitebuiltinsZQuitter�builtinsrPrQ)Zeofrrr	�setquitms

rTcCs�t�dtj�t_tjdd�dkr2t�dd�t_nt�dd�t_gg}}ttd�r�tj	�
tj�}|�dd	g�|�tj	�
|tj�|tjg�t�d
d||�t_dS)N�	copyrightiZjava�creditsz?Jython is maintained by the Jython developers (www.jython.org).z�    Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
    for supporting Python development.  See www.python.org for more information.rzLICENSE.txtZLICENSE�licensez'See https://www.python.org/psf/license/)rRZ_PrinterrrUrSr9rVr.rr�dirnamerZextendrZpardirZcurdirrW)ZfilesZdirsZhererrr	�setcopyright}s$�

�rYcCst��t_dSr)rRZ_HelperrS�helprrrr	�	sethelper�r3r[cCsdd�}|t_dS)Ncs�ddl}zddl�ddl}Wntk
r2YdSXt�dd�}|dk	r\d|kr\��d�n
��d�z���Wntk
r�YnX���dkr�t	j
�t	j
�d�d��z��
��Wntk
r�YnX��fd	d
�}|�|�dS)NrZ__doc__ZZlibeditzbind ^I rl_completez
tab: completer5z.python_historyc	s,z����Wnttfk
r&YnXdSr)Zwrite_history_fileZFileNotFoundErrorZPermissionErrorr�Zhistory�readlinerr	�
write_history�szCenablerlcompleter.<locals>.register_readline.<locals>.write_history)�atexitr]�rlcompleter�ImportErrorr
Zparse_and_bindZread_init_filerZget_current_history_lengthrrrr0Zread_history_fileZregister)r_r`Zreadline_docr^rr\r	�register_readline�s0
�z,enablerlcompleter.<locals>.register_readline)rZ__interactivehook__)rbrrr	�enablerlcompleter�s	0rcc	CsHtj}tjdkr*d|kr*tjd}t_ntj}tj�tj�|��\}}tj�	|�}dt_
d}dd�tj�||�tj�||�fD�}|�rD|d}d}	t|dd	��\}
|
D]P}d
|kr�|�
d
�\}}}
|����}|
��}
|dkr�|
��}	q�|dkr�|
t_
q�W5QRX|t_t_t|tjg�|	dk�r8t�dtj�ntjgad
a|S)Nr6Z__PYVENV_LAUNCHER__z
pyvenv.cfgcSsg|]}tj�|�r|�qSr)rrZisfile)r&Zconffilerrr	r'�s�zvenv.<locals>.<listcomp>rZtruezutf-8)Zencodingz=zinclude-system-site-packagesZhomeF)rr8rr9Z_base_executable�
executablerZsplitrrXZ_homerZopenZ	partitionZstripZlowerrL�exec_prefixrOrIrNrD)rZenvrdZexe_dirrZsite_prefixZ
conf_basenameZcandidate_confsZvirtual_confZsystem_siter#r$ZkeyZvaluerrr	�venv�sB��

rfc
C�zBzddl}Wn0tk
r>}z|jdkr,n�W5d}~XYnXWnRtk
r�}z4tjjrltjt���ntj	�
d|jj|f�W5d}~XYnXdS)Nr�
sitecustomizez@Error in sitecustomize; set PYTHONVERBOSE for traceback:
%s: %s
)
rhrar!rrr-�verbose�
excepthookrr�write�	__class__�__name__)rh�exc�errrrr	�execsitecustomize�

��rpc
Crg)Nr�
usercustomizez@Error in usercustomize; set PYTHONVERBOSE for traceback:
%s: %s
)
rrrar!rrr-rirjrrrkrlrm)rrrnrorrr	�execusercustomizerqrscCs~tjdd�}t�}|tjkr$t�t|�}tdkr:t�at|�}t|�}t	�t
�t�tjj
sjt�t�trzt�dSr)rrrrrfrDr/rGrOrTrYr[r-Zisolatedrcrprs)Z	orig_pathrrrr	�main/s"
rtcCs\d}tjdd�}|s�t�}t�}td�tjD]}td|f�q0td�td|tj�|�rbdndf�td	|tj�|�r�dndf�td
t�t�	d�g}d|kr�|�
t�d
|kr�|�
t�|�r(ttj
�|��tr�t�	d�n6tdk�rt�	d�n tdk�rt�	d�n
t�	d�n0ddl}t|�|tjdtj
f��t�	d�dS)Na�    %s [--user-base] [--user-site]

    Without arguments print some useful information
    With arguments print the value of USER_BASE and/or USER_SITE separated
    by '%s'.

    Exit codes with --user-base or --user-site:
      0 - user site directory is enabled
      1 - user site directory is disabled by user
      2 - uses site directory is disabled by super user
          or for security reasons
     >2 - unknown error
    rzsys.path = [z    %r,z]zUSER_BASE: %r (%s)rz
doesn't existzUSER_SITE: %r (%s)zENABLE_USER_SITE: %rrz--user-basez--user-siteFr7rHi
)rZargvrArCrrrrErDrQrr@rBZpathsepr�textwrapZdedent)rZr1Z	user_baserFrZbufferrurrr	�_scriptQsD
��




rvZ__main__rrr)%rrrSrRrrLrerIrDrBr@r
rrrr%r(r/r<r?rArCrGrMrOrTrYr[rcrfrprsrtr-Zno_sitervrmrrrr	Z<module>HsF	
*
 


;4
3