???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................
$YfT                 @   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$ Z d% d&   Z d' d(   Z d) d*   Z d+ d,   Z e  j  j! sre   d- d.   Z" e# d/ k re"   d S)0    Nc              G   sS   t  j j |    } y t  j j |  } Wn t k
 r< Yn X| t  j j |  f S)N)ospathjoinabspathOSErrornormcase)pathsdir r
   )/opt/alt/python35/lib64/python3.5/site.pymakepathY   s    r   c              C   s   x t  t j j    D] }  t t |  d d   d d   d k rC q y t j j |  j  |  _ Wn t	 t
 f k
 ry Yn Xy t j j |  j  |  _ Wq t	 t
 f k
 r Yq Xq Wd  S)N
__loader__
__module___frozen_importlib_frozen_importlib_external)r   r   )setsysmodulesvaluesgetattrr   r   r   __file__AttributeErrorr   
__cached__)mr
   r
   r   	abs_pathsb   s    	r   c              C   sr   g  }  t    } xI t 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   removeduppathsr   s    	r    c              C   sn   t    }  x^ t j D]S } y5 t j j |  rM t |  \ } } |  j |  Wq t k
 re w Yq Xq W|  S)N)r   r   r   r   isdirr   r   	TypeError)dr	   r   r
   r
   r   _init_pathinfo   s    	r$   c             C   s  | d  k r t    } d } n d } t j j |  |  } y t | d  } Wn t k
 rd d  SYn X| VxNt |  D]@\ } } | j d  r qy y| | j d  r t |  wy | j	   } t
 |  |  \ } }	 |	 | k rt j j |  rt j j |  | j |	  Wqy t k
 rt d j | d |  d t j d d  l }
 xK |
 j t j     D]4 } x+ | j   D] } t d	 | d t j q{WqhWt d
 d t j PYqy Xqy WWd  QRX| rd  } | S)N   r   r#import import	z"Error processing line {:d} of {}:
filez  z
Remainder of file ignored)r(   r)   )r$   r   r   r   openr   	enumerate
startswithexecrstripr   existsr   r   r   	Exceptionprintformatstderr	tracebackformat_exceptionexc_info
splitlines)sitedirnamer   resetfullnamefnliner	   r   r5   recordr
   r
   r   
addpackage   sD    			

rA   c             C   s   | d  k r t    } d } n d } t |   \ }  } | | k r_ t j j |   | j |  y t j |   } Wn t k
 r d  SYn Xd d   | D } x$ t	 |  D] } t
 |  | |  q W| r d  } | S)Nr%   r   c             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   sortedrA   )r9   r   r;   sitedircasenamesr:   r
   r
   r   
addsitedir   s$    			rI   c               C   s   t  j j r d St t d  rJ t t d  rJ t j   t j   k rJ d  St t d  r t t d  r t j   t j   k r d  Sd S)NFgetuidgeteuidgetgidgetegidT)	r   flagsno_user_sitehasattrr   rK   rJ   rM   rL   r
   r
   r
   r   check_enableusersite   s    
rQ   c              C   s0   t  d  k	 r t  Sd d l m }  |  d  a  t  S)Nr   )get_config_varuserbase)	USER_BASE	sysconfigrR   )rR   r
   r
   r   getuserbase   s
    rV   c              C   s   t    }  t d  k	 r t Sd d l m } t j d k rg d d l m } | d  rg | d d  a t S| d d t j  a t S)	Nr   )get_pathdarwin)rR   PYTHONFRAMEWORKpurelibosx_framework_userz%s_user)	rV   	USER_SITErU   rW   r   platformrR   r   r:   )	user_baserW   rR   r
   r
   r   getusersitepackages   s    	r_   c             C   s2   t    } t r. t j j |  r. t | |   |  S)N)r_   ENABLE_USER_SITEr   r   r!   rI   )r   	user_siter
   r
   r   addusersitepackages  s    	rb   c          	   C   s|  g  } t    } |  d  k r! t }  xT|  D]L} | s( | | k rD q( | 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   nK | 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 | t j	 d  d  d   q( W| S)N/lib64python   zsite-packageslibrX   r   )rR   rY   z/Library)r   PREFIXESr   r   sepr   r   r   r   versionr]   rU   rR   )prefixessitepackagesseenprefixrR   	frameworkr
   r
   r   getsitepackages  s4    	
rp   c             C   s:   x3 t  |  D]% } t j j |  r t | |   q W|  S)N)rp   r   r   r!   rI   )r   rk   r9   r
   r
   r   addsitepackagesG  s    rq   c              C   sd   t  j d k r d }  n t  j d k r0 d }  n d }  t j d |   t _ t j d |   t _ d  S)N:zCmd-Q\zCtrl-Z plus ReturnzCtrl-D (i.e. EOF)quitexit)r   ri   _sitebuiltinsQuitterbuiltinsrt   ru   )eofr
   r
   r   setquitO  s    		rz   c              C   s   t  j d t j  t _ t j d  d  d k rI t  j d d  t _ n t  j d d  t _ g  g  }  } t t d  r t 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/)rv   _Printerr   r{   rx   r]   r~   rP   r   r   dirnamer   extendr   pardircurdirr   )filesdirsherer
   r
   r   setcopyrighta  s     	+r   c               C   s   t  j   t _ d  S)N)rv   _Helperrx   helpr
   r
   r
   r   	sethelpery  s    r   c              C   s   d d   }  |  t  _ d  S)Nc              S   s  d d  l  }  y d d  l } d d  l } Wn t k
 r@ d  SYn Xt | d d  } | d  k	 r{ d | k r{ | j d  n | j d  y | j   Wn t k
 r Yn X| j   d k rt	 j
 j t	 j
 j d  d  } y | j |  Wn t k
 rYn X|  j | j |  d  S)	Nr   __doc__ libeditzbind ^I rl_completeztab: complete~z.python_history)atexitreadlinerlcompleterImportErrorr   parse_and_bindread_init_filer   get_current_history_lengthr   r   r   
expanduserread_history_fileIOErrorregisterwrite_history_file)r   r   r   readline_dochistoryr
   r
   r   register_readline  s,    		z,enablerlcompleter.<locals>.register_readline)r   __interactivehook__)r   r
   r
   r   enablerlcompleter|  s    	'r   c              C   s   t  j d k r d d  l }  d d  l } |  j d  } | j d  r y | j |  Wn> t k
 r d d  l } | j	 | j
 | <d | j j | <Yn Xd  S)Nwin32r   Fcpmbcs)r   r]   _bootlocalecodecsgetpreferredencodingr-   lookupLookupError	encodings_unknown_cachealiases)r   r   encr   r
   r
   r   	aliasmbcs  s    r   z,^(?P<key>(\w|[-_])+)\s*=\s*(?P<value>.*)\s*$c             C   s  t  j } t j d k r4 d | k r4 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 } | rd d  l } | j t  }	 | d }
 d } t |
 d d	  } x | D] } | j   } |	 j |  } | r| j   } | d
 j   | d } } | d k ro| j   } q| d k r| t _	 q| d k r| j   d k r| } d } qWWd  QRX| t _ t _ t |  t j g  | d k rt j d t j  n t j g a d a |  S)NrX   __PYVENV_LAUNCHER__z
pyvenv.cfgc             S   s(   g  |  ] } t  j j |  r |  q Sr
   )r   r   isfile)rC   conffiler
   r
   r   rD     s   	 zvenv.<locals>.<listcomp>r   trueencodingzutf-8keyvaluezinclude-system-site-packageshomeapplocalfalseF)r   environr   r]   
executabler   splitr   r   _homer   recompileCONFIG_LINEr+   stripmatch	groupdictlowerrn   exec_prefixrq   rh   insertr`   )r   envr   exe_dir_site_prefixconf_basenamecandidate_confsr   config_linevirtual_confsystem_siter=   r?   r   r#   r   r   r
   r
   r   venv  sJ    		$		
r   c              C   s   y d d  l  }  Wn~ t k
 r$ Ynm t k
 r } zM t j j d  r^ t j t j     n  t j	 j
 d | j j | f  WYd  d  } ~ Xn Xd  S)Nr   PYTHONVERBOSEz@Error in sitecustomize; set PYTHONVERBOSE for traceback:
%s: %s
)sitecustomizer   r1   r   r   getr   
excepthookr7   r4   write	__class____name__)r   errr
   r
   r   execsitecustomize  s    	r   c              C   s   y d d  l  }  Wn~ t k
 r$ Ynm t k
 r } zM t j j d  r^ t j t j     n  t j	 j
 d | j j | f  WYd  d  } ~ Xn Xd  S)Nr   r   z@Error in usercustomize; set PYTHONVERBOSE for traceback:
%s: %s
)usercustomizer   r1   r   r   r   r   r   r7   r4   r   r   r   )r   r   r
   r
   r   execusercustomize  s    	r   c              C   s   t    t   }  t |   }  t d  k r1 t   a t |   }  t |   }  t   t   t	   t
   t   t   t r t   d  S)N)r   r    r   r`   rQ   rb   rq   rz   r   r   r   r   r   r   )r   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  qE Wt d  t d | t j j |  r d n d f  t d	 | t j j |  r d 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 rGt  j	 d  qt d k rct  j	 d  qt d  k rt  j	 d  qt  j	 d  n@ d 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)r0   zdoesn't existzUSER_SITE: %r (%s)zENABLE_USER_SITE: %rr   z--user-basez--user-siteF   rf   
   )r   argvrV   r_   r2   r   r   r!   r`   ru   r   rT   r\   pathsepr   textwrapdedent)r   argsr^   ra   r	   bufferr   r
   r
   r   _script9  s@    		

	#	#'r   __main__)$r   r   rx   rv   rn   r   rh   r`   r\   rT   r   r   r    r$   rA   rI   rQ   rV   r_   rb   rp   rq   rz   r   r   r   r   r   r   r   r   r   rN   no_siter   r   r
   r
   r
   r   <module>G   sD   	*(2=3