3 �L�jS�@sddlZddlZddlZddlZejejgadadada dd�Z dd�Z dd�Z dd �Z d d �Zd-d d �Zdd�Zdd�Zdd�Zdd�Zd.dd�Zd/dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zejjs�e�d*d+�Z e!d,k�re �dS)0�Nc GsBtjj|�}ytjj|�}Wntk r0YnX|tjj|�fS)N)�os�path�join�abspath�OSError�normcase)�paths�dir�r �/usr/lib64/python3.6/site.py�makepathZs  r cCs�x�ttjj��D]~}tt|dd�dd�dkr.qytjj|j�|_Wnt t t fk r\YnXytjj|j �|_ Wqt t t fk r�YqXqWdS)N� __loader__� __module__�_frozen_importlib�_frozen_importlib_external)rr) �set�sys�modules�values�getattrrrr�__file__�AttributeErrorr� TypeError� __cached__)�mr r r � abs_pathscsrcCsTg}t�}x6tjD],}t|�\}}||kr|j|�|j|�qW|tjdd�<|S)N)rrrr �append�add)�L� known_pathsr �dircaser r r �removeduppathsss   r!c CsXt�}xLtjD]B}y&tjj|�r6t|�\}}|j|�Wqtk rNwYqXqW|S)N)rrrr�existsr rr)�d�item�_�itemcaser r r �_init_pathinfo�s    r'c Csp|dkrt�}d}nd}tjj||�}yt|d�}Wntk rHdSX|�� �xt|�D]�\}}|jd�rrq^yX|jd �r�t|�w^|j �}t ||�\}} | |kr�tjj |�r�t jj |�|j| �Wq^tk �rRtdj|d|�t jd �d dl} x>| jt j��D],} x$| j�D]}td |t jd ��qW�qWtd t jd �PYq^Xq^WWdQRX|�rld}|S)NTF�r�#�import �import z"Error processing line {:d} of {}: �)�filerz z Remainder of file ignored)r*r+)r'rrr�openr� 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�sD    rCc Cs�|dkrt�}d}nd}t|�\}}||krBtjj|�|j|�ytj|�}Wntk rddSXdd�|D�}xt |�D]}t |||�q~W|r�d}|S)NTFcSsg|]}|jd�r|�qS)z.pth)�endswith)�.0r<r r r � �szaddsitedir..) r'r rrrrr�listdirr�sortedrC)r;rr=� sitedircase�namesr<r r r � addsitedir�s$   rKcCs`tjjr dSttd�r4ttd�r4tj�tj�kr4dSttd�r\ttd�r\tj�tj�kr\dSdS)NF�getuid�geteuid�getgid�getegidT) r�flags� no_user_site�hasattrrrMrLrOrNr r r r �check_enableusersite�s rScCs$tdk r tSddlm}|d�atS)Nr)�get_config_var�userbase)� USER_BASE� sysconfigrT)rTr r r � getuserbase�s  rXcCs^t�}tdk rtSddlm}tjdkrJddlm}|d�rJ|dd�atS|ddtj�atS) Nr)�get_path�darwin)rT�PYTHONFRAMEWORK�purelib�osx_framework_userz%s_user) rX� USER_SITErWrYr�platformrTrr<)� user_baserYrTr r r �getusersitepackages�s    racCs$t�}tr tjj|�r t||�|S)N)ra�ENABLE_USER_SITErr�isdirrK)r� user_siter r r �addusersitepackagess rec Csg}t�}|dkrt}�x�|D]�}| s||kr2q|j|�tjdkr�|jtjj|ddtj dd�d��|jtjj|ddtj dd�d��n6|j|�|jtjj|dd��|jtjj|dd��tj d krd d l m }|d �}|r|jtjjd |dtj dd�d��qW|S)N�/�lib64�python�z site-packages�libz python%d.%d�rZr)rTr[z/Libraryz%d.%d)r�PREFIXESrr�seprrrr�version� version_infor_rWrT)�prefixes� sitepackages�seen�prefixrT� frameworkr r r �getsitepackages s4        rucCsFtrdtjkrtjdd�x&t|�D]}tjj|�r$t||�q$W|S)N�RPM_BUILD_ROOTrz /usr/local) rbr�environrl�insertrurrcrK)rrpr;r r r �addsitepackagesHs   rycCs4tjdkrd}nd}tjd|�t_tjd|�t_dS)N�\zCtrl-Z plus ReturnzCtrl-D (i.e. EOF)�quit�exit)rrm� _sitebuiltins�Quitter�builtinsr{r|)�eofr r r �setquitWs  r�cCs�tjdtj�t_tjdd�dkr2tjdd�t_ntjdd�t_gg}}ttd�r�tj j tj �}|j dd g�|j tj j |tj�|tjg�tjd 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�rr_r�rRrr�dirnamer�extendr�pardir�curdirr�)�files�dirs�herer r r � setcopyrightgs    r�cCstj�t_dS)N)r}�_Helperr�helpr r r r � sethelpersr�cCsdd�}|t_dS)Ncs�ddl}yddl�ddl}Wntk r0dSXt�dd�}|dk rZd|krZ�jd�n �jd�y �j�Wntk r�YnX�j�dkr�t j j t j j d�d��y�j ��Wntk r�YnX��fd d �}|j|�dS) Nr�__doc__��libeditzbind ^I rl_completez tab: complete�~z.python_historyc s,y�j��Wnttfk r&YnXdS)N)�write_history_file�FileNotFoundError�PermissionErrorr )�history�readliner r � write_history�szCenablerlcompleter..register_readline..write_history)�atexitr�� rlcompleter� ImportErrorr�parse_and_bind�read_init_filer�get_current_history_lengthrrr� expanduser�read_history_file�IOError�register)r�r�� readline_docr�r )r�r�r �register_readline�s.      z,enablerlcompleter..register_readline)r�__interactivehook__)r�r r r �enablerlcompleter�s 0r�c CsFtj}tjdkr$d|kr$tjd}ntj}tjjtjj|��\}}tjj|�}dt_ d}dd�tjj ||�tjj ||�fD�}|�rB|d}d} t |dd ��`} xX| D]P} d | kr�| j d �\} }} | j �j�} | j �} | d kr�| j�} q�| d kr�| t_ q�WWdQRX|t_t_t|tjg�| dk�r6tjdtj�n tjgad a|S)NrZ�__PYVENV_LAUNCHER__z pyvenv.cfgcSsg|]}tjj|�r|�qSr )rr�isfile)rE�conffiler r r rF�szvenv..r�truezutf-8)�encoding�=zinclude-system-site-packages�homeF)rrwrr_� executabler�splitrr��_homerr.� partition�strip�lowerrs� exec_prefixryrlrxrb)r�envr��exe_dirr%� site_prefix� conf_basename�candidate_confs� virtual_conf� system_siter?rA�key�valuer r r �venv�s>        r�cCs�yBy ddl}Wn0tk r>}z|jdkr,n�WYdd}~XnXWnRtk r�}z6tjjrltjtj��ntj j d|j j |f�WYdd}~XnXdS)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 �execsitecustomize�s  r�cCs�yBy ddl}Wn0tk r>}z|jdkr,n�WYdd}~XnXWnRtk r�}z6tjjrltjtj��ntj j d|j j |f�WYdd}~XnXdS)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�cCsft�t�}t|�}tdkr"t�at|�}t|�}t�t�t �t j j sRt �t�trbt�dS)N)rr!r�rbrSreryr�r�r�rrP�isolatedr�r�r�)rr r r �mainsr�cCs`d}tjdd�}|s�t�}t�}td�xtjD]}td|f�q2Wtd�td|tjj|�rfdndf�td |tjj|�r�dndf�td t�tj d �g}d |kr�|j t �d |kr�|j t �|�r,ttj j|��tr�tj d �n6tdk�r tj d�n tdk�r tj d�n tj d�n0d dl}t|j|tjd tj f��tj 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-siteFrkri� )r�argvrXrar4rrrcrbr|rrVr^�pathsepr�textwrap�dedent)r��argsr`rdr �bufferr�r r r �_script6s@           r��__main__)N)N)N)"rrrr}rsr�rlrbr^rVr rr!r'rCrKrSrXrareruryr�r�r�r�r�r�r�r�rP�no_siter�r�r r r r �Hs@   *  ( ;43