ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ SSc@sdZddlZddlZddlZddlmZddlmZmZm Z m Z ej e Z yejjZWnek rdZnXdefdYZddZd ZdS( s:Implements an importer that looks only in specific path (ignoring sys.path), and uses a per-path cache in addition to sys.modules. This is necessary because test modules in different directories frequently have the same names, which means that the first loaded would mask the rest when using the builtin importer. iN(tConfig(t find_modulet load_modulet acquire_lockt release_lockcCs:tjjtjj|tjjtjj|kS(N(tostpathtnormcasetrealpath(tsrctdst((s>/opt/alt/python27/lib/python2.7/site-packages/nose/importer.pyt _samefilestImportercBs>eZdZddZdZdZdZdZRS(sAn importer class that does only path-specific imports. That is, the given module is not searched for on sys.path, but only at the path or in the directory specified. cCs%|dkrt}n||_dS(N(tNoneRtconfig(tselfR((s>/opt/alt/python27/lib/python2.7/site-packages/nose/importer.pyt__init__s  cCstjjtjj|jtj}|jd}|ddkrV|jn|t| }tjj|}|j ||S(sImport a dotted-name package whose tail is at path. In other words, given foo.bar and path/to/foo/bar.py, import foo from path/to/foo then bar from path/to/foo/bar, returning bar. t.is __init__.py( RRtnormpathtabspathtsplittseptpoptlentjoint importFromDir(RRtfqnamet path_partst name_partstdir_path((s>/opt/alt/python27/lib/python2.7/site-packages/nose/importer.pytimportFromPath"s* c Cstjjtjj|}tjd|||dkrHtj|S|jj rgt ||jn|g}|j d}d}d }}}xe|D]]} |dkr| }nd|| f}zt tjd| ||t| |\}} } tjj|} | d k rtjd|| |j| | s^|jjrgt| dd rg| }qtj|=t||| | }nt||| | }Wd |r|jntX|rt|| |nt|dr|j}n|}qW|S( sImport a module *only* from path, ignoring sys.path and reloading if the version in sys.modules is not the one we want. sImport %s from %st__main__Rts%s.%ssfind module part %s (%s) in %sssys.modules has %s as %st__path__N(RRRRtlogtdebugtsystmodulesRtaddPathstadd_pathRR RRtgett sameModuletfirstPackageWinstgetattrRtcloseRtsetattrthasattrR!( RtdirRRtpartst part_fqnametmodtparenttfhtparttfilenametdesctold((s>/opt/alt/python27/lib/python2.7/site-packages/nose/importer.pyR1sL                cCs*tjj|r|Stjj|SdS(N(RRtisdirtdirname(RR6((s>/opt/alt/python27/lib/python2.7/site-packages/nose/importer.pyt_dirname_if_filejscCsg}t|drBxY|jD]}|j|j|qWn/t|drm|j|j|jntS|j|}x4|D],}tjd||t||rt SqWtS(NR!t__file__s&module already loaded? mod: %s new: %s( R.R!tappendR;R<tFalseR"R#R tTrue(RR2R6t mod_pathsRtnew_pathtmod_path((s>/opt/alt/python27/lib/python2.7/site-packages/nose/importer.pyR)ss  N( t__name__t __module__t__doc__R RRRR;R)(((s>/opt/alt/python27/lib/python2.7/site-packages/nose/importer.pyR s    9 cCs)tjd||sgSg}tjj|}|rstjjtjj|drs|jt||nB|t jkrtjd|t jj d||j |n|r%|j r%x^|j D]P}tjj||}tjj |rt jj d||j |qqWn|S(slEnsure that the path, or the root of the current package (if path is in a package), is in sys.path. s Add path %ss __init__.pysinsert %s into sys.pathi(R"R#RRR:texistsRtextendR'R$tinsertR=tsrcDirsR9(RRtaddedR3R:tdirpath((s>/opt/alt/python27/lib/python2.7/site-packages/nose/importer.pyR's&!cCs7tjd||tjkr3tjj|ndS(NsRemove path %s(R"R#R$Rtremove(R((s>/opt/alt/python27/lib/python2.7/site-packages/nose/importer.pyt remove_paths(REtloggingRR$t nose.configRtimpRRRRt getLoggerRCR"RtsamefileR tAttributeErrortobjectR R R'RM(((s>/opt/alt/python27/lib/python2.7/site-packages/nose/importer.pyts   "  p