U &�.eNU�@s"ddlZddlZddlZddlZddlZejejgadada da dd�Z dd�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�OSError�normcase)�paths�dir�r �/usr/lib64/python3.8/site.py�makepath[s  r c Cs�ttj���D]~}tt|dd�dd�dkr,qztj�|j�|_Wnt t t fk rZYnXztj�|j �|_ Wqt t t fk r�YqXqdS)N� __loader__� __module__)�_frozen_importlib�_frozen_importlib_external) �set�sys�modules�values�getattrrrr�__file__�AttributeErrorr� TypeError� __cached__)�mr r r � abs_pathsds�rcCsPg}t�}tjD],}t|�\}}||kr|�|�|�|�q|tjdd�<|Sr)rrrr �append�add)�L� known_pathsr �dircaser r r �removeduppathsts    r"c CsVt�}tjD]D}z&tj�|�r4t|�\}}|�|�Wq tk rNYq Yq Xq |Sr)rrrr�existsr rr)�d�item�_�itemcaser r r �_init_pathinfo�s    r(c 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) NTF�#)zimport zimport z"Error processing line {:d} of {}: �)�filerz z Remainder of file ignored)r(rrr�io� TextIOWrapper� open_coder� enumerate� startswith�exec�rstripr r#rrr� Exception�print�format�stderr� traceback�format_exception�exc_info� splitlines) �sitedir�namer �reset�fullname�f�n�liner r!r7�recordr r r � addpackage�sF   � rCcCs�|dkrt�}d}nd}t|�\}}||krBtj�|�|�|�zt�|�}Wntk rfYdSXdd�|D�}t |�D]}t |||�q~|r�d}|S)NTFcSsg|]}|�d�r|�qS)z.pth)�endswith)�.0r<r r r � �s zaddsitedir..) r(r rrrrr�listdirr�sortedrC)r;r r=� sitedircase�namesr<r r r � addsitedir�s$    rKcCs`tjjr dSttd�r4ttd�r4t��t��kr4dSttd�r\ttd�r\t��t��kr\dSdS)NF�getuid�geteuid�getgid�getegidT) r�flags� no_user_site�hasattrrrMrLrOrNr r r r �check_enableusersite�s rScCsztj�dd�}|r|Sdd�}tjdkrBtj�d�p6d}||d�Stjdkrptjrp|dd tjd tjdd ��S|dd �S) N�PYTHONUSERBASEcWstj�tjj|��Sr)rr� expanduserr)�argsr r r �joinuser�sz_getuserbase..joinuser�nt�APPDATA�~�Python�darwin�Libraryz%d.%d�z.local)r�environ�getr<r�platform� _framework� version_info)�env_baserW�baser r r � _getuserbase�s   �rfcCsdtj}tjdkr,|�d|d�|d�d�StjdkrFtjrF|�d�S|�d|d�d |d�d �S) NrXz\Pythonrr*z\site-packagesr\z/lib/python/site-packagesz /lib/python�.z/site-packages)rrcrr<rarb)�userbase�versionr r r � _get_path s   rjcCstdkrt�atSr)� USER_BASErfr r r r � getuserbasesrlcCst�}tdkrt|�atSr)rl� USER_SITErj)rhr r r �getusersitepackages#srncCs$t�}tr tj�|�r t||�|Sr)rn�ENABLE_USER_SITErr�isdirrK)r � user_siter r r �addusersitepackages1s rrc Cs�g}t�}|dkrt}|D]�}|r||kr,q|�|�tjdkr�|�tj�|ddtj dd�d��|�tj�|ddtj dd�d��q|�|�|�tj�|dd��|�tj�|dd��q|S) N�/�lib64�python�z site-packages�libz python%d.%dr^) r�PREFIXESrr�seprrrrrirc)�prefixes� sitepackages�seen�prefixr r r �getsitepackages?s*   �� r~cCsBtrdtjkrt�dd�t|�D]}tj�|�r"t||�q"|S)N�RPM_BUILD_ROOTrz /usr/local) rorr_rx�insertr~rrprK)r rzr;r r r �addsitepackages^s     r�cCs4tjdkrd}nd}t�d|�t_t�d|�t_dS)N�\zCtrl-Z plus ReturnzCtrl-D (i.e. EOF)�quit�exit)rry� _sitebuiltins�Quitter�builtinsr�r�)�eofr r r �setquitms  r�cCs�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� copyright��java�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.rz LICENSE.txt�LICENSE�licensez'See https://www.python.org/psf/license/)r��_Printerrr�r�rar�rRrr�dirnamer�extendr�pardir�curdirr�)�files�dirs�herer r r � setcopyright}s$�  �r�cCst��t_dSr)r��_Helperr��helpr r r r � sethelper�sr�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) Nr�__doc__��libeditzbind ^I rl_completez tab: completerZz.python_historycs(z����Wntk r"YnXdSr)�write_history_filerr ��history�readliner r � write_history�szCenablerlcompleter..register_readline..write_history)�atexitr�� rlcompleter� ImportErrorr�parse_and_bind�read_init_filer�get_current_history_lengthrrrrU�read_history_file�register)r�r�� readline_docr�r r�r �register_readline�s0      �z,enablerlcompleter..register_readline)r�__interactivehook__)r�r r r �enablerlcompleter�s 0r�c 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 �\} }} | ����} | ��} | d kr�| ��} q�| d kr�| t_ q�W5QRX|t_t_t|tjg�| dk�r8t�dtj�n tjgad a|S)Nr\�__PYVENV_LAUNCHER__z pyvenv.cfgcSsg|]}tj�|�r|�qSr )rr�isfile)rE�conffiler r r rF�s �zvenv..r�truezutf-8)�encoding�=zinclude-system-site-packages�homeF)rr_rra�_base_executable� executabler�splitrr��_homer�open� partition�strip�lowerr}� exec_prefixr�rxr�ro)r �envr��exe_dirr&� site_prefix� conf_basename�candidate_confs� virtual_conf� system_siter?rA�key�valuer r r �venv�sB   ��    r�c Cs�zBz ddl}Wn0tk r>}z|jdkr,n�W5d}~XYnXWnRtk r�}z4tjjrltjt���ntj � d|j j |f�W5d}~XYnXdS)Nr� sitecustomizez@Error in sitecustomize; set PYTHONVERBOSE for traceback: %s: %s ) r�r�r<r3rrP�verbose� excepthookr9r6�write� __class__�__name__)r��exc�errr r r �execsitecustomizes   ��r�c Cs�zBz ddl}Wn0tk r>}z|jdkr,n�W5d}~XYnXWnRtk r�}z4tjjrltjt���ntj � d|j j |f�W5d}~XYnXdS)Nr� usercustomizez@Error in usercustomize; set PYTHONVERBOSE for traceback: %s: %s ) r�r�r<r3rrPr�r�r9r6r�r�r�)r�r�r�r r r �execusercustomizes   ��r�cCs~tjdd�}t�}|tjkr$t�t|�}tdkr:t�at|�}t|�}t �t �t �tj j sjt�t�trzt�dSr)rrr"rr�rorSrrr�r�r�r�rP�isolatedr�r�r�)� orig_pathr r r r �main/s" r�cCs\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�n0d dl}t|�|tjd tj 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 r*z sys.path = [z %r,�]zUSER_BASE: %r (%s)r#z doesn't existzUSER_SITE: %r (%s)zENABLE_USER_SITE: %rrz --user-basez --user-siteFr^rv� )r�argvrlrnr4rrrpror�rrkrm�pathsepr�textwrap�dedent)r�rV� user_baserqr �bufferr�r r r �_scriptQsD ��          r��__main__)N)N)N)%rrr�r�r,r}r�rxrormrkr rr"r(rCrKrSrfrjrlrnrrr~r�r�r�r�r�r�r�r�r�rP�no_siter�r�r r r r �HsF   *      ;4 3