mò
­fIc           @   s%   d  Z  d k Z d k Z d „  Z d S(   s   Utilities to support packages.Nc         C   sÚ  t  |  t ƒ p |  Sn t i i | i d ƒ Œ  } t i i | i d ƒ ƒ } | t i d } d t i d } |  }  x\t i D]Q} t  | t ƒ p t i i | ƒ o q n t i i | | ƒ }	 t i i |	 | ƒ } |	 |  j o$ t i i | ƒ o |  i |	 ƒ n t i i | | ƒ }
 t i i |
 ƒ oœ y t |
 ƒ } Wn/ t j
 o# } t i i d |
 | f ƒ qÒXxI | D]A } | i d ƒ } | p | i d ƒ o qn |  i | ƒ qW| i ƒ  q q W|  S(	   s‹  Extend a package's path.

    Intended use is to place the following code in a package's __init__.py:

        from pkgutil import extend_path
        __path__ = extend_path(__path__, __name__)

    This will add to the package's __path__ all subdirectories of
    directories on sys.path named after the package.  This is useful
    if one wants to distribute different parts of a single logical
    package as multiple directories.

    It also looks for *.pkg files beginning where * matches the name
    argument.  This feature is similar to *.pth files (see site.py),
    except that it doesn't special-case lines starting with 'import'.
    A *.pkg file is trusted at face value: apart from checking for
    duplicates, all entries found in a *.pkg file are added to the
    path, regardless of whether they are exist the filesystem.  (This
    is a feature.)

    If the input path is not a list (as is the case for frozen
    packages) it is returned unchanged.  The input path is not
    modified; an extended copy is returned.  Items are only appended
    to the copy at the end.

    It is assumed that sys.path is a sequence.  Items of sys.path that
    are not (unicode or 8-bit) strings referring to existing
    directories are ignored.  Unicode items of sys.path that cause
    errors when used as filenames may cause this function to raise an
    exception (in line with os.path.isdir() behavior).
    t   .t   pkgt   __init__t   pys   Can't open %s: %s
s   
t   #N(   t
   isinstancet   patht   listt   ost   joint   namet   splitt   pnamet   extsept   snamet	   sname_pkgt   init_pyt   syst   dirt
   basestringt   isdirt   subdirt   initfilet   isfilet   appendt   pkgfilet   opent   ft   IOErrort   msgt   stderrt   writet   linet   rstript
   startswitht   close(   R   R
   R   R   R   R   R   R   R   R   R   R    R   (    (    t$   /mit/python/lib/python2.4/pkgutil.pyt   extend_path   s<     
 %  (   t   __doc__R   R   R%   (   R   R%   R   (    (    R$   t   ?   s   		