???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3
iS                 @   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d-ddZdd Zdd Zdd Zdd Zd.ddZd/d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se  d*d+ Z e!d,kre   dS )0    Nc              G   sB   t jj|  }yt jj|}W n tk
r0   Y nX |t jj|fS )N)ospathjoinabspathOSErrornormcase)pathsdir r
   /usr/lib64/python3.6/site.pymakepathZ   s    r   c              C   s   xt tjj D ]~} tt| dd dd dkr.qytjj| j| _W n t	t
tfk
r\   Y nX ytj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)r   r   )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| j| |j| 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j|r6t|\}}| j| W q tk
rN   wY qX qW | S )N)r   r   r   r   existsr   r   r   )ditem_itemcaser
   r
   r   _init_pathinfo   s    r'   c             C   sp  |d krt  }d}nd}tjj| |}yt|d}W n tk
rH   d S X | xt|D ]\}}|jdrrq^yX|jdrt| w^|j	 }t
| |\}}	|	|krtjj|rtjj| |j|	 W q^ tk
rR   tdj|d |tjd	 d
d l}
x>|
jtj  D ],}x$|j 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#import import	z"Error processing line {:d} of {}:
   )filer   z  z
Remainder of file ignored)r*   r+   )r'   r   r   r   openr   	enumerate
startswithexecrstripr   r"   r   r   r   	Exceptionprintformatstderr	tracebackformat_exceptionexc_info
splitlines)sitedirnamer   resetfullnamefnliner	   r    r7   recordr
   r
   r   
addpackage   sD    


rC   c             C   s   |d krt  }d}nd}t| \} }||krBtjj|  |j| ytj| }W n tk
rd   d S X dd |D }xt	|D ]}t
| || q~W |rd }|S )NTFc             S   s   g | ]}|j d r|qS )z.pth)endswith).0r<   r
   r
   r   
<listcomp>   s    zaddsitedir.<locals>.<listcomp>)r'   r   r   r   r   r   r   listdirr   sortedrC   )r;   r   r=   sitedircasenamesr<   r
   r
   r   
addsitedir   s$    
rK   c               C   s`   t jjrdS ttdr4ttdr4tj tj kr4d S ttdr\ttdr\tj tj kr\d S dS )NFgetuidgeteuidgetgidgetegidT)	r   flagsno_user_sitehasattrr   rM   rL   rO   rN   r
   r
   r
   r   check_enableusersite   s    
rS   c              C   s$   t d k	rt S ddlm}  | da t S )Nr   )get_config_varuserbase)	USER_BASE	sysconfigrT   )rT   r
   r
   r   getuserbase   s
    rX   c              C   s^   t  } td k	rtS ddlm} tjdkrJddlm} |drJ|ddatS |ddtj atS )	Nr   )get_pathdarwin)rT   PYTHONFRAMEWORKpurelibosx_framework_userz%s_user)	rX   	USER_SITErW   rY   r   platformrT   r   r<   )	user_baserY   rT   r
   r
   r   getusersitepackages   s    

ra   c             C   s$   t  }tr tjj|r t||  | S )N)ra   ENABLE_USER_SITEr   r   isdirrK   )r   	user_siter
   r
   r   addusersitepackages  s    
re   c          	   C   s  g }t  }| d krt}  x| D ]}| s||kr2q|j| tjdkr|jtjj|ddtj	d d  d |jtjj|ddtj
d d  d n6|j| |jtjj|dd |jtjj|dd tjd	krd
dlm} |d}|r|jtjjd|dtj
d d  d qW |S )N/lib64python   zsite-packageslibzpython%d.%d   rZ   r   )rT   r[   z/Libraryz%d.%d)r   PREFIXESr   r   sepr   r   r   r   versionversion_infor_   rW   rT   )prefixessitepackagesseenprefixrT   	frameworkr
   r
   r   getsitepackages   s4    





ru   c             C   sF   t rdtjkrtjdd x&t|D ]}tjj|r$t||  q$W | S )NRPM_BUILD_ROOTr   z
/usr/local)	rb   r   environrl   insertru   r   rc   rK   )r   rp   r;   r
   r
   r   addsitepackagesH  s    ry   c              C   s4   t jdkrd} nd} tjd| t_tjd| t_d S )N\zCtrl-Z plus ReturnzCtrl-D (i.e. EOF)quitexit)r   rm   _sitebuiltinsQuitterbuiltinsr{   r|   )eofr
   r
   r   setquitW  s
    
r   c              C   s   t jdtjt_tjd d dkr2t jddt_nt jddt_g g  } }ttdrtj	j
tj}| jdd	g |jtj	j|tj|tjg t jd
d| |t_d S )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.r   zLICENSE.txtLICENSElicensez'See https://www.python.org/psf/license/)r}   _Printerr   r   r   r_   r   rR   r   r   dirnamer   extendr   pardircurdirr   )filesdirsherer
   r
   r   setcopyrightg  s     


r   c               C   s   t j t_d S )N)r}   _Helperr   helpr
   r
   r
   r   	sethelper  s    r   c              C   s   dd } | t _d S )Nc                 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jd n
jd yj  W n tk
r   Y nX j dkrt	j
jt	j
jdd yj  W n tk
r   Y nX  fd	d
}| j| d S )Nr   __doc__ libeditzbind ^I rl_completeztab: complete~z.python_historyc                  s,   yj   W n ttfk
r&   Y nX d S )N)write_history_fileFileNotFoundErrorPermissionErrorr
   )historyreadliner
   r   write_history  s    zCenablerlcompleter.<locals>.register_readline.<locals>.write_history)atexitr   rlcompleterImportErrorr   parse_and_bindread_init_filer   get_current_history_lengthr   r   r   
expanduserread_history_fileIOErrorregister)r   r   readline_docr   r
   )r   r   r   register_readline  s.    
z,enablerlcompleter.<locals>.register_readline)r   __interactivehook__)r   r
   r
   r   enablerlcompleter  s    	0r   c             C   sF  t j}tjdkr$d|kr$t jd }ntj}t jjt jj|\}}t jj|}d t_	d}dd t jj
||t jj
||fD }|rB|d }d}	t|dd	`}
xX|
D ]P}d
|kr|jd
\}}}|j j }|j }|dkr|j }	q|dkr|t_	qW W d Q R X | t_t_t| tjg |	dkr6tjdtj ntjgada| S )NrZ   __PYVENV_LAUNCHER__z
pyvenv.cfgc             S   s   g | ]}t jj|r|qS r
   )r   r   isfile)rE   conffiler
   r
   r   rF     s    zvenv.<locals>.<listcomp>r   truezutf-8)encoding=zinclude-system-site-packageshomeF)r   rw   r   r_   
executabler   splitr   r   _homer   r.   	partitionstriplowerrs   exec_prefixry   rl   rx   rb   )r   envr   exe_dirr%   site_prefixconf_basenamecandidate_confsvirtual_confsystem_siter?   rA   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 Y d d }~X nX W nR tk
r } z6tjjrltjtj   ntj	j
d|jj|f  W Y d d }~X nX d S )Nr   sitecustomizez@Error in sitecustomize; set PYTHONVERBOSE for traceback:
%s: %s
)r   r   r<   r3   r   rP   verbose
excepthookr9   r6   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 Y d d }~X nX W nR tk
r } z6tjjrltjtj   ntj	j
d|jj|f  W Y d d }~X nX d S )Nr   usercustomizez@Error in usercustomize; set PYTHONVERBOSE for traceback:
%s: %s
)r   r   r<   r3   r   rP   r   r   r9   r6   r   r   r   )r   r   r   r
   r
   r   execusercustomize  s    
r   c              C   sf   t   t } t| } td kr"t at| } t| } t  t  t	  t
jjsRt  t  trbt  d S )N)r   r!   r   rb   rS   re   ry   r   r   r   r   rP   isolatedr   r   r   )r   r
   r
   r   main  s    r   c              C   s`  d} t jdd  }|st }t }td xt jD ]}td|f  q2W td td|tjj|rfdndf  td	|tjj|rdndf  td
t  t j	d g }d|kr|j
t d|kr|j
t |r,ttjj| trt j	d n6tdkr
t j	d n td kr t j	d n
t j	d n0dd l}t|j| t jd tjf  t j	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-siteFrk   ri   
   )r   argvrX   ra   r4   r   r   rc   rb   r|   r   rV   r^   pathsepr   textwrapdedent)r   argsr`   rd   r	   bufferr   r
   r
   r   _script6  s@    




r   __main__)N)N)N)"r   r   r   r}   rs   r   rl   rb   r^   rV   r   r   r!   r'   rC   rK   rS   rX   ra   re   ru   ry   r   r   r   r   r   r   r   r   rP   no_siter   r   r
   r
   r
   r   <module>H   s@   	*

(
;43
