™N
ôùO5c       s'    d  Z    k Z  k Z  d „  Z  d „  Z ' d „  Z 9 d „  Z J d „  Z ` d „  Z h d „  Z	 o d „  Z
 v d	 „  Z † d
 „  Z ’ d „  Z Ÿ d „  Z ¬ d „  Z · d „  Z Á d „  Z Ë d „  Z Ô d „  Z î d „  Z 	d „  Z $e Z &d „  Z Fd „  Z d S(   s‰   Common pathname manipulations, Posix version. 
Instead of importing this module
directly, import os and refer to this module as os.path.
c    s      |  Sd S(   s6   Normalize case of pathname.  Has no effect under PosixN(   s   s(   s   ss3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   normcase s   c    s       |  d  d j Sd S(   s   Test whether a path is absolutei   s   /N(   s   s(   s   ss3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   isabs s   c    s˜   ' ( ) |  } * xx | d * rk } + | d  d j o , | } nE - | d j p | d d j o . | | } n 0 | d | } q W1 | Sd S(   s=   Join two or more pathname components, inserting '/' as neededi    i   s   /s    N(   s   as   paths   ps   b(   s   as   ps   paths   bs3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   join' s   	 	"c    s©   9 ; < k  } = | i |  d ƒ d } > |  |  |  | f \ } } ? | o | d t | ƒ j o2 @ x( @ | d d j o A | d  } ql Wn B | | f Sd S(   s|   Split a pathname.  Returns tuple "(head, tail)" where "tail" is 
everything after the final slash.  Either part may be emptys   /i   N(   s   strings   rfinds   ps   is   heads   tails   len(   s   ps   strings   is   heads   tails3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   split9 s   	! c    sâ   J L M d d f \ } } N x° |  d N r£ } O | d j o! P | | | d f \ } } nm Q | d j o4 R | o S | | | f \ } } n
 U | } n) V | o W | | } n Y | | } q' WZ | | f Sd S(   sŒ   Split the extension from a pathname.  Extension is everything from the
last dot to the end.  Returns "(root, ext)", either part may be emptys    i    s   /s   .N(   s   roots   exts   ps   c(   s   ps   roots   exts   cs3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   splitextJ s    	!

c    s   ` b c d |  f Sd S(   sF   Split a pathname into drive and path. On Posix, drive is always 
emptys    N(   s   p(   s   ps3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys
   splitdrive` s   c    s   h i j t  |  ƒ d Sd S(   s)   Returns the final component of a pathnamei   N(   s   splits   p(   s   ps3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   basenameh s   c    s   o p q t  |  ƒ d Sd S(   s-   Returns the directory component of a pathnamei    N(   s   splits   p(   s   ps3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   dirnameo s   c    sÂ   v w x |  o x d Sn y |  d } z xˆ |  d z r{ } { xo t t | ƒ ƒ d { rV } | | | d  | | d  j o0 } | |  } ~ | d j o ~ d Sn  Pn qV Wq5 W€ | Sd S(   sG   Given a list of pathnames, returns the longest common leading components    i    i   N(   s   ms   prefixs   items   ranges   lens   i(   s   ms   prefixs   items   is3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   commonprefixv s     	 	  c    sc   † ‡ ˆ y ‰ t  i |  ƒ } Wn& Š t  i t f j
 o ‹ d Sn XŒ t i | t i ƒ Sd S(   s&   Test whether a path is a symbolic linki    N(	   s   oss   lstats   paths   sts   errors   AttributeErrors   stats   S_ISLNKs   ST_MODE(   s   paths   sts3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   islink† s   c    sM   ’ “ ” y • t  i |  ƒ } Wn  – t  i j
 o — d Sn X˜ d Sd S(   sD   Test whether a path exists.  Returns false for broken symbolic linksi    i   N(   s   oss   stats   paths   sts   error(   s   paths   sts3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   exists’ s   c    s]   Ÿ   ¡ y ¢ t  i |  ƒ } Wn  £ t  i j
 o ¤ d Sn X¥ t i | t i ƒ Sd S(   s"   Test whether a path is a directoryi    N(   s   oss   stats   paths   sts   errors   S_ISDIRs   ST_MODE(   s   paths   sts3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   isdirŸ s   c    s]   ¬ ­ ® y ¯ t  i |  ƒ } Wn  ° t  i j
 o ± d Sn X² t i | t i ƒ Sd S(   s%   Test whether a path is a regular filei    N(   s   oss   stats   paths   sts   errors   S_ISREGs   ST_MODE(   s   paths   sts3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   isfile¬ s   c    s>   · ¸ ¹ t  i |  ƒ } º t  i | ƒ } » t | | ƒ Sd S(   s9   Test whether two pathnames reference the same actual fileN(   s   oss   stats   f1s   s1s   f2s   s2s   samestat(   s   f1s   f2s   s1s   s2s3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   samefile· s   c    s>   Á Â Ã t  i |  ƒ } Ä t  i | ƒ } Å t | | ƒ Sd S(   s:   Test whether two open file objects reference the same fileN(   s   oss   fstats   fp1s   s1s   fp2s   s2s   samestat(   s   fp1s   fp2s   s1s   s2s3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   sameopenfileÁ s   c    s@   Ë Ì Í |  t i | t i j o |  t i | t i j Sd S(   s5   Test whether two stat buffers reference the same fileN(   s   s1s   stats   ST_INOs   s2s   ST_DEV(   s   s1s   s2s3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   samestatË s   c    sÞ   Ô Õ Ö y1 × t  i |  ƒ } Ø t  i t |  d ƒ ƒ } Wn  Ù t  i j
 o Ú d Sn XÛ | t i } Ü | t i } Ý | | j o Þ d Sn ß | t i
 } à | t i
 } á | | j o â d Sn ã d Sd S(   s$   Test whether a path is a mount points   ..i    i   N(   s   oss   stats   paths   s1s   joins   s2s   errors   ST_DEVs   dev1s   dev2s   ST_INOs   ino1s   ino2(   s   paths   s1s   s2s   dev1s   dev2s   ino1s   ino2s3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   ismountÔ s   c    sÜ   î ò ó y ô t  i |  ƒ } Wn  õ t  i j
 o ö d Sn X÷ | | |  | ƒ ø d d f } ù xn | d ù ra } ú | | j oK û t	 |  | ƒ } ü t
 | ƒ o t | ƒ o ý t | | | ƒ n n qp Wd S(   s¿   walk(top,func,args) calls func(arg, d, files) for each directory "d" 
in the tree  rooted at "top" (including "top" itself).  "files" is a list
of all the files and subdirs in directory "d".
Ns   .s   ..i    (   s   oss   listdirs   tops   namess   errors   funcs   args
   exceptionss   names   joins   isdirs   islinks   walk(   s   tops   funcs   args   namess
   exceptionss   names3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   walkî s    	c    sN  	|  d  d j o |  Sn d t |  ƒ f \ } } x3 | | j  o |  | d j o | d } qF W| d j o6 t i i d ƒ o |  Sn t i d } nW k } y | i	 |  d | !ƒ } Wn t j
 o |  Sn X| d } | d d j o | d } n | |  | Sd S(   sK   Expand ~ and ~user constructions.  If user or $HOME is unknown, 
do nothingi   s   ~s   /s   HOMEi   N(   s   paths   lens   is   ns   oss   environs   has_keys   userhomes   pwds   getpwnams   pwents   KeyError(   s   paths   is   ns   userhomes   pwds   pwents3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys
   expanduser	s(    !	 c    sh  &()*d |  j o +|  Sn ,t o -k } .| i d ƒ a n /d } 0x 0d oõ 1t i |  | ƒ } 2| o 3Pn 4| i d ƒ \ } } 5| i	 d ƒ } 6| d  d j o | d d j o 7| d d !} n 8t i i | ƒ oE 9|  | } :|  |  t i | }  ;t |  ƒ } <|  | }  n
 >| } q] W?|  Sd S(   sU   Expand shell variables of form $var and ${var}.  Unknown variables
are left unchangeds   $s   \$(\w+|\{[^}]*\})i    i   s   {s   }N(   s   paths   _varprogs   res   compiles   is   searchs   ms   spans   js   groups   names   oss   environs   has_keys   tails   len(   s   paths   res   is   ms   js   names   tails3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys
   expandvars&s0   		 
&c    s§  FGHk  } Jd } Kx3 K|  d  d j o L| d } M|  d }  q WN| i |  d ƒ } Od } Pxð P| t | ƒ j  oÙ Q| | d j o R| | =n´ S| | d j o% | d j o | | d d d f j o& T| | d | d 5U| d } nR V| | d j o | d j o | | d d j o W| | =n Y| d } qu W[| o | o \| i d ƒ n ]| | i | d ƒ Sd S(   s0   Normalize path, eliminating double slashes, etc.s    i   s   /i    s   .s   ..N(	   s   strings   slashess   paths   splitfieldss   compss   is   lens   appends
   joinfields(   s   paths   strings   slashess   compss   is3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   normpathFs,   		 	 <6N(   s   __doc__s   oss   stats   normcases   isabss   joins   splits   splitexts
   splitdrives   basenames   dirnames   commonprefixs   islinks   existss   isdirs   isfiles   samefiles   sameopenfiles   samestats   ismounts   walks
   expandusers   Nones   _varprogs
   expandvarss   normpath(    s3   /var/tmp/python-root/usr/lib/python1.5/posixpath.pys   ? s0   			

		 