
Rc           @   s  d  d k  Z  d  d k l Z d  d k Z d  d k Z d  d k l Z d  d k Z d  d k	 Z	 d  d k
 Z
 d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d d k l Z d d k l Z l Z l Z l Z l Z l Z l Z l Z l  Z  l! Z! l" Z# l$ Z$ l% Z% l& Z& e
 i' e(  Z) d e* f d     YZ+ d	 Z, e i- e,  Z. d
 Z/ d Z0 d e0 d e/ d e, d e0 d e/ d Z1 d e1 d e1 d Z2 e/ d e, e/ d Z3 d e3 d Z4 d e/ d e4 d e2 d Z5 e i- e5  Z6 d e0 d e/ d Z7 e i- e7  Z8 d   Z9 d   Z: d   Z; d    Z< d d d!  Z> e i? d"    Z@ e i? d#    ZA e i? d$ d%   ZB d& e* f d'     YZC d(   ZD d) e* f d*     YZE d+   ZF d, e* f d-     YZG e i- d. e iH  ZI d/   ZJ d d0  ZK d1   ZL d2   ZM d3   ZN d4   ZO d5   ZP e i- d6 e iQ  ZR e i- d7  ZS d d8  ZT d9   ZU d:   ZV d;   ZW h d< d= 6d d> 6d d? 6d d@ 6ZX dA   ZY dB e* f dC     YZZ dD e* f dE     YZ[ du Z\ d e] dM  Z^ dN   Z_ dv Z` dU e* f dV     YZa e i- dW  Zb e i- dX  Zc e i- dY  Zd dZ   Z d[   Ze d\ e if f d]     YZf d^ e# f d_     YZ" d` e" e! f da     YZg e ih db  Zi ei dw j o6 dd e ij f de     YZj df e ik f dg     YZk n dh e il f di     YZl dj e im f dk     YZm dl e in f dm     YZn dn   Zo do e* f dp     YZp dq ep f dr     YZq ds ep f dt     YZr d S(x   iN(   t   deque(   t   iglobi   (   t   DistlibException(   t   string_typest	   text_typet   shutilt	   raw_inputt   cache_from_sourcet   urlopent   httplibt	   xmlrpclibt	   splittypet   HTTPHandlert   HTTPSHandlert   URLErrort   match_hostnamet   CertificateErrort	   Containerc           B   s   e  Z d  Z d   Z RS(   sJ   
    A generic container for when multiple values need to be returned
    c         K   s   |  i  i |  d  S(   N(   t   __dict__t   update(   t   selft   kwargs(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   __init__%   s    (   t   __name__t
   __module__t   __doc__R   (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR   !   s   s   \s*,\s*s
   (\w|[.-])+s   ([<>=!]=)|[<>]t   (s   )?\s*(s   )(s   )\s*(s   ))*s   \(\s*(?P<c1>s   )\s*\)|(?P<c2>s   \s*)s   )*s   \[\s*(?P<ex>s   )?\s*\]s   (?P<dn>s	   \s*)?(\s*s   )?$s   (?P<op>s   )\s*(?P<vn>t   )c         C   sU  d   } d  } t i |   } | o,| i   } | d } | d p | d } | p d  } d } | d } n | d d j o d | } n t i |  }	 g  }
 |	 D] } |
 | |  q ~
 } d	 | d
 i g  } | D] } | d | q ~  f } | d p
 d  } n t i | d  } t	 d | d | d | d | d |   } n | S(   Nc         S   s   |  i    } | d | d f S(   Nt   opt   vn(   t	   groupdict(   t   mt   d(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   get_constraintQ   s    t   dnt   c1t   c2t    i    s   <>!=s   ==s   %s (%s)s   , s   %s %st   ext   namet   constraintst   extrast   requirementt   source(
   t   Nonet   REQUIREMENT_REt   matchR   t   RELOP_IDENT_REt   finditert   joint   COMMA_REt   splitR   (   t   sR!   t   resultR   R    R'   t   const   constrt   rst   iteratort   _[1]t   _[2]t   conR)   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   parse_requirementO   s,    	
'8
c         C   s   d   } h  } x | D] \ } } } t  i i |  |  } x t |  D] } t  i i | |  }	 x t |	  D]x }
 | |  |
  } | d j o | i | d  qo | | |
  } | i t  i i d  i d  } | d | | | <qo WqG Wq W| S(   s%   Find destinations for resources filesc         S   s^   |  i  t i i d  }  | i  t i i d  } | i |   p t  | t |   i d  S(   Nt   /(   t   replacet   ost   patht   sept
   startswitht   AssertionErrort   lent   lstrip(   t   baseRA   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   get_rel_pathq   s    R>   N(	   R@   RA   R1   R   R,   t   popR?   RB   t   rstrip(   t   resources_roott   rulesRH   t   destinationsRG   t   suffixt   destt   prefixt   abs_baset   abs_globt   abs_patht   resource_filet   rel_patht   rel_dest(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   get_resources_destsn   s"    	   !c          C   s<   t  t d  o
 t }  n t i t t d t i  j }  |  S(   Nt   real_prefixt   base_prefix(   t   hasattrt   syst   TrueRP   t   getattr(   R5   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   in_venv   s    
c          C   s>   t  i d j o! d t i j o t i d }  n
 t  i }  |  S(   Nt   darwint   __VENV_LAUNCHER__(   R[   t   platformR@   t   environt
   executable(   R5   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   get_executable   s
    	c         C   s   |  } x t  oz t |  } |  } | o | o
 | } n | oD | d i   } | | j o Pn | o d | | |  f } q q	 q	 W| S(   Ni    s	   %c: %s
%s(   R\   R   t   lower(   t   promptt   allowed_charst   error_promptt   defaultt   pR4   t   c(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   proceed   s     
 c          c   s*   t  i   }  z	 |  VWd  t i |   Xd  S(   N(   t   tempfilet   mkdtempR   t   rmtree(   t   td(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   tempdir   s    	c         c   s7   t  i   } z t  i |   d  VWd  t  i |  Xd  S(   N(   R@   t   getcwdt   chdir(   R    t   cwd(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyRs      s
    	i   c         c   s7   t  i   } z t  i |   d  VWd  t  i |  Xd  S(   N(   t   sockett   getdefaulttimeoutt   setdefaulttimeout(   t   secondst   cto(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   socket_timeout   s
    	t   cached_propertyc           B   s   e  Z d    Z d d  Z RS(   c         C   s   | |  _  d  S(   N(   t   func(   R   R|   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR      s    c         C   s>   | d  j o |  S|  i |  } t i | |  i i |  | S(   N(   R,   R|   t   objectt   __setattr__R   (   R   t   objt   typet   value(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   __get__   s
    N(   R   R   R   R,   R   (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR{      s   	c         C   s   t  i d j o |  S|  p |  S|  d d j o t d |    n |  d d j o t d |    n |  i d  } x% t  i | j o | i t  i  q} W| p t  i St  i i |   S(   s  Return 'pathname' as a name that will work on the native filesystem.

    The path is split on '/' and put back together again using the current
    directory separator.  Needed because filenames in the setup script are
    always supplied in Unix style, and have to be converted to the local
    convention before we can actually use them in the filesystem.  Raises
    ValueError on non-Unix-ish systems if 'pathname' either starts or
    ends with a slash.
    R>   i    s   path '%s' cannot be absoluteis   path '%s' cannot end with '/'(   R@   RB   t
   ValueErrorR3   t   curdirt   removeRA   R1   (   t   pathnamet   paths(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   convert_path   s    
 t   FileOperatorc           B   s   e  Z e d   Z d   Z d   Z d   Z d   Z d d  Z	 d   Z
 d   Z d   Z d	   Z d
   Z e e d d  Z d   Z d   Z d   Z d   Z RS(   c         C   s#   | |  _  t   |  _ |  i   d  S(   N(   t   dry_runt   sett   ensuredt   _init_record(   R   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR      s    	c         C   s%   t  |  _ t   |  _ t   |  _ d  S(   N(   t   Falset   recordR   t   files_writtent   dirs_created(   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR      s    	c         C   s"   |  i  o |  i i |  n d  S(   N(   R   R   t   add(   R   RA   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   record_as_written   s    
c         C   sm   t  i i |  p  t d t  i i |    n t  i i |  p t St  i |  i t  i |  i j S(   s  Tell if the target is newer than the source.

        Returns true if 'source' exists and is more recently modified than
        'target', or if 'source' exists and 'target' doesn't.

        Returns false if both exist and 'target' is the same age or younger
        than 'source'. Raise PackagingFileError if 'source' does not exist.

        Note that this test is not very accurate: files created in the same
        second will have the same "age".
        s   file '%r' does not exist(   R@   RA   t   existsR   t   abspathR\   t   statt   st_mtime(   R   R+   t   target(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   newer   s    c         C   s   t  i i |  p t  |  i t  i i |   t i d | |  |  i p t	 i
 | |  n |  i o |  i i |  n d S(   s8   Copy a file respecting dry-run and force flags.
        s   Copying %s to %sN(   R@   RA   t   isdirRD   t
   ensure_dirt   dirnamet   loggert   infoR   R   t   copyfileR   R   R   (   R   t   infilet   outfile(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt	   copy_file  s    

c         C   s   t  i i |  p t  |  i t  i i |   t i d | |  |  i p^ | d  j o t
 | d  } n t i
 | d d | } z t i | |  Wd  | i   Xn |  i o |  i i |  n d  S(   Ns   Copying stream %s to %st   wbt   wt   encoding(   R@   RA   R   RD   R   R   R   R   R   R,   t   opent   codecsR   t   copyfileobjt   closeR   R   R   (   R   t   instreamR   R   t	   outstream(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   copy_stream  s    

c         C   s   |  i  t i i |   |  i p= t | d  i i   } z | ~ } | i |  Wd  QXn |  i	 o |  i
 i |  n d  S(   NR   (   R   R@   RA   R   R   R   t   __exit__t	   __enter__t   writeR   R   R   (   R   RA   t   dataR:   t   f(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   write_binary_file.  s    
&
c         C   s   |  i  t i i |   |  i pF t | d  i i   } z# | ~ } | i | i	 |   Wd  QXn |  i
 o |  i i |  n d  S(   NR   (   R   R@   RA   R   R   R   R   R   R   t   encodeR   R   R   (   R   RA   R   R   R:   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   write_text_file6  s    
& 
c         C   s   t  i d j op xm | D]a } |  i o t i d |  q t  i |  i | B| @} t i d | |  t  i | |  q Wn d  S(   Nt   posixs   changing mode of %ss   changing mode of %s to %o(   R@   R'   R   R   R   R   t   st_modet   chmod(   R   t   bitst   maskt   filesR   t   mode(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   set_mode>  s     
c         C   s   |  i  d  d |  S(   im  i  (   R   (   R4   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   <lambda>J  s    c         C   s   t  i i |  } | |  i j o t  i i |  o |  i i |  t  i i |  \ } } |  i |  t i	 d |  |  i
 p t  i |  n |  i o |  i i |  q n d  S(   Ns   Creating %s(   R@   RA   R   R   R   R   R3   R   R   R   R   t   mkdirR   R   (   R   RA   R    R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR   L  s    $

c         C   s   t  | |  } t i d | |  |  i pp | p |  i | |  o< | p
 d  } q | i |  p t  | t |  } n t	 i
 | | | t  n |  i o |  i i |  n | S(   Ns   Byte-compiling %s to %s(   R   R   R   R   R   R,   RC   RD   RE   t
   py_compilet   compileR\   R   R   R   (   R   RA   t   optimizet   forceRP   t   dpatht   diagpath(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   byte_compileX  s    


c         C   s&  t  i i |  ot  i i |  ou t  i i |  oa t i d |  |  i p t i	 |  n |  i
 o( | |  i j o |  i i |  q qq"t  i i |  o
 d } n d } t i d | |  |  i p t  i |  n |  i
 o( | |  i j o |  i i |  qq"n d  S(   Ns   Removing directory tree at %st   linkt   files   Removing %s %s(   R@   RA   R   R   t   islinkR   t   debugR   R   Ro   R   R   R   R   (   R   RA   R4   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   ensure_removedg  s"    '




c         C   sp   t  } xc | p[ t i i |  o t i | t i  } Pn t i i |  } | | j o Pn | } q	 W| S(   N(   R   R@   RA   R   t   accesst   W_OKR   (   R   RA   R5   t   parent(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   is_writable|  s     c         C   s1   |  i  p t  |  i |  i f } |  i   | S(   sV   
        Commit recorded changes, turn off recording, return
        changes.
        (   R   RD   R   R   R   (   R   R5   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   commit  s    
c         C   s   |  i  p x; t |  i  D]* } t i i |  o t i |  q q Wt |  i d t	 } xv | D]j } t i
 |  } | oA | d g j p t  t i i | | d  } t i |  n t i |  qd Wn |  i   d  S(   Nt   reverset   __pycache__i    (   R   t   listR   R@   RA   R   R   t   sortedR   R\   t   listdirRD   R1   t   rmdirR   (   R   R   t   dirsR    t   flistt   sd(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   rollback  s    
  N(   R   R   R   R   R   R   R   R   R,   R   R   R   R   t   set_executable_modeR   R   R   R   R   R   (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR      s    												
c         C   s   |  t  i j o t  i |  } n t |   } | d  j o
 | } nH | i d  } t | | i d   } x | D] } t | |  } qr W| S(   Nt   .i    (   R[   t   modulest
   __import__R,   R3   R]   RI   (   t   module_namet   dotted_patht   modR5   t   partsRj   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   resolve  s    
 t   ExportEntryc           B   s;   e  Z d    Z e d    Z d   Z d   Z e i Z RS(   c         C   s(   | |  _  | |  _ | |  _ | |  _ d  S(   N(   R'   RP   RN   t   flags(   R   R'   RP   RN   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    			c         C   s   t  |  i |  i  S(   N(   R   RP   RN   (   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    c         C   s    d |  i  |  i |  i |  i f S(   Ns   <ExportEntry %s = %s:%s %s>(   R'   RP   RN   R   (   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   __repr__  s    c         C   si   t  | t  p
 t } nL |  i | i j o6 |  i | i j o# |  i | i j o |  i | i j } | S(   N(   t
   isinstanceR   R   R'   RP   RN   R   (   R   t   otherR5   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   __eq__  s    
(	   R   R   R   R{   R   R   R   R}   t   __hash__(    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s
   			
s   (?P<name>(\w|[-.])+)
                      \s*=\s*(?P<callable>(\w+)([:\.]\w+)*)
                      \s*(\[\s*(?P<flags>\w+(=\w+)?(,\s*\w+(=\w+)?)*)\s*\])?
                      c         C   si  t  i |   } | p8 d  } d |  j p d |  j o t d |    qen| i   } | d } | d } | i d  } | d j o | d  } } n7 | d j o t d |    n | i d  \ } } | d	 }	 |	 d  j o8 d |  j p d |  j o t d |    n g  }	 n1 g  }
 |	 i d
  D] } |
 | i   q4~
 }	 t | | | |	  } | S(   Nt   [t   ]s   Invalid specification %rR'   t   callablet   :i    i   R   t   ,(	   t   ENTRY_REt   searchR,   R   R   t   countR3   t   stripR   (   t   specificationR   R5   R    R'   RA   t   colonsRP   RN   R   R:   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   get_export_entry  s2    



0c         C   s   |  d j o
 d }  n t i d j o& d t i j o t i i d  } n t i i d  } t i i | |   } t i i |  p t i	 |  n | S(   s  
    Return the default base location for distlib caches. If the directory does
    not exist, it is created. Use the suffix provided for the base directory,
    and default to '.distlib' if it isn't provided.

    On Windows, if LOCALAPPDATA is defined in the environment, then it is
    assumed to be a directory, and will be the parent directory of the result.
    On POSIX, and on Windows if LOCALAPPDATA is not defined, the user's home
    directory - using os.expanduser('~') - will be the parent directory of
    the result.

    The result is just the directory '.distlib' in the parent directory as
    determined above, or with the name specified with ``suffix``.
    s   .distlibt   ntt   LOCALAPPDATAs   $localappdatat   ~N(
   R,   R@   R'   Rb   RA   t
   expandvarst
   expanduserR1   R   t   makedirs(   RN   R5   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   get_cache_base  s    
 c         C   sb   t  i i t  i i |    \ } } | o | i d d  } n | i t  i d  } | | d S(   s  
    Convert an absolute path to a directory name for use in a cache.

    The algorithm used is:

    #. On Windows, any ``':'`` in the drive is replaced with ``'---'``.
    #. Any occurrence of ``os.sep`` is replaced with ``'--'``.
    #. ``'.cache'`` is appended.
    R   s   ---s   --s   .cache(   R@   RA   t
   splitdriveR   R?   RB   (   RA   R    Rj   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   path_to_cache_dir  s
    
$c         C   s   |  i  d  p	 |  d S|  S(   NR>   (   t   endswith(   R4   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   ensure_slash#  s    	c         C   so   d  } } d |  j oK |  i d d  \ } }  d | j o
 | } qb | i d d  \ } } n | | |  f S(   Nt   @i   R   (   R,   R3   (   t   netloct   usernamet   passwordRP   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   parse_credentials)  s    

c          C   s    t  i d  }  t  i |   |  S(   Ni   (   R@   t   umask(   R5   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   get_process_umask4  s    c         C   s\   t  } d  } x5 t |   D]' \ } } t | t  p t } Pq q W| d  j	 p t  | S(   N(   R\   R,   t	   enumerateR   R   R   RD   (   t   seqR5   t   iR4   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   is_string_sequence9  s     	s8   ([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-([0-9][a-z0-9_.+-]*)s   -py(\d\.?\d?)$c         C   s  d } d } t i |   } | o# | i d  } |  | i    }  n | or t |   t |  d j oU t i t i |  d |   } | o+ | i	   } |  |  |  | d | f } q n | d j o? t
 i |   } | o% | i d  | i d  | f } q
n | S(   sw   
    Extract name, version, python version from a filename (no extension)

    Return name, version, pyver or None
    i   s   \bi   N(   R,   t   PYTHON_VERSIONR   t   groupt   startRE   t   reR.   t   escapet   endt   PROJECT_NAME_AND_VERSION(   t   filenamet   project_nameR5   t   pyverR   t   n(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   split_filenameH  s     $#)c         C   s   h  } yg t  |   } | i   } | i d  d j o t i d  n% t i d  |  } t i |  } Wn( t	 j
 o } t i
 d |  |  n X| S(   Ns   Content-Types   application/jsons$   Unexpected response for JSON requests   utf-8s&   Failed to get external data for %s: %s(   R   R   t   getR   R   R   t	   getreadert   jsont   loadt	   Exceptiont	   exception(   t   urlR5   t   respt   headerst   readert   e(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   _get_external_datac  s    c         C   s*   d |  d i    |  f } t |  } | S(   Ns9   https://www.red-dove.com/pypi/projects/%s/%s/project.jsoni    (   t   upperR#  (   R'   R  R5   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   get_project_dataw  s    c         C   sk   |  i  |  i } } d | d i   | | f } t |  } d | j o |  i o t |  i |  n | S(   Ns<   https://www.red-dove.com/pypi/projects/%s/%s/package-%s.jsoni    t   metadata(   R'   t   versionR$  R#  R&  t   update_metadata(   t   distR'   R'  R  R5   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   get_package_data}  s    t
   Classifiert   classifierst   use_2to3t   use_2to3_fixerst
   test_suitec         C   s   |  p t   d | j p t   x] | d i   D]K \ } } | i d d  } t i | |  } | d  j	 o | |  | <q3 q3 W|  i   d | j o | d |  _ n d  S(   NR&  t   -t   _t   requirements(   RD   t   itemsR?   t   RENAMESR  R,   t   set_metadata_versiont   dependencies(   R&  t   pkginfot   kt   v(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR(    s     
t
   EventMixinc           B   s>   e  Z d  Z d   Z e d  Z d   Z d   Z d   Z RS(   s1   
    A very simple publish/subscribe system.
    c         C   s   h  |  _  d  S(   N(   t   _subscribers(   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    c         C   s`   |  i  } | | j o t | g  | | <n0 | | } | o | i |  n | i |  d S(   s`  
        Add a subscriber for an event.

        :param event: The name of an event.
        :param subscriber: The subscriber to be added (and called when the
                           event is published).
        :param append: Whether to append or prepend the subscriber to an
                       existing subscriber list for the event.
        N(   R;  R    t   appendt
   appendleft(   R   t   eventt
   subscriberR<  t   subst   sq(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    
	
c         C   s?   |  i  } | | j o t d |   n | | i |  d S(   s   
        Remove a subscriber for an event.

        :param event: The name of an event.
        :param subscriber: The subscriber to be removed.
        s   No subscribers: %rN(   R;  R   R   (   R   R>  R?  R@  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    	c         C   s   t  |  i i | d   S(   s   
        Return an iterator for the subscribers for an event.
        :param event: The event to return subscribers for.
        (    (   t   iterR;  R  (   R   R>  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   get_subscribers  s    c         O   s   g  } xc |  i  |  D]R } y | | | |  } Wn& t j
 o t i d  d } n X| i |  q Wt i d | | | |  | S(   s^  
        Publish a event and return a list of values returned by its
        subscribers.

        :param event: The event to publish.
        :param args: The positional arguments to pass to the event's
                     subscribers.
        :param kwargs: The keyword arguments to pass to the event's
                       subscribers.
        s"   Exception during event publications/   publish %s: args = %s, kwargs = %s, result = %sN(   RC  R  R   R  R,   R<  R   (   R   R>  t   argsR   R5   R?  R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   publish  s     	(	   R   R   R   R   R\   R   R   RC  RE  (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR:    s   			t	   Sequencerc           B   se   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z e	 d    Z
 e	 d    Z RS(	   c         C   s"   h  |  _  h  |  _ t   |  _ d  S(   N(   t   _predst   _succsR   t   _nodes(   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    		c         C   s   |  i  i |  d  S(   N(   RI  R   (   R   t   node(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   add_node  s    c         C   s   |  i  i |  d  S(   N(   RI  R   (   R   RJ  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   remove_node  s    c         C   sV   | | j p t   |  i i | t    i |  |  i i | t    i |  d  S(   N(   RD   RG  t
   setdefaultR   R   RH  (   R   t   predt   succ(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    c         C   s   | | j p t   y |  i | } |  i | } Wn# t j
 o t d |   n Xy | i |  | i |  Wn) t j
 o t d | | f   n Xd  S(   Ns   %r not a successor of anythings   %r not a successor of %r(   RD   RG  RH  t   KeyErrorR   R   (   R   RN  RO  t   predst   succs(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    c         C   s-   | |  i  j p | |  i j p | |  i j S(   N(   RG  RH  RI  (   R   t   step(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   is_step  s     c         C   s   |  i  |  p t d |   n g  } g  } t   } | i |  x | o | i d  } | | j o/ | | j o | i |  | i |  q qI | i |  | i |  |  i i | d  } | i	 |  qI Wt
 |  S(   Ns   Unknown: %ri    (    (   RT  R   R   R<  RI   R   R   RG  R  t   extendt   reversed(   R   t   finalR5   t   todot   seenRS  RQ  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt	   get_steps	  s$    	 c            s{   d g   g   h   h   g   |  i           f d    x)  D]! } |  j o  |  qR qR W S(   Ni    c            sL   d   |  < d  |  < d c d 7< i  |   y  |  } Wn t j
 o g  } n Xxp | D]h } |  j o)  |  t  |   |   |  <qj |  j o t  |    |   |  <qj qj W |    |  j o] g  } x7 t o/  i   } | i  |  | |  j o Pq q Wt |  }  i  |  n d  S(   Ni    i   (   R<  R  t   minR\   RI   t   tuple(   RJ  t
   successorst	   successort   connected_componentt	   component(   t   indext   lowlinkst   grapht   index_countert   strongconnectR5   t   stack(    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyRe  -  s2     
#  
(   RH  (   R   RJ  (    (   Rd  Rb  Ra  Rc  Re  R5   Rf  sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   strong_connections"  s    		!" c         C   s   d g } xF |  i  D]; } |  i  | } x% | D] } | i d | | f  q- Wq Wx" |  i D] } | i d |  q\ W| i d  d i |  S(   Ns   digraph G {s     %s -> %s;s     %s;t   }s   
(   RG  R<  RI  R1   (   R   R5   RO  RQ  RN  RJ  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   dotU  s    	
  
 (   R   R   R   RK  RL  R   R   RT  RZ  t   propertyRg  Ri  (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyRF    s   							3s   .tar.gzs   .tar.bz2s   .tars   .zips   .tgzs   .tbzs   .whlc   
   
      s      f d   } t  i i      t     d  } | d  j o |  i d  o
 d } q |  i d  o d } d } q |  i d  o d } d } q |  i d  o d } d } q t d |    n z| d j oH t i |  d  } | o+ | i	   } x | D] } | |  qWqmnE t
 i |  |  } | o+ | i   } x | D] } | |  qUWn | d j o[ t i d d j  oG xD | i   D]2 }	 t |	 i t  p |	 i i d  |	 _ qqWn | i    Wd  | o | i   n Xd  S(   Nc            s   t  |  t  p |  i d  }  n t i i t i i  |    } | i   p |   t i j o t	 d |   n d  S(   Ns   utf-8s   path outside destination: %r(
   R   R   t   decodeR@   RA   R   R1   RC   RB   R   (   RA   Rj   (   t   plent   dest_dir(    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt
   check_pathj  s
    !%s   .zips   .whlt   zips   .tar.gzs   .tgzt   tgzs   r:gzs   .tar.bz2s   .tbzt   tbzs   r:bz2s   .tart   tart   rs   Unknown format for %ri    i   s   utf-8(   s   .zips   .whl(   s   .tar.gzs   .tgz(   s   .tar.bz2s   .tbz(   R@   RA   R   RE   R,   R   R   t   zipfilet   ZipFilet   namelistt   tarfileR   t   getnamesR[   t   version_infot
   getmembersR   R'   R   Rk  t
   extractallR   (
   t   archive_filenameRm  t   formatt   checkRn  t   archiveR   t   namesR'   t   tarinfo(    (   Rm  Rl  sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt	   unarchiveh  sN    



  ! !c      
   C   s   t  i   } t |   } t i | d  i i   } z | ~ } xu t i |   D]d \ } } } xR | D]J } t i	 i
 | |  }	 | | }
 t i	 i
 |
 |  } | i |	 |  qg WqQ WWd QX| S(   s*   zip a directory tree into a BytesIO objectR   N(   t   iot   BytesIORE   Rt  Ru  R   R   R@   t   walkRA   R1   R   (   t	   directoryR5   t   dlenR:   t   zft   rootR   R   R'   t   fullt   relRO   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   zip_dir  s    )  
R%   t   Kt   Mt   Gt   Tt   Pt   Progressc           B   s   e  Z d  Z d d d  Z d   Z d   Z d   Z d   Z e d    Z	 e d	    Z
 d
   Z e d    Z e d    Z RS(   t   UNKNOWNi    id   c         C   sY   | d  j p | | j p t  | |  _ |  _ | |  _ d  |  _ d |  _ t |  _ d  S(   Ni    (	   R,   RD   R[  t   curt   maxt   startedt   elapsedR   t   done(   R   t   minvalt   maxval(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    !			c         C   s   |  i  | j p t  |  i d  j p | |  i j p t  | |  _ t i   } |  i d  j o | |  _ n | |  i |  _ d  S(   N(   R[  RD   R  R,   R  t   timeR  R  (   R   t   curvalt   now(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    '	c         C   s,   | d j p t   |  i |  i |  d  S(   Ni    (   RD   R   R  (   R   t   incr(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt	   increment  s    c         C   s   |  i  |  i  |  S(   N(   R   R[  (   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s    c         C   s1   |  i  d  j	 o |  i |  i   n t |  _ d  S(   N(   R  R,   R   R\   R  (   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   stop  s    c         C   s   |  i  d  j o |  i S|  i  S(   N(   R  R,   t   unknown(   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   maximum  s    c         C   s^   |  i  o
 d } nG |  i d  j o
 d } n- d |  i |  i |  i |  i } d | } | S(   Ns   100 %s    ?? %g      Y@s   %3d %%(   R  R  R,   R  R[  (   R   R5   R9  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt
   percentage  s    


"
c         C   sY   | d j o |  i  d  j p |  i |  i j o
 d } n t i d t i |   } | S(   Ni    s   ??:??:??s   %H:%M:%S(   R  R,   R  R[  R  t   strftimet   gmtime(   R   t   durationR5   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   format_duration  s    0
c         C   s   |  i  o d } |  i } n d } |  i d  j o
 d } ni |  i d j p |  i |  i j o
 d } n< t |  i |  i  } | |  i |  i :} | d |  i } d | |  i |  f S(   Nt   Dones   ETA ii    i   s   %s: %s(   R  R  R  R,   R  R[  t   floatR  (   R   RP   t   t(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   ETA  s    

#
c         C   sl   |  i  d j o
 d } n |  i |  i |  i  } x* t D]" } | d j  o Pn | d :} q8 Wd | | f S(   Ni    g        i  g     @@s   %d %sB/s(   R  R  R[  t   UNITS(   R   R5   t   unit(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   speed  s    
 (   R   R   R  R   R   R  R  R  Rj  R  R  R  R  R  (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s   	
					s   \{([^}]*)\}s   [^/\\,{]\*\*|\*\*[^/\\,}]s   ^[^{]*\}|\{[^}]*$c         C   s^   t  i |   o d } t | |    n t i |   o d } t | |    n t |   S(   sA   Extended globbing function that supports ** and {opt1,opt2,opt3}.s7   invalid glob %r: recursive glob "**" must be used alones2   invalid glob %r: mismatching set marker '{' or '}'(   t   _CHECK_RECURSIVE_GLOBR   R   t   _CHECK_MISMATCH_SETt   _iglob(   t	   path_globt   msg(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    c         c   s  t  i |  d  } t |  d j ox t |  d j p
 t |  | \ } } } x:| i d  D]4 } x+ t d i | | | f   D] } | Vq Wqa Wn d |  j o  x t |   D] } | Vq Wn |  i d d  \ } } | d j o
 d } n | d j o
 d } n | i d  } | i d	  } x] t i	 |  D]L \ } } }	 t i
 i |  } x( t t i
 i | |   D] }
 |
 Vq{Wq>Wd  S(
   Ni   i   R   R%   s   **R   t   *R>   s   \(   t	   RICH_GLOBR3   RE   RD   R  R1   t	   std_iglobRF   R@   R  RA   t   normpath(   R  t   rich_path_globRP   R   RN   t   itemRA   t   radicalt   dirR   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s4       

  t   HTTPSConnectionc           B   s   e  Z d Z e Z d    Z RS(   c      
   C   s  t  i |  i |  i f |  i  } t |  d t  o | |  _ |  i   n t	 t
 d  pZ |  i o t
 i } n
 t
 i } t
 i | |  i |  i d | d t
 i d |  i |  _ n t
 i t
 i  } | i t
 i O_ |  i o | i |  i |  i  n h  } |  i oG t
 i | _ | i d |  i  t t
 d t  o |  i | d <qTn | i | |  |  _ |  i od |  i oZ y t |  i i   |  i  Wqt j
 o* |  i i t  i  |  i i     qXn d  S(	   Nt   _tunnel_hostt
   SSLContextt	   cert_reqst   ssl_versiont   ca_certst   cafilet   HAS_SNIt   server_hostname(   Ru   t   create_connectiont   hostt   portt   timeoutR]   R   t   sockt   _tunnelRZ   t   sslR  t   CERT_REQUIREDt	   CERT_NONEt   wrap_sockett   key_filet	   cert_filet   PROTOCOL_SSLv23R  t   optionst   OP_NO_SSLv2t   load_cert_chaint   verify_modet   load_verify_locationst   check_domainR   t   getpeercertR   t   shutdownt	   SHUT_RDWRR   (   R   R  R  t   contextR   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   connectD  s<    !	
		

N(   R   R   R,   R  R\   R  R  (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR  ?  s   R   c           B   s&   e  Z e d   Z d   Z d   Z RS(   c         C   s#   t  i |   | |  _ | |  _ d  S(   N(   t   BaseHTTPSHandlerR   R  R  (   R   R  R  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR   i  s    	c         O   s9   t  | |   } |  i o |  i | _ |  i | _ n | S(   s  
        This is called to create a connection instance. Normally you'd
        pass a connection class to do_open, but it doesn't actually check for
        a class, and just expects a callable. As long as we behave just as a
        constructor would have, we should be OK. If it ever changes so that
        we *must* pass a class, we'll create an UnsafeHTTPSConnection class
        which just sets check_domain to False in the class definition, and
        choose which one to pass to do_open.
        (   R  R  R  (   R   RD  R   R5   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   _conn_makern  s
    

c         C   sc   y |  i  |  i |  SWnE t j
 o9 } d t | i  j o t d | i   q_   n Xd  S(   Ns   certificate verify faileds*   Unable to verify server certificate for %s(   t   do_openR  R   t   strt   reasonR   R  (   R   t   reqR"  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt
   https_open~  s    (   R   R   R\   R   R  R  (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR   h  s   	t   HTTPSOnlyHandlerc           B   s   e  Z d    Z RS(   c         C   s   t  d |   d  S(   NsA   Unexpected HTTP request on what should be a secure connection: %s(   R   (   R   R  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt	   http_open  s    (   R   R   R  (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s   i   i   t   HTTPc           B   s   e  Z d  d d  Z RS(   R%   c         K   s7   | d j o
 d  } n |  i |  i | | |   d  S(   Ni    (   R,   t   _setupt   _connection_class(   R   R  R  R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    
N(   R   R   R,   R   (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s   t   HTTPSc           B   s   e  Z d  d d  Z RS(   R%   c         K   s7   | d j o
 d  } n |  i |  i | | |   d  S(   Ni    (   R,   R  R  (   R   R  R  R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    
N(   R   R   R,   R   (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s   t	   Transportc           B   s   e  Z d  d  Z d   Z RS(   i    c         C   s    | |  _  t i i |  |  d  S(   N(   R  R
   R  R   (   R   R  t   use_datetime(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    	c         C   s   |  i  |  \ } } } t d j o t | d |  i } nR |  i p | |  i d j o% | |  _ | t i |  f |  _ n |  i d } | S(   Ni   i   R  i    i   (   i   i   (   t   get_host_infot	   _ver_infoR  R  t   _connectiont   _extra_headersR	   t   HTTPConnection(   R   R  t   ht   eht   x509R5   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   make_connection  s    	(   R   R   R   R  (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s   t   SafeTransportc           B   s   e  Z d  d  Z d   Z RS(   i    c         C   s    | |  _  t i i |  |  d  S(   N(   R  R
   R  R   (   R   R  R  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    	c         C   s   |  i  |  \ } } } | p
 h  } n |  i | d <t d j o t | d  |  } nX |  i p | |  i d j o+ | |  _ | t i | d  |  f |  _ n |  i d } | S(   NR  i   i   i    i   (   i   i   (	   R  R  R  R  R,   R  R  R	   R  (   R   R  R  R  R   R5   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s    
	(   R   R   R   R  (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s   t   ServerProxyc           B   s   e  Z d    Z RS(   c   	      K   s   | i  d d   |  _ } | d  j	 oh t |  \ } } | i d d  } | d j o
 t } n t } | | d | | d <} | |  _ n t i	 i
 |  | |  d  S(   NR  R  i    t   httpst	   transport(   RI   R,   R  R   R  R  R  R  R
   R  R   (	   R   t   uriR   R  t   schemeR1  R  t   tclsR  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    
(   R   R   R   (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s   c         K   s<   t  i d d j  o | d 7} n d | d <t |  | |  S(   Ni    i   t   bR%   t   newline(   R[   Ry  R   (   t   fnR   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt	   _csv_open  s    
t   CSVBasec           B   sG   e  Z h e d   d 6e d  d 6e d  d 6Z d   Z d   Z RS(   R   t	   delimitert   "t	   quotechars   
t   lineterminatorc         C   s   |  S(   N(    (   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    c         G   s   |  i  i   d  S(   N(   t   streamR   (   R   t   exc_info(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    (   R   R   R  t   defaultsR   R   (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s   	t	   CSVReaderc           B   s)   e  Z d    Z d   Z d   Z e Z RS(   c         K   s   d | j oD | d } t  i d d j o t i d  |  } n | |  _ n t | d  |  _ t i |  i |  i  |  _ d  S(   NR  i    i   s   utf-8Rs  (	   R[   Ry  R   R  R  R  t   csvR!  R  (   R   R  R   R  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    
c         C   s   |  S(   N(    (   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   __iter__  s    c         C   so   t  |  i  } t i d d j  oH xE t |  D]3 \ } } t | t  p | i d  | | <q0 q0 Wn | S(   Ni    i   s   utf-8(   t   nextR!  R[   Ry  R  R   R   Rk  (   R   R5   R
  R  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR  
  s     (   R   R   R   R
  R  t   __next__(    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s   			t	   CSVWriterc           B   s   e  Z d    Z d   Z RS(   c         K   s1   t  | d  |  _ t i |  i |  i  |  _ d  S(   NR   (   R  R  R	  t   writerR  (   R   R  R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR     s    c         C   sy   t  i d d j  oQ g  } x> | D]6 } t | t  o | i d  } n | i |  q! W| } n |  i i |  d  S(   Ni    i   s   utf-8(   R[   Ry  R   R   R   R<  R  t   writerow(   R   t   rowRs  R  (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s     
(   R   R   R   R  (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyR    s   	(   s   .tar.gzs   .tar.bz2s   .tars   .zips   .tgzs   .tbzs   .whl(   R%   R  R  R  R  R  (   i   i   (s   R   t   collectionsR    t
   contextlibR	  t   globR   R  R  R  t   loggingR@   R   R  R   Ru   R  R[   Rw  Rm   R  Rt  R%   R   t   compatR   R   R   R   R   R	   R
   R   R   R   R  R   R   R   t	   getLoggerR   R   R}   R   t   COMMAR   R2   t   IDENTt   RELOPt   BARE_CONSTRAINTSt   CONSTRAINTSt
   EXTRA_LISTt   EXTRASt   REQUIREMENTR-   t   RELOP_IDENTR/   R=   RW   R^   Rd   R,   Rl   t   contextmanagerRq   Rs   Rz   R{   R   R   R   R   t   VERBOSER   R   R   R   R   R  R  R  t   IR  R  R  R#  R%  R*  R4  R(  R:  RF  t   ARCHIVE_EXTENSIONSR\   R  R  R  R  R  R  R  R  R  R  Ry  R  R  R  R  R  R  R  R   R  R  (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/distlib/util.pyt   <module>   s   ^.			
		
									
					
	H~ 6	]		!))		