YfT@sddlZddlZddlZddlZejejgadadada ddZ ddZ ddZ dd Z d d Zdd d ZddZddZddZddZdddZdddZddZddZddZd d!Zd"d#Zd$Zd%d&Zd'd(Zd)d*Zd+d,Zej j!sred-d.Z"e#d/kre"dS)0Nc GsStjj|}ytjj|}Wntk r<YnX|tjj|fS)N)ospathjoinabspathOSErrornormcase)pathsdirr )/opt/alt/python35/lib64/python3.5/site.pymakepathYs  r cCsxttjjD]}tt|dddddkrCqytjj|j|_Wnt t fk ryYnXytjj|j |_ Wqt t fk rYqXqWdS)N __loader__ __module___frozen_importlib_frozen_importlib_external)rr) setsysmodulesvaluesgetattrrrr__file__AttributeErrorr __cached__)mr r r abs_pathsbs rcCsrg}t}xItjD]>}t|\}}||kr|j||j|qW|tjdd<|S)N)rrrr appendadd)L known_pathsr dircaser r r removeduppathsrs   r c Csnt}x^tjD]S}y5tjj|rMt|\}}|j|Wqtk rewYqXqW|S)N)rrrrisdirr r TypeError)dr rr r r _init_pathinfos   r$c Cs|dkrt}d}nd}tjj||}yt|d}Wntk rddSYnX|VxNt|D]@\}}|jdrqyy||jd rt|wy|j }t ||\}} | |krtjj |rt jj ||j| Wqytk rtdj|d|dt jddl} xK| jt jD]4} x+| jD]}td |dt jq{WqhWtd dt jPYqyXqyWWdQRX|rd}|S) Nrr#import import z"Error processing line {:d} of {}: filez z Remainder of file ignored)r(r))r$rrropenr enumerate startswithexecrstripr existsrrr Exceptionprintformatstderr tracebackformat_exceptionexc_info splitlines) sitedirnamerresetfullnamefnliner rr5recordr r r addpackagesD          rAc Cs|dkrt}d}nd}t|\}}||kr_tjj||j|ytj|}Wntk rdSYnXdd|D}x$t |D]}t |||qW|rd}|S)Nr%rcSs%g|]}|jdr|qS)z.pth)endswith).0r:r r r s zaddsitedir..) r$r rrrrrlistdirrsortedrA)r9rr; sitedircasenamesr:r r r addsitedirs$       rIcCstjjrdSttdrJttdrJtjtjkrJdSttdrttdrtjtjkrdSdS)NFgetuidgeteuidgetgidgetegidT) rflags no_user_sitehasattrrrKrJrMrLr r r r check_enableusersites rQcCs0tdk rtSddlm}|datS)Nr)get_config_varuserbase) USER_BASE sysconfigrR)rRr r r getuserbases   rVcCst}tdk rtSddlm}tjdkrgddlm}|drg|ddatS|ddtjatS) Nr)get_pathdarwin)rRPYTHONFRAMEWORKpurelibosx_framework_userz%s_user) rV USER_SITErUrWrplatformrRrr:) user_baserWrRr r r getusersitepackagess   r_cCs2t}tr.tjj|r.t|||S)N)r_ENABLE_USER_SITErrr!rI)r user_siter r r addusersitepackagess  rbc Cs|g}t}|dkr!t}xT|D]L}| s(||krDq(|j|tjdkr|jtjj|ddtj ddd|jtjj|ddtj dddnK|j||jtjj|dd|jtjj|ddtj dkr(dd l m }|d }|r(|jtjjd |tj dddq(W|S) N/lib64pythonz site-packageslibrXr)rRrYz/Library) rPREFIXESrrseprrrrversionr]rUrR)prefixes sitepackagesseenprefixrR frameworkr r r getsitepackagess4        rpcCs:x3t|D]%}tjj|r t||q W|S)N)rprrr!rI)rrkr9r r r addsitepackagesGsrqcCsdtjdkrd}ntjdkr0d}nd}tjd|t_tjd|t_dS)N:zCmd-Q\zCtrl-Z plus ReturnzCtrl-D (i.e. EOF)quitexit)rri _sitebuiltinsQuitterbuiltinsrtru)eofr r r setquitOs  rzcCstjdtjt_tjdddkrItjddt_ntjddt_gg}}ttdrtj j tj }|j dd g|j tj j |tj|tjgtjd d ||t_dS) N copyrightjavacreditsz?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.txtLICENSElicensez'See https://www.python.org/psf/license/)rv_Printerrr{rxr]r~rPrrdirnamerextendrpardircurdirr)filesdirsherer r r setcopyrightas    +rcCstjt_dS)N)rv_Helperrxhelpr r r r sethelperysrcCsdd}|t_dS)NcSsddl}yddl}ddl}Wntk r@dSYnXt|dd}|dk r{d|kr{|jdn |jdy|jWntk rYnX|jdkrt j j t j j dd}y|j |Wntk rYnX|j|j|dS) Nr__doc__libeditzbind ^I rl_completez tab: complete~z.python_history)atexitreadline rlcompleter ImportErrorrparse_and_bindread_init_filerget_current_history_lengthrrr expanduserread_history_fileIOErrorregisterwrite_history_file)rrr readline_dochistoryr r r register_readlines,        z,enablerlcompleter..register_readline)r__interactivehook__)rr r r enablerlcompleter|s 'rc Cstjdkrddl}ddl}|jd}|jdry|j|Wn>tk rddl}|j |j |(\w|[-_])+)\s*=\s*(?P.*)\s*$c Cstj}tjdkr4d|kr4tjd}n tj}tjjtjj|\}}tjj|}dt_ d}ddtjj ||tjj ||fD}|rddl }|j t } |d} d} t| dd } x| D]} | j} | j| }|r|j}|d j|d }}|d kro|j} q|d kr|t_ q|dkr|jdkr|}d} qWWdQRX|t_t_t|tjg| dkrtjdtjntjgada|S)NrX__PYVENV_LAUNCHER__z pyvenv.cfgcSs(g|]}tjj|r|qSr )rrisfile)rCconffiler r r rDs zvenv..rtrueencodingzutf-8keyvaluezinclude-system-site-packageshomeapplocalfalseF)renvironrr] executablersplitrr_homerrecompile CONFIG_LINEr+stripmatch groupdictlowerrn exec_prefixrqrhinsertr`)renvrexe_dir_ site_prefix conf_basenamecandidate_confsr config_line virtual_conf system_siter=r?rr#rrr r r venvsJ  $            rcCsyddl}Wn~tk r$Ynmtk r}zMtjjdr^tjtjn tj j d|j j |fWYdd}~XnXdS)Nr PYTHONVERBOSEz@Error in sitecustomize; set PYTHONVERBOSE for traceback: %s: %s ) sitecustomizerr1rrgetr excepthookr7r4write __class____name__)rerrr r r execsitecustomizes  rcCsyddl}Wn~tk r$Ynmtk r}zMtjjdr^tjtjn tj j d|j j |fWYdd}~XnXdS)Nrrz@Error in usercustomize; set PYTHONVERBOSE for traceback: %s: %s ) usercustomizerr1rrrrrr7r4rrr)rrr r r execusercustomize s  rcCstt}t|}tdkr1tat|}t|}ttt t t t trt dS)N)rr rr`rQrbrqrzrrrrrr)rr r r mains      rcCsd}tjdd}|st}t}tdx"tjD]}td|fqEWtdtd|tjj|rdndftd |tjj|rdndftd ttj d g}d |kr|j t d |kr|j t |rttj j|trGtj d qtdkrctj dqtdkrtj dqtj dn@d dl}t|j|tjd tj ftj ddS)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)r0z doesn't existzUSER_SITE: %r (%s)zENABLE_USER_SITE: %rrz --user-basez --user-siteFrf )rargvrVr_r2rrr!r`rurrTr\pathseprtextwrapdedent)rargsr^rar bufferrr r r _script9s@     # #        'r__main__)$rrrxrvrnrrhr`r\rTr rr r$rArIrQrVr_rbrprqrzrrrrrrrrrrNno_siterrr r r r GsD       *    (    2  =     3