B
    wÿ2[ôQ  ã               @   s  d dl Z d dlZd dlZd dlZe je jgadadada	dd„ Z
dd„ Zdd„ Zdd	„ Zd
d„ Zd1dd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd2dd„Zd3dd„Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Ze j j! sþeƒ  d.d/„ Z"e#d0kre"ƒ  dS )4é    Nc              G   sB   t jj| Ž }yt j |¡}W n tk
r0   Y nX |t j |¡fS )N)ÚosÚpathÚjoinÚabspathÚOSErrorZnormcase)ZpathsÚdir© r   ú/root/Python-3.7.0/Lib/site.pyÚmakepathZ   s    r
   c              C   s–   xt tj ¡ ƒD ]~} tt| dd ƒdd ƒdkr.qytj | j¡| _W n t	t
tfk
r\   Y nX ytj | j¡| _W q t	t
tfk
rŒ   Y qX qW d S )NÚ
__loader__Ú
__module__)Ú_frozen_importlibÚ_frozen_importlib_external)ÚsetÚsysÚmodulesÚvaluesÚgetattrr   r   r   Ú__file__ÚAttributeErrorr   Ú	TypeErrorÚ
__cached__)Úmr   r   r	   Ú	abs_pathsc   s    r   c              C   sT   g } t ƒ }x6tjD ],}t|ƒ\}}||kr|  |¡ | |¡ qW | tjd d …< |S )N)r   r   r   r
   ÚappendÚadd)ÚLÚknown_pathsr   Údircaser   r   r	   Úremoveduppathss   s    
r   c           	   C   sX   t ƒ } xLtjD ]B}y&tj |¡r6t|ƒ\}}|  |¡ W q tk
rN   wY qX qW | S )N)r   r   r   r   Úexistsr
   r   r   )ÚdÚitemÚ_Zitemcaser   r   r	   Ú_init_pathinfo†   s    r$   c             C   sp  |d krt ƒ }d}nd}tj | |¡}yt|dƒ}W n tk
rH   d S X | xt|ƒD ]ö\}}| d¡rrq^yX| d¡rˆt|ƒ w^| 	¡ }t
| |ƒ\}}	|	|krÈtj |¡rÈtj |¡ | |	¡ W q^ tk
rR   td |d |¡tjd d	d l}
x>|
jt ¡ Ž D ],}x$| ¡ D ]}td
| tjd qW qW tdtjd P Y q^X q^W W d Q R X |rld }|S )NTFÚrú#)zimport zimport	z"Error processing line {:d} of {}:
é   )Úfiler   z  z
Remainder of file ignored)r$   r   r   r   Úopenr   Ú	enumerateÚ
startswithÚexecÚrstripr
   r    r   r   r   Ú	ExceptionÚprintÚformatÚstderrÚ	tracebackZformat_exceptionÚexc_infoÚ
splitlines)ÚsitedirÚnamer   ÚresetÚfullnameÚfÚnÚliner   r   r2   Úrecordr   r   r	   Ú
addpackage“   sD    


r=   c             C   sž   |d krt ƒ }d}nd}t| ƒ\} }||krBtj | ¡ | |¡ yt | ¡}W n tk
rd   d S X dd„ |D ƒ}xt	|ƒD ]}t
| ||ƒ q~W |ršd }|S )NTFc             S   s   g | ]}|  d ¡r|‘qS )z.pth)Úendswith)Ú.0r6   r   r   r	   ú
<listcomp>Í   s    zaddsitedir.<locals>.<listcomp>)r$   r
   r   r   r   r   r   Úlistdirr   Úsortedr=   )r5   r   r7   ZsitedircaseÚnamesr6   r   r   r	   Ú
addsitedir½   s$    
rD   c               C   s`   t jjrdS ttdƒr4ttdƒr4t ¡ t ¡ kr4d S ttdƒr\ttdƒr\t ¡ t ¡ kr\d S dS )NFÚgetuidÚgeteuidÚgetgidÚgetegidT)	r   ÚflagsÚno_user_siteÚhasattrr   rF   rE   rH   rG   r   r   r   r	   Úcheck_enableusersiteÕ   s    
rL   c              C   sz   t j dd ¡} | r| S dd„ }t jdkrBt j d¡p6d}||dƒS tjdkrptjrp|dd	tjd
tjd d…  ƒS |ddƒS )NZPYTHONUSERBASEc              W   s   t j t jj| Ž ¡S )N)r   r   Ú
expanduserr   )Úargsr   r   r	   Újoinuserú   s    z_getuserbase.<locals>.joinuserÚntZAPPDATAú~ZPythonÚdarwinZLibraryz%d.%dé   z.local)r   ÚenvironÚgetr6   r   ÚplatformÚ
_frameworkÚversion_info)Zenv_baserO   Úbaser   r   r	   Ú_getuserbaseõ   s    


rZ   c             C   sd   t j}tjdkr,| › d|d › |d › dS t jdkrFt jrF| › dS | › d|d › d	|d › d
S )NrP   z\Pythonr   r'   z\site-packagesrR   z/lib/python/site-packagesz/lib/pythonÚ.z/site-packages)r   rX   r   r6   rV   rW   )ÚuserbaseÚversionr   r   r	   Ú	_get_path	  s    

r^   c               C   s   t d krtƒ a t S )N)Ú	USER_BASErZ   r   r   r   r	   Úgetuserbase  s    r`   c              C   s   t ƒ } td krt| ƒatS )N)r`   Ú	USER_SITEr^   )r\   r   r   r	   Úgetusersitepackages"  s    rb   c             C   s$   t ƒ }tr tj |¡r t|| ƒ | S )N)rb   ÚENABLE_USER_SITEr   r   ÚisdirrD   )r   Ú	user_siter   r   r	   Úaddusersitepackages0  s    
rf   c             C   s’   g }t ƒ }| d krt} xv| D ]n}|r||kr.q| |¡ tjdkrj| tj |ddtj	d d…  d¡¡ q| |¡ | tj |dd¡¡ qW |S )Nú/Zlibzpython%d.%drS   zsite-packages)
r   ÚPREFIXESr   r   Úsepr   r   r   r   rX   )ÚprefixesZsitepackagesÚseenÚprefixr   r   r	   Úgetsitepackages>  s    




rm   c             C   s,   x&t |ƒD ]}tj |¡r
t|| ƒ q
W | S )N)rm   r   r   rd   rD   )r   rj   r5   r   r   r	   ÚaddsitepackagesY  s    rn   c              C   s4   t jdkrd} nd} t d| ¡t_t d| ¡t_d S )Nú\zCtrl-Z plus ReturnzCtrl-D (i.e. EOF)ÚquitÚexit)r   ri   Ú_sitebuiltinsZQuitterÚbuiltinsrp   rq   )Zeofr   r   r	   Úsetquita  s
    
rt   c              C   s¤   t  dtj¡t_tjd d… dkr2t  dd¡t_nt  dd¡t_g g  } }ttdƒrŽtj	 
tj¡}|  dd	g¡ | tj	 |tj¡|tjg¡ t  d
d| |¡t_d S )NÚ	copyrighté   Z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.r   zLICENSE.txtZLICENSEÚlicensez'See https://www.python.org/psf/license/)rr   Z_Printerr   ru   rs   rV   rw   rK   r   r   Údirnamer   Úextendr   ZpardirZcurdirrx   )ZfilesZdirsÚherer   r   r	   Úsetcopyrightq  s     


r|   c               C   s   t  ¡ t_d S )N)rr   Z_Helperrs   Úhelpr   r   r   r	   Ú	sethelper‰  s    r~   c              C   s   dd„ } | t _d S )Nc              S   sÞ   dd l } ydd l}dd l}W n tk
r0   d S X t|ddƒ}|d k	rZd|krZ| d¡ n
| d¡ y| ¡  W n tk
r„   Y nX | ¡ dkrÚt	j
 t	j
 d¡d¡}y| |¡ W n tk
rÊ   Y nX |  |j|¡ d S )	Nr   Ú__doc__Ú Zlibeditzbind ^I rl_completeztab: completerQ   z.python_history)ÚatexitÚreadlineÚrlcompleterÚImportErrorr   Zparse_and_bindZread_init_filer   Zget_current_history_lengthr   r   r   rM   Zread_history_fileÚregisterZwrite_history_file)r   r‚   rƒ   Zreadline_docZhistoryr   r   r	   Úregister_readline•  s,    
z,enablerlcompleter.<locals>.register_readline)r   Z__interactivehook__)r†   r   r   r	   ÚenablerlcompleterŒ  s    	'r‡   c          	   C   sF  t j}tjdkr$d|kr$t jd }ntj}t j t j |¡¡\}}t j |¡}d t_	d}dd„ t j 
||¡t j 
||¡fD ƒ}|rB|d }d}	t|dd	`}
xX|
D ]P}d
|kr¤| d
¡\}}}| ¡  ¡ }| ¡ }|dkræ| ¡ }	q¤|dkr¤|t_	q¤W W d Q R X | t_t_t| tjgƒ |	dkr6t dtj¡ ntjgada| S )NrR   Z__PYVENV_LAUNCHER__z
pyvenv.cfgc             S   s   g | ]}t j |¡r|‘qS r   )r   r   Zisfile)r?   Zconffiler   r   r	   r@   Ë  s    zvenv.<locals>.<listcomp>r   Ztruezutf-8)Úencodingú=zinclude-system-site-packagesZhomeF)r   rT   r   rV   Ú
executabler   Úsplitr   ry   Z_homer   r)   Ú	partitionÚstripÚlowerrl   Úexec_prefixrn   rh   Úinsertrc   )r   ZenvrŠ   Zexe_dirr#   Zsite_prefixZconf_basenameZcandidate_confsZvirtual_confZsystem_siter9   r;   ÚkeyÚvaluer   r   r	   Úvenv¾  s>    


r“   c           
   C   sš   yBydd l } W n0 tk
r> } z|jdkr,n‚ W d d }~X Y nX W nR tk
r” } z4tjjrltjt ¡ Ž  ntj	 
d|jj|f ¡ W d d }~X Y nX d S )Nr   Úsitecustomizez@Error in sitecustomize; set PYTHONVERBOSE for traceback:
%s: %s
)r”   r„   r6   r.   r   rI   ÚverboseÚ
excepthookr3   r1   ÚwriteÚ	__class__Ú__name__)r”   ÚexcÚerrr   r   r	   Úexecsitecustomizeò  s    
rœ   c           
   C   sš   yBydd l } W n0 tk
r> } z|jdkr,n‚ W d d }~X Y nX W nR tk
r” } z4tjjrltjt ¡ Ž  ntj	 
d|jj|f ¡ W d d }~X Y nX d S )Nr   Úusercustomizez@Error in usercustomize; set PYTHONVERBOSE for traceback:
%s: %s
)r   r„   r6   r.   r   rI   r•   r–   r3   r1   r—   r˜   r™   )r   rš   r›   r   r   r	   Úexecusercustomize  s    
rž   c              C   s~   t jd d … } tƒ }| t jkr$tƒ  t|ƒ}td kr:tƒ at|ƒ}t|ƒ}t	ƒ  t
ƒ  tƒ  t jjsjtƒ  tƒ  trztƒ  d S )N)r   r   r   r   r“   rc   rL   rf   rn   rt   r|   r~   rI   Úisolatedr‡   rœ   rž   )Z	orig_pathr   r   r   r	   Úmain  s"    
r    c              C   s`  d} t jdd … }|s¦tƒ }tƒ }tdƒ xt jD ]}td|f ƒ q2W tdƒ td|tj |¡rfdndf ƒ td	|tj |¡r†dndf ƒ td
t ƒ t  	d¡ g }d|kr¼| 
t¡ d|krÎ| 
t¡ |r,ttj |¡ƒ trôt  	d¡ n6tdkr
t  	d¡ n td kr t  	d¡ n
t  	d¡ n0dd l}t| | t jd tjf ¡ƒ t  	d¡ d S )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,ú]zUSER_BASE: %r (%s)r    zdoesn't existzUSER_SITE: %r (%s)zENABLE_USER_SITE: %rr   z--user-basez--user-siteFrS   é   é
   )r   Úargvr`   rb   r/   r   r   rd   rc   rq   r   r_   ra   Zpathsepr   ÚtextwrapZdedent)r}   rN   Z	user_basere   r   Úbufferr¥   r   r   r	   Ú_script<  s@    




r§   Ú__main__)N)N)N)$r   r   rs   rr   rl   r   rh   rc   ra   r_   r
   r   r   r$   r=   rD   rL   rZ   r^   r`   rb   rf   rm   rn   rt   r|   r~   r‡   r“   rœ   rž   r    rI   Úno_siter§   r™   r   r   r   r	   Ú<module>H   sD   	*
 

24
3
