U
    wy]ZS                     @   s"  d dl Z 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|  }z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	   A/home/stadmin/Documents/SimTableSoftware/Python-3.8.0/Lib/site.pymakepath[   s    r   c                  C   s   t tj D ]~} tt| dd dd dkr,qztj| j| _W n t	t
tfk
rZ   Y nX ztj| j| _W q t	t
tfk
r   Y qX q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_pathsd   s    r   c                  C   sP   g } t  }tjD ],}t|\}}||kr| | || q| tjd d < |S r   )r   r   r   r   appendadd)Lknown_pathsr   dircaser	   r	   r
   removeduppathst   s    

r    c               	   C   sV   t  } tjD ]D}z&tj|r4t|\}}| | W q tk
rN   Y qY qX q| S r   )r   r   r   r   existsr   r   r   )ditem_Zitemcaser	   r	   r
   _init_pathinfo   s    
r%   c                 C   sr  |d krt  }d}nd}tj| |}ztt|}W n tk
rP   Y d S X | t|D ]\}}|	drvqbzZ|	drt
| W qb| }t| |\}}	|	|krtj|rtj| ||	 W qb tk
rV   td|d |tjd dd l}
|
jt  D ](}| D ]}td	| tjd qqtd
tjd Y  qZY qbX qbW 5 Q R X |rnd }|S )NTF#)zimport zimport	z"Error processing line {:d} of {}:
   )filer   z  z
Remainder of file ignored)r%   r   r   r   ioTextIOWrapper	open_coder   	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   r4   recordr	   r	   r
   
addpackage   sF    

r?   c                 C   s   |d krt  }d}nd}t| \} }||krBtj|  || zt| }W n tk
rf   Y d S X dd |D }t	|D ]}t
| || q~|rd }|S )NTFc                 S   s   g | ]}| d r|qS )z.pth)endswith).0r8   r	   r	   r
   
<listcomp>   s     
 zaddsitedir.<locals>.<listcomp>)r%   r   r   r   r   r   r   listdirr   sortedr?   )r7   r   r9   Zsitedircasenamesr8   r	   r	   r
   
addsitedir   s$    
rF   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   rH   rG   rJ   rI   r	   r	   r	   r
   check_enableusersite   s    
rN   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 r   )r   r   
expanduserr   )argsr	   r	   r
   joinuser   s    z_getuserbase.<locals>.joinuserntZAPPDATA~ZPythondarwinZLibraryz%d.%d   z.local)r   environgetr8   r   platform
_frameworkversion_info)Zenv_baserQ   baser	   r	   r
   _getuserbase   s    


r\   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 )NrR   z\Pythonr   r'   z\site-packagesrT   z/lib/python/site-packagesz/lib/python.z/site-packages)r   rZ   r   r8   rX   rY   )userbaseversionr	   r	   r
   	_get_path
  s    

r`   c                   C   s   t d krt a t S r   )	USER_BASEr\   r	   r	   r	   r
   getuserbase  s    rb   c                  C   s   t  } td krt| atS r   )rb   	USER_SITEr`   )r^   r	   r	   r
   getusersitepackages#  s    rd   c                 C   s$   t  }tr tj|r t||  | S r   )rd   ENABLE_USER_SITEr   r   isdirrF   )r   	user_siter	   r	   r
   addusersitepackages1  s    
rh   c                 C   s   g }t  }| d krt} | D ]n}|r||kr,q|| tjdkrh|tj|ddtj	d d  d q|| |tj|dd q|S )N/Zlibzpython%d.%drU   zsite-packages)
r   PREFIXESr   r   sepr   r   r   r   rZ   )prefixesZsitepackagesseenprefixr	   r	   r
   getsitepackages?  s     


ro   c                 C   s(   t |D ]}tj|rt||  q| S r   )ro   r   r   rf   rF   )r   rl   r7   r	   r	   r
   addsitepackagesZ  s    rp   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   rk   _sitebuiltinsZQuitterbuiltinsrr   rs   )Zeofr	   r	   r
   setquitb  s
    
rv   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rt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/)rt   Z_Printerr   rw   ru   rX   ry   rM   r   r   dirnamer   extendr   ZpardirZcurdirrz   )filesZdirsherer	   r	   r
   setcopyrightr  s$    

 r   c                   C   s   t  t_d S r   )rt   Z_Helperru   helpr	   r	   r	   r
   	sethelper  s    r   c                  C   s   dd } | t _d S )Nc                     s   dd l } zdd ldd l}W n tk
r2   Y d S X tdd}|d k	r\d|kr\d n
d z  W n tk
r   Y nX  dkrt	j
t	j
dd z  W n tk
r   Y nX  fd	d
}| | d S )Nr   __doc__ Zlibeditzbind ^I rl_completeztab: completerS   z.python_historyc                	      s,   z   W n ttfk
r&   Y nX d S r   )Zwrite_history_fileFileNotFoundErrorPermissionErrorr	   Zhistoryreadliner	   r
   write_history  s    zCenablerlcompleter.<locals>.register_readline.<locals>.write_history)atexitr   rlcompleterImportErrorr   Zparse_and_bindZread_init_filer   Zget_current_history_lengthr   r   r   rO   Zread_history_fileregister)r   r   Zreadline_docr   r	   r   r
   register_readline  s0    
z,enablerlcompleter.<locals>.register_readline)r   Z__interactivehook__)r   r	   r	   r
   enablerlcompleter  s    	0r   c              	   C   sH  t j}tjdkr*d|kr*t jd  }t_ntj}t jt j|\}}t j	|}d t_
d}dd t j||t j||fD }|rD|d }d}	t|dd	\}
|
D ]P}d
|kr|d
\}}}|  }| }|dkr| }	q|dkr|t_
qW 5 Q R X | t_t_t| tjg |	dkr8tdtj ntjgada| S )NrT   Z__PYVENV_LAUNCHER__z
pyvenv.cfgc                 S   s   g | ]}t j|r|qS r	   )r   r   Zisfile)rA   Zconffiler	   r	   r
   rB     s   zvenv.<locals>.<listcomp>r   Ztruezutf-8)encoding=zinclude-system-site-packagesZhomeF)r   rV   r   rX   _base_executable
executabler   splitr   r{   Z_homer   open	partitionstriplowerrn   exec_prefixrp   rj   insertre   )r   Zenvr   Zexe_dirr$   Zsite_prefixZconf_basenameZcandidate_confsZvirtual_confZsystem_siter;   r=   keyvaluer	   r	   r
   venv  sB    

r   c               
   C   s   zBzdd l } W n0 tk
r> } z|jdkr,n W 5 d }~X Y nX W nR tk
r } z4tjjrltjt   ntj	
d|jj|f  W 5 d }~X Y nX d S )Nr   sitecustomizez@Error in sitecustomize; set PYTHONVERBOSE for traceback:
%s: %s
)r   r   r8   r0   r   rK   verbose
excepthookr5   r3   write	__class____name__)r   excerrr	   r	   r
   execsitecustomize  s    

r   c               
   C   s   zBzdd l } W n0 tk
r> } z|jdkr,n W 5 d }~X Y nX W nR tk
r } z4tjjrltjt   ntj	
d|jj|f  W 5 d }~X Y nX d S )Nr   usercustomizez@Error in usercustomize; set PYTHONVERBOSE for traceback:
%s: %s
)r   r   r8   r0   r   rK   r   r   r5   r3   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 r   )r   r   r    r   r   re   rN   rh   rp   rv   r   r   rK   isolatedr   r   r   )Z	orig_pathr   r	   r	   r
   main$  s"    
r   c                  C   s\  d} t jdd  }|st }t }td t jD ]}td|f  q0td td|tj|rbdndf  td	|tj|rdndf  td
t  t 	d g }d|kr|
t d|kr|
t |r(ttj| trt 	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-siteFrU      
   )r   argvrb   rd   r1   r   r   rf   re   rs   r   ra   rc   Zpathsepr   textwrapZdedent)r   rP   Z	user_baserg   r   bufferr   r	   r	   r
   _scriptF  sD    





r   __main__)N)N)N)%r   r   ru   rt   r)   rn   r   rj   re   rc   ra   r   r   r    r%   r?   rF   rN   r\   r`   rb   rd   rh   ro   rp   rv   r   r   r   r   r   r   r   rK   no_siter   r   r	   r	   r	   r
   <module>H   sF   	*
 

;4
3
