Lc@sTdZddkZddkZddkZeieigZdada da dZ dZ dZ dZdZdZdd Zd Zd Zd Zd ZdZdefdYZdZdefdYZdZdZdZdZdZdZ e dZ!e"djo e!ndS(sN Append module search paths for third-party packages to sys.path. **************************************************************** * This module is automatically imported during initialization. * **************************************************************** In earlier versions of Python (up to 1.5a3), scripts or modules that needed to use site-specific modules would place ``import site'' somewhere near the top of their code. Because of the automatic import, this is no longer necessary (but code that does it still works). This will append site-specific paths to the module search path. On Unix (including Mac OSX), it starts with sys.prefix and sys.exec_prefix (if different) and appends lib/python/site-packages as well as lib/site-python. On other platforms (such as Windows), it tries each of the prefixes directly, as well as with lib/site-packages appended. The resulting directories, if they exist, are appended to sys.path, and also inspected for path configuration files. A path configuration file is a file whose name has the form .pth; its contents are additional directories (one per line) to be added to sys.path. Non-existing directories (or non-directories) are never added to sys.path; no directory is added to sys.path more than once. Blank lines and lines beginning with '#' are skipped. Lines starting with 'import' are executed. For example, suppose sys.prefix and sys.exec_prefix are set to /usr/local and there is a directory /usr/local/lib/python2.5/site-packages with three subdirectories, foo, bar and spam, and two path configuration files, foo.pth and bar.pth. Assume foo.pth contains the following: # foo package configuration foo bar bletch and bar.pth contains: # bar package configuration bar Then the following directories are added to sys.path, in this order: /usr/local/lib/python2.5/site-packages/bar /usr/local/lib/python2.5/site-packages/foo Note that bletch is omitted because it doesn't exist; bar precedes foo because bar.pth comes alphabetically before foo.pth; and spam is omitted because it is not mentioned in either path configuration file. After these path manipulations, an attempt is made to import a module named sitecustomize, which can perform arbitrary additional site-specific customizations. If this import fails with an ImportError exception, it is silently ignored. iNcGs4tiitii|}|tii|fS(N(tostpathtabspathtjointnormcase(tpathstdir((s/usr/lib64/python2.6/site.pytmakepathKscCsjxctiiD]R}t|doqnytii|i|_Wqtj o qqXqWdS(s6Set all module' __file__ attribute to an absolute patht __loader__N( tsystmodulestvaluesthasattrRRRt__file__tAttributeError(tm((s/usr/lib64/python2.6/site.pyt abs__file__PscCsng}t}xNtiD]C}t|\}}||jo|i||i|qqW|ti(|S(sK Remove duplicate entries from sys.path along with making them absolute(tsetR RRtappendtadd(tLt known_pathsRtdircase((s/usr/lib64/python2.6/site.pytremoveduppaths[s     cCsddkl}d|tif}ttdo|d7}ntiitiitid|}tii |dS(sbAppend ./build/lib. in case we're running in the build dir (especially for Guido :-)i(t get_platformsbuild/lib.%s-%.3stgettotalrefcounts-pydebugN( tdistutils.utilRR tversionR RRRtdirnameR(Rts((s/usr/lib64/python2.6/site.pyt addbuilddiros (cCstt}xdtiD]Y}y:tii|o#t|\}}|i|nWqtj o qqXqW|S(sDReturn a set containing all existing directory entries from sys.path(RR RRtisdirRRt TypeError(tdRR((s/usr/lib64/python2.6/site.pyt_init_pathinfozs   c Bs9|djoed}nd}eii||}ye|d}Wnej odSX|iizx|D]}|i doq|n|i do|dUq|n|i }e ||\}}||jo4eii |o!e ii||i|q|q|WWdQX|o d}n|S( sProcess a .pth file within the site-packages directory: For each line in the file, either combine it with sitedir to a path and add that to known_paths, or execute it if it starts with 'import '. iitrUNt#simport simport (simport simport (tNoneR"RRRtopentIOErrort__exit__t __enter__t startswithtrstripRtexistsR RR( tsitedirtnameRtresettfullnametftlineRR((s/usr/lib64/python2.6/site.pyt addpackages2     c Cs|djot}d}nd}t|\}}||jotii|nyti|}Wntij odSXti d}g}|D]!}|i |o ||qq~}x$t |D]}t |||qW|o d}n|S(sTAdd 'sitedir' argument to sys.path if missing and handle .pth files in 'sitedir'iiNtpth( R%R"RR RRRtlistdirterrortextseptendswithtsortedR3(R-RR/t sitedircasetnamestdotptht_[1]R.((s/usr/lib64/python2.6/site.pyt addsitedirs&     5  cCstiiotSttdo2ttdo"titijodSnttdo2ttdo"ti ti jodSnt S(s,Check if user site directory is safe for inclusion The function tests for the command line flag (including environment var), process uid/gid equal to effective uid/gid. None: Disabled for security reasons False: Disabled by user (command line option) True: Safe and enabled tgetuidtgeteuidtgetgidtgetegidN( R tflagst no_user_sitetFalseR RR@R?R%RBRAtTrue(((s/usr/lib64/python2.6/site.pytcheck_enableusersites     cCstiidd}d}tidjohtiidpd}|o|n ||datiitdti dti dd a nD|o|n |dd atiitd d ti d d a t o$tii t ot t |n|S(s'Add a per user site-package to sys.path Each user has its own python directory with site-packages in the home directory. USER_BASE is the root directory for all Python versions USER_SITE is the user specific site-packages directory USER_SITE/.. can be used for data. tPYTHONUSERBASEcWstiitii|S(N(RRt expanduserR(targs((s/usr/lib64/python2.6/site.pytjoinuserstnttAPPDATAt~tPythoniis site-packagess.localtlibtpythoniN(RtenvirontgetR%R.t USER_BASERRR Rt USER_SITEtENABLE_USER_SITERR>(Rtenv_baseRKtbase((s/usr/lib64/python2.6/site.pytaddusersitepackagess     c Csg}g}xtD]}| p ||joqn|i|tidjo#|itii|ddntidjo}|itii|ddtid d|itii|d dtid d|itii|d d nL|i||itii|dd|itii|d dtid joMd |jo<|itii tiid ddtid dqqqWx2|D]*}tii |ot ||qqW|S(s8Add site-packages (and possibly site-python) to sys.pathtos2emxtriscostLibs site-packagest/tlib64RQiRPs site-pythontdarwinsPython.frameworkRNtLibraryRO(sos2emxsriscos( tPREFIXESRR tplatformRRRtsepRRIRR>(RtsitedirstseentprefixR-((s/usr/lib64/python2.6/site.pytaddsitepackagess> #  #   #cCsqtiitidd}tidid}|do|i|n ||deZdZdZdddZdZdZdZRS(sninteractive prompt objects for printing the license text, a list of contributors and the copyright notice.icCs1||_||_||_||_d|_dS(N(t_Printer__namet_Printer__datat_Printer__filest_Printer__dirsR%t_Printer__lines(RpR.tdatatfilestdirs((s/usr/lib64/python2.6/site.pyRq]s     cCs|iodSd}x|iD]{}xf|iD][}tii||}y*t|d}|i}|i PWq/t j oq/Xq/W|oPqqW|p |i }n|i d|_t |i|_dS(NR#s (RR%RRRRRtfiletreadRuR'RRjtlent_Printer__linecnt(RpRRtfilenametfp((s/usr/lib64/python2.6/site.pyt__setupds*        cCsJ|it|i|ijodi|iSd|ifdSdS(Ns s!Type %s() to see the full %s texti(t_Printer__setupRRtMAXLINESRR(Rp((s/usr/lib64/python2.6/site.pyRsys cCs|id}d}xy1x*t|||iD]}|i|GHq3WWntj oPqX||i7}d}x5|djo't|}|djo d}qwqwW|djoPqqdS(Ns0Hit Return for more, or q (and Return) to quit: ittq(RR(RtrangeRRt IndexErrorR%t raw_input(Rptprompttlinenotitkey((s/usr/lib64/python2.6/site.pyRxs&      (((RyRzt__doc__RRqRRsRx(((s/usr/lib64/python2.6/site.pyRWs   cCstdtit_tid djotddt_ntddt_tiiti }tddti d d gtii |ti |ti gt_d S( s,Set 'copyright' and 'credits' in __builtin__t copyrightitjavatcreditss?Jython is maintained by the Jython developers (www.jython.org).s Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands for supporting Python development. See www.python.org for more information.tlicenses+See http://www.python.org/%.3s/license.htmls LICENSE.txttLICENSEN(RR RR~RbRRRRR RRtpardirtcurdirR(there((s/usr/lib64/python2.6/site.pyt setcopyrights   t_HelpercBs eZdZdZdZRS(sYDefine the built-in 'help'. This is a wrapper around pydoc.help (with a twist). cCsdS(NsHType help() for interactive help, or help(object) for help about object.((Rp((s/usr/lib64/python2.6/site.pyRsscOsddk}|i||S(Ni(tpydocthelp(RpRJtkwdsR((s/usr/lib64/python2.6/site.pyRxs (RyRzRRsRx(((s/usr/lib64/python2.6/site.pyRs cCstt_dS(N(RR~R(((s/usr/lib64/python2.6/site.pyt sethelperscCstidjoddk}ddk}|id}|idoWy|i|Wqtj o3ddk}|i |i |2 - unknown error is sys.path = [s %r,t]sUSER_BASE: %r (%s)R,s doesn't existsUSER_SITE: %r (%s)sENABLE_USER_SITE: %ris --user-bases --user-siteiiii (R targvRRTRRRURVR|RtpathsepRRER%ttextwraptdedent(RRJRtbufferR((s/usr/lib64/python2.6/site.pyt_scripts>  ##      "t__main__(#RR RR~Rft exec_prefixRaR%RVRURTRRRRR"R3R>RGRYRgRmRR}RRRRRRRRRRRy(((s/usr/lib64/python2.6/site.pyt;s@        ' *  =        1