™N
ôùO5c       sÙ   d  Z  k Z k Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 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 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    sw   |  } xf | d r\ } | d  d j o
 | } n< | d j p | d d j o | | } n | d | } q W| 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‹   k  } | i |  d ƒ d } |  |  |  | f \ } } | o | d t | ƒ j o) x" | d d j o | d  } qW Wn | | 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µ   d d f \ } } x’ |  d rˆ } | d j o | | | d f \ } } nX | d j o+ | o | | | f \ } } n | } n  | o | | } n | | } q W| | 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   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   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   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•   |  o d Sn |  d } xp |  d rf } x] t t | ƒ ƒ d rG } | | d  | | d  j o$ | |  } | d j o d Sn Pn q> Wq# 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    sN   y t  i |  ƒ } Wn  t  i t f j
 o d Sn Xt 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    s8   y t  i |  ƒ } Wn t  i j
 o d Sn Xd 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    sH   y t  i |  ƒ } Wn t  i j
 o d Sn Xt 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    sH   y t  i |  ƒ } Wn t  i j
 o d Sn Xt 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    s7   |  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®   y+ 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 } x_ | d rU } | | j oB t	 |  | ƒ } t
 | ƒ o t | ƒ o t | | | ƒ n n qU 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    s  |  d  d j o |  Sn d t |  ƒ f \ } } x- | | j  o |  | d j o | d } q4 W| d j o- t i i d ƒ o |  Sn t i d } nE 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    s  d |  j o |  Sn t o k } | i d ƒ a n d } xÖ d oÎ t i |  | ƒ } | o Pn | i d ƒ \ } } | i	 d ƒ } | d  d j o | d d j o | d d !} n t i i | ƒ o9 |  | } |  |  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    sb  k  } d } x* |  d  d j o | d } |  d }  q W| i |  d ƒ } d } xÕ | t | ƒ j  oÁ | | d j o | | =n¢ | | d j o% | d j o | | d d d f j o  | | d | d 5| d } nI | | d j o | d j o | | d d j o | | =n | d } qT 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,      
 93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   															
	
						 