;ň
ňü?c           @   si  d  Z  d Z d Z d Z d Z d Z d Z d k Z d k Z d k	 Z	 d k
 Z
 d k Z d k Z d k Z e i d j o e d	  n y d k Z d k Z Wn e j
 o e Z Z n Xd
 d d d g Z d Z d Z e 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 e e e  e# e$ e% e! e" e& e' e( f Z) e e e% e( f Z* d! Z+ d" Z, d# Z- d$ Z. d% Z/ d& Z0 d' Z1 d( Z2 d Z3 d) Z4 d* Z5 d+ Z6 d, Z7 d- Z8 d. Z9 d/ Z: d0 Z; d1 Z< d2   Z= d3   Z> e d4  Z? e+ d5 e, d6 e- d7 e. d8 e/ d9 e0 d: f e4 d; f e5 d< f e6 d= e1 d  e6 e1 Bd> f e7 d; f e8 d< f e9 d= e2 d  e9 e2 Bd> f e: d; f e; d< f e< d= e3 d? e< e3 Bd@ f f
 Z@ dA   ZA e iB dB j o dC   ZC n e iD iC ZC d eE f dD     YZF dE eF f dF     YZG dG eF f dH     YZH dI eF f dJ     YZI dK eF f dL     YZJ dM f  dN     YZK dO f  dP     YZL dQ eM f dR     YZN d eM f dS     YZO d
 eM f dT     YZP dU f  dV     YZQ dW f  dX     YZR dY eR f dZ     YZS d[ eR f d\     YZT d] eU f d^     YZV d_ ZW d. ZX d` f  da     YZY db   ZZ eP i[ Z[ d S(c   s,   Read from and write to tar format archives.
s   $Revision: 1.8.12.2 $s   0.6.4s!   Lars Gustäbel (lars@gustaebel.de)s   $Date: 2003/11/06 13:57:49 $sB   $Id: tarfile.py,v 1.8.12.2 2003/11/06 13:57:49 anthonybaxter Exp $s3   Gustavo Niemeyer, Niels Gustäbel, Richard Townsend.Ns   macs'   tarfile does not work for platform==macs   TarFiles   TarInfos
   is_tarfiles   TarErrors    i   i   s   ustars   00id   i   l   ˙˙ s   0s   1s   2s   3s   4s   5s   6s   7s   Ls   Ks   Si    i   i `  i @  i    i   i   i   i   i   i@   i    i   i   i   i   i   c         C   s   |  i t d  d Sd S(   s@   Convert a null-terminated string buffer to a python string.
    i   i    N(   s   ss   splits   NUL(   s   s(    (    s$   /mit/python/lib/python2.3/tarfile.pys   nts   s     c         C   sX   d } x" |  d  D] } | t |  7} q Wx" |  d D] } | t |  7} q6 W| Sd S(   sÖ   Calculate the checksum for a member's header. It's a simple addition
       of all bytes, treating the chksum field as if filled with spaces.
       buf is a 512 byte long string buffer which holds the header.
    i   i   i   N(   s   chks   bufs   cs   ord(   s   bufs   cs   chk(    (    s$   /mit/python/lib/python2.3/tarfile.pys   calc_chksum   s         c         C   s  | d j o d Sn | t j o t i |  |  d Sn d d } t | |  \ } } xP t
 |  D]B } |  i |  } t |  | j  o t d  n | i |  qf W| d j o@ |  i |  } t |  | j  o t d  n | i |  n d Sd S(   sj   Copy length bytes from fileobj src to fileobj dst.
       If length is None, copy the entire content.
    i    Ni   i   s   end of file reached(   s   lengths   Nones   shutils   copyfileobjs   srcs   dsts   BUFSIZEs   divmods   blockss	   remainders   xranges   bs   reads   bufs   lens   IOErrors   write(   s   srcs   dsts   lengths   BUFSIZEs   blockss   bufs   bs	   remainder(    (    s$   /mit/python/lib/python2.3/tarfile.pys   copyfileobj   s(     
 s   ls   -s   bs   ds   cs   ps   rs   ws   xs   ss   Ts   tc         C   s   d } xw t D]o } xf t o^ |  | d @| d j o | | d 7} n/ t |  d j o | d } q n | d 7} Pq Wq W| Sd S(   sc   Convert a file's mode to a string of the form
       -rwxrwxrwx.
       Used by TarFile.list()
    s    i    i   i   s   -N(   s   ss   filemode_tables   ts   Trues   modes   len(   s   modes   ss   t(    (    s$   /mit/python/lib/python2.3/tarfile.pys   filemodeÁ   s       


s   /c         C   s   t  i i |   i t  i d  S(   Ns   /(   s   oss   paths   normpaths   replaces   sep(   s   path(    (    s$   /mit/python/lib/python2.3/tarfile.pys   <lambda>Ô   s    c           B   s   t  Z d  Z RS(   s   Base exception.(   s   __name__s
   __module__s   __doc__(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   TarErrorŘ   s    s   ExtractErrorc           B   s   t  Z d  Z RS(   s%   General exception for extract errors.(   s   __name__s
   __module__s   __doc__(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   ExtractErrorŰ   s    s	   ReadErrorc           B   s   t  Z d  Z RS(   s%   Exception for unreadble tar archives.(   s   __name__s
   __module__s   __doc__(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys	   ReadErrorŢ   s    s   CompressionErrorc           B   s   t  Z d  Z RS(   s.   Exception for unavailable compression methods.(   s   __name__s
   __module__s   __doc__(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   CompressionErrorá   s    s   StreamErrorc           B   s   t  Z d  Z RS(   s=   Exception for unsupported operations on stream-like TarFiles.(   s   __name__s
   __module__s   __doc__(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   StreamErrorä   s    s   _LowLevelFilec           B   s2   t  Z d  Z d   Z d   Z d   Z d   Z RS(   s   Low-level file object. Supports reading and writing.
       It is used instead of a regular file object for streaming
       access.
    c         C   sj   h  d t  i <d t  i t  i Bt  i B<| } t t  d  o | t  i O} n t  i | |  |  _ d  S(   Ns   rs   ws   O_BINARY(   s   oss   O_RDONLYs   O_WRONLYs   O_CREATs   O_TRUNCs   modes   hasattrs   O_BINARYs   opens   names   selfs   fd(   s   selfs   names   mode(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __init__ń   s    0c         C   s   t  i |  i  d  S(   N(   s   oss   closes   selfs   fd(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   closeú   s    c         C   s   t  i |  i |  Sd  S(   N(   s   oss   reads   selfs   fds   size(   s   selfs   size(    (    s$   /mit/python/lib/python2.3/tarfile.pys   readý   s    c         C   s   t  i |  i |  d  S(   N(   s   oss   writes   selfs   fds   s(   s   selfs   s(    (    s$   /mit/python/lib/python2.3/tarfile.pys   write   s    (   s   __name__s
   __module__s   __doc__s   __init__s   closes   reads   write(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   _LowLevelFileë   s
    				s   _Streamc           B   s   t  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	 d
  Z e d  Z d   Z d   Z RS(   s  Class that serves as an adapter between TarFile and
       a stream-like object.  The stream-like object only
       needs to have a read() or write() method and is accessed
       blockwise.  Use of gzip or bzip2 compression is possible.
       A stream-like object could be for example: sys.stdin,
       sys.stdout, a socket, a tape device etc.

       _Stream is intended to be used only internally.
    c         C   sw  t  |  _ | t j o t | |  } t |  _ n | p d |  _ | |  _ | |  _	 | |  _ | |  _
 d |  _ d |  _ t |  _ | d j op y d k } Wn t j
 o t d  n X| |  _ | i d  |  _ | d j o |  i   qţ |  i   n | d j oh y d k } Wn t j
 o t d  n X| d j o d |  _ | i   |  _ qs| i   |  _ n d S(	   s$   Construct a _Stream object.
        s    l    s   gzNs   zlib module is not availables   rs   bz2s   bz2 module is not available(   s   Trues   selfs   _extfileobjs   fileobjs   Nones   _LowLevelFiles   names   modes   Falses   types   bufsizes   bufs   poss   closeds   zlibs   ImportErrors   CompressionErrors   crc32s   crcs   _init_read_gzs   _init_write_gzs   bz2s   dbufs   BZ2Decompressors   cmps   BZ2Compressor(   s   selfs   names   modes   types   fileobjs   bufsizes   zlibs   bz2(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __init__  s@     										c         C   s   |  i o |  i   n d  S(   N(   s   selfs   closeds   close(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __del__6  s    c         C   s˘   |  i i d |  i i |  i i |  i i d  |  _ t i d t	 t
 i
     } |  i d |  |  i i d  o |  i d  |  _ n |  i |  i t  d S(   s6   Initialize for writing with gzip compression.
        i	   i    s   <Ls   %s˙s   .gziý˙˙˙N(   s   selfs   zlibs   compressobjs   DEFLATEDs	   MAX_WBITSs   DEF_MEM_LEVELs   cmps   structs   packs   longs   times	   timestamps   _Stream__writes   names   endswiths   NUL(   s   selfs	   timestamp(    (    s$   /mit/python/lib/python2.3/tarfile.pys   _init_write_gz:  s     
	c         C   s{   |  i d j o |  i i | |  i  |  _ n |  i t |  7_ |  i d j o |  i i	 |  } n |  i
 |  d S(   s&   Write string s to the stream.
        s   gzs   tarN(   s   selfs   types   zlibs   crc32s   ss   crcs   poss   lens   cmps   compresss   _Stream__write(   s   selfs   s(    (    s$   /mit/python/lib/python2.3/tarfile.pys   writeG  s     c         C   sa   |  i | 7_ xK t |  i  |  i j o1 |  i i |  i |  i   |  i |  i |  _ q Wd S(   s]   Write string s to the stream if a whole new block
           is ready to be written.
        N(   s   selfs   bufs   ss   lens   bufsizes   fileobjs   write(   s   selfs   s(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __writeQ  s      c         C   s÷   |  i o d Sn |  i d j o |  i o˘ |  i d j o |  i |  i i   7_ n |  i i |  i  d |  _ |  i d j oF |  i i t	 i
 d |  i   |  i i t	 i
 d |  i d @  qÎ n |  i o |  i i   n t |  _ d S(	   s[   Close the _Stream object. No operation should be
           done on it afterwards.
        Ns   ws   tars    s   gzs   <ls   <Ll   ˙˙ (   s   selfs   closeds   modes   bufs   types   cmps   flushs   fileobjs   writes   structs   packs   crcs   poss   _extfileobjs   closes   True(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   closeZ  s     
	+c         C   s  |  i i |  i i  |  _ d |  _ |  i d  d j o t d  n |  i d  d j o t d  n t	 |  i d   } |  i d  | d	 @o= t	 |  i d   d
 t	 |  i d   } |  i |  n | d @o< x9 t o- |  i d  } | p
 | t j o Pqă qă Wn | d @o< x9 t o- |  i d  } | p
 | t j o Pq*q*Wn | d @o |  i d  n d S(   s:   Initialize for reading a gzip compressed fileobj.
        s    i   s   s   not a gzip filei   s   s   unsupported compression methodi   i   i   i   i   N(   s   selfs   zlibs   decompressobjs	   MAX_WBITSs   cmps   dbufs   _Stream__reads	   ReadErrors   CompressionErrors   ords   flags   xlens   reads   Trues   ss   NUL(   s   selfs   ss   xlens   flag(    (    s$   /mit/python/lib/python2.3/tarfile.pys   _init_read_gzo  s4     	,  c         C   s   |  i Sd S(   s3   Return the stream's file pointer position.
        N(   s   selfs   pos(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   tell  s     i    c         C   s   | |  i  d j oW t | |  i  |  i  \ } } x$ t |  D] } |  i |  i  q@ W|  i |  n
 t	 d  |  i  Sd S(   sX   Set the stream's file pointer to pos. Negative seeking
           is forbidden.
        i    s    seeking backwards is not allowedN(
   s   poss   selfs   divmods   bufsizes   blockss	   remainders   xranges   is   reads   StreamError(   s   selfs   poss   blockss   is	   remainder(    (    s$   /mit/python/lib/python2.3/tarfile.pys   seek  s      	c         C   s   | t j oT g  } x8 t o0 |  i |  i  } | o Pn | i |  q Wd i	 |  } n |  i |  } |  i
 t |  7_
 | Sd S(   s   Return the next size number of bytes from the stream.
           If size is not defined, return all bytes of the stream
           up to EOF.
        s    N(   s   sizes   Nones   ts   Trues   selfs   _reads   bufsizes   bufs   appends   joins   poss   len(   s   selfs   sizes   ts   buf(    (    s$   /mit/python/lib/python2.3/tarfile.pys   read   s      c         C   sÇ   |  i d j o |  i |  Sn t |  i  } |  i g } x` | | j  oR |  i |  i  } | o Pn |  i
 i |  } | i |  | t |  7} q? Wd i |  } | | |  _ | |  Sd S(   s+   Return size bytes from the stream.
        s   tars    N(   s   selfs   types   _Stream__reads   sizes   lens   dbufs   cs   ts   bufsizes   bufs   cmps
   decompresss   appends   join(   s   selfs   sizes   cs   ts   buf(    (    s$   /mit/python/lib/python2.3/tarfile.pys   _read˛  s       c         C   s   t  |  i  } |  i g } xQ | | j  oC |  i i |  i  } | o Pn | i	 |  | t  |  7} q Wd i
 |  } | | |  _ | |  Sd S(   ss   Return size bytes from stream. If internal buffer is empty,
           read another block from the stream.
        s    N(   s   lens   selfs   bufs   cs   ts   sizes   fileobjs   reads   bufsizes   appends   join(   s   selfs   sizes   cs   ts   buf(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __readĹ  s      (   s   __name__s
   __module__s   __doc__s   __init__s   __del__s   _init_write_gzs   writes   _Stream__writes   closes   _init_read_gzs   tells   seeks   Nones   reads   _reads   _Stream__read(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   _Stream  s   	 	(			
						s   ExFileObjectc           B   st   t  Z d  Z d   Z d   Z d d  Z d   Z e d  Z e d  Z	 d   Z
 d	   Z d
 d  Z d   Z RS(   s   File-like object for reading an archive member.
       Is returned by TarFile.extractfile(). Support for
       sparse files included.
    c         C   s   | i |  _ | i |  _ d |  _ t |  _ | i |  _	 | i
 |  _
 d |  _ d |  _ | i   o | i |  _ |  i |  _ n |  i |  _ d  S(   Ns   rl    s    (   s   tarfiles   fileobjs   selfs   tarinfos   names   modes   Falses   closeds   offset_datas   offsets   sizes   poss
   linebuffers   issparses   sparses   _readsparses   reads   _readnormal(   s   selfs   tarfiles   tarinfo(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __init__ß  s    				c         C   s   |  i i |  Sd S(   s"   Overloadable read method.
        N(   s   selfs   fileobjs   reads   size(   s   selfs   size(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __readî  s     i˙˙˙˙c         C   sS  | d j  o t i } n |  i i d  } | d j o t | |  } n¸ | t |  i  8} xz | d j  ol |  i	 t | d   } | o Pn |  i | 7_ | t |  8} | d j o Pn |  i i d  } qb W| d j o |  i } d |  _ | Sn |  i |  } |  i | d |  _ x  | d d j o | d  } q'W| d Sd S(	   s   Read a line with approx. size. If size is negative,
           read a whole line. readline() and read() must not
           be mixed up (!).
        i    s   
id   i˙˙˙˙s    i   s   N(   s   sizes   syss   maxints   selfs
   linebuffers   finds   nls   mins   lens   reads   bufs   s(   s   selfs   sizes   nls   ss   buf(    (    s$   /mit/python/lib/python2.3/tarfile.pys   readlineó  s6      		 c         C   sC   g  } x2 t o* |  i   } | o Pn | i |  q	 W| Sd S(   s2   Return a list with all (following) lines.
        N(   s   results   Trues   selfs   readlines   lines   append(   s   selfs   lines   result(    (    s$   /mit/python/lib/python2.3/tarfile.pys	   readlines  s       c         C   s   |  i o t d  n |  i i |  i |  i  |  i |  i } | t	 j o
 | } n t | |  } |  i | 7_ |  i |  Sd S(   s*   Read operation for regular files.
        s   file is closedN(   s   selfs   closeds
   ValueErrors   fileobjs   seeks   offsets   poss   sizes	   byteslefts   Nones   bytestoreads   mins   _ExFileObject__read(   s   selfs   sizes	   byteslefts   bytestoread(    (    s$   /mit/python/lib/python2.3/tarfile.pys   _readnormal  s     

c         C   s   |  i o t d  n | t j o |  i |  i } n g  } xK | d j o= |  i |  } | o Pn | t	 |  8} | i
 |  qA Wd i |  Sd S(   s)   Read operation for sparse files.
        s   file is closedi    s    N(   s   selfs   closeds
   ValueErrors   sizes   Nones   poss   datas   _readsparsesections   bufs   lens   appends   join(   s   selfs   sizes   datas   buf(    (    s$   /mit/python/lib/python2.3/tarfile.pys   _readsparse+  s     
 c         C   sĂ   |  i i |  i  } | t j o d Sn t | | i | i |  i  } t
 | t  oN | i |  i | i } |  i | 7_ |  i i |  i |  |  i |  Sn |  i | 7_ t | Sd S(   s0   Read a single section of a sparse file.
        s    N(   s   selfs   sparses   finds   poss   sections   Nones   mins   sizes   offsets   toreads
   isinstances   _datas   realposs   fileobjs   seeks   _ExFileObject__reads   NUL(   s   selfs   sizes   toreads   realposs   section(    (    s$   /mit/python/lib/python2.3/tarfile.pys   _readsparsesection=  s      c         C   s   |  i Sd S(   s*   Return the current file position.
        N(   s   selfs   pos(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   tellO  s     i    c         C   sÉ   d |  _ | d j o" t t | d  |  i  |  _ n | d j oJ | d j  o t |  i | d  |  _ q t |  i | |  i  |  _ n | d j o) t t |  i | |  i  d  |  _ n d S(   s(   Seek to a position in the file.
        s    i    i   i   N(   s   selfs
   linebuffers   whences   mins   maxs   poss   size(   s   selfs   poss   whence(    (    s$   /mit/python/lib/python2.3/tarfile.pys   seekT  s     	" c         C   s   t  |  _ d S(   s   Close the file object.
        N(   s   Trues   selfs   closed(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   closeb  s     (   s   __name__s
   __module__s   __doc__s   __init__s   _ExFileObject__reads   readlines	   readliness   Nones   _readnormals   _readsparses   _readsparsesections   tells   seeks   close(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   ExFileObjectŮ  s    		 	
		c           B   s   t  Z d  Z d d  Z d   Z d   Z e e  Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z RS(   s  Informational class which holds the details about an
       archive member given by a tar header block.
       TarInfo objects are returned by TarFile.getmember(),
       TarFile.getmembers() and TarFile.gettarinfo() and are
       usually created internally.
    s    c         C   s   | |  _  d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ t |  _	 d |  _
 d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d S(   sX   Construct a TarInfo object. name is the optional name
           of the member.
        iś  i    s    s   users   groupN(   s   names   selfs   modes   uids   gids   sizes   mtimes   chksums   REGTYPEs   types   linknames   unames   gnames   devmajors   devminors   prefixs   offsets   offset_data(   s   selfs   name(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __init__s  s"     															c         C   s9   d t  i d } d |  i i |  i t |   | @f Sd  S(   Nl    i   s   <%s %r at %#x>(   s   syss   maxints   MAXs   selfs	   __class__s   __name__s   names   id(   s   selfs   MAX(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __repr__  s    c         C   sí  |    } t | d d ! | _ t | d d !d  | _ t | d d !d  | _ t | d d !d  | _ t	 | d d !d  | _
 t	 | d d !d  | _ t | d d	 !d  | _ | d	 d
 !| _ t | d
 d ! | _ t | d d ! | _ t | d d ! | _ y6 t | d d !d  | _ t | d d !d  | _ Wn# t j
 o d | _ | _ n X| d d !| _ | i t j o. t t i i t | i  | i   | _ n | i   o | i d d j o | i d 7_ n | Sd S(   sB   Construct a TarInfo object from a 512 byte string buffer.
        i    id   il   i   it   i|   i   i   i   i   i  i	  i)  iI  iQ  iY  iô  i˙˙˙˙s   /N(   s   clss   tarinfos   ntss   bufs   names   ints   modes   uids   gids   longs   sizes   mtimes   chksums   types   linknames   unames   gnames   devmajors   devminors
   ValueErrors   prefixs   GNUTYPE_SPARSEs   normpaths   oss   paths   joins   isdir(   s   clss   bufs   tarinfo(    (    s$   /mit/python/lib/python2.3/tarfile.pys   frombuf  s0     	.!c         C   s}  |  i } g  } x| d f d |  i d @d f d |  i d f d |  i d f d |  i d f d |  i d f d d f |  i d f |  i	 d f t
 d	 f t d
 f |  i d f |  i d f d |  i d f d |  i d f |  i d f f D]1 \ } } t |  } | i | | | t  qę Wd i |  } t |  } | d  d | | d } | t t |  t 7} | |  _ | Sd S(   s8   Return a tar header block as a 512 byte string.
        id   s   %07oi˙  i   s   %011oi   s           i   i   i   i    i   s    i   s   %06o N(   s   selfs   names   partss   modes   uids   gids   sizes   mtimes   types   linknames   MAGICs   VERSIONs   unames   gnames   devmajors   devminors   prefixs   values	   fieldsizes   lens   ls   appends   NULs   joins   bufs   calc_chksums   chksums	   BLOCKSIZE(   s   selfs   names   ls	   fieldsizes   partss   values   chksums   buf(    (    s$   /mit/python/lib/python2.3/tarfile.pys   tobufľ  s     	Ű 	c         C   s   |  i t j Sd  S(   N(   s   selfs   types   REGULAR_TYPES(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   isregŘ  s    c         C   s   |  i   Sd  S(   N(   s   selfs   isreg(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   isfileÚ  s    c         C   s   |  i t j Sd  S(   N(   s   selfs   types   DIRTYPE(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   isdirÜ  s    c         C   s   |  i t j Sd  S(   N(   s   selfs   types   SYMTYPE(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   issymŢ  s    c         C   s   |  i t j Sd  S(   N(   s   selfs   types   LNKTYPE(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   islnkŕ  s    c         C   s   |  i t j Sd  S(   N(   s   selfs   types   CHRTYPE(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   ischrâ  s    c         C   s   |  i t j Sd  S(   N(   s   selfs   types   BLKTYPE(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   isblkä  s    c         C   s   |  i t j Sd  S(   N(   s   selfs   types   FIFOTYPE(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   isfifoć  s    c         C   s   |  i t j Sd  S(   N(   s   selfs   types   GNUTYPE_SPARSE(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   issparseč  s    c         C   s   |  i t t t f j Sd  S(   N(   s   selfs   types   CHRTYPEs   BLKTYPEs   FIFOTYPE(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   isdevę  s    (   s   __name__s
   __module__s   __doc__s   __init__s   __repr__s   frombufs   classmethods   tobufs   isregs   isfiles   isdirs   issyms   islnks   ischrs   isblks   isfifos   issparses   isdev(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   TarInfok  s     		!	#									c           B   s.  t  Z d  Z d Z e Z e Z d Z e Z	 e
 Z e d e d  Z e d e d d d  Z e e  Z d e d  Z e e  Z d e d d	  Z e e  Z d e d d
  Z e e  Z h  d d <d d <d d <Z d   Z d   Z d   Z d   Z e e e d  Z e d  Z e e d  Z e d  Z d 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* h  e+ e) <e, e) <e- e* <Z. d)   Z/ e d*  Z0 d+   Z1 e d,  Z2 d-   Z3 d.   Z4 d/   Z5 RS(0   s=   The TarFile Class provides an interface to tar archives.
    i    s   rc         C   s  | |  _  t |  d j p
 | d j o t d  n | |  _ h  d d <d d <d d	 <| |  _ | o" t |  i  |  i  } t |  _	 nZ |  i  t
 j o t | d
  o | i  |  _  n t | d  o | i |  _ n t |  _	 | |  _ t |  _ g  |  _ g  |  _ d g |  _ t |  _ d |  _ h  |  _ |  i d j o t
 |  _ |  i   |  _ n |  i d j oy t
 |  _ xm t oa y |  i   } Wn$ t j
 o |  i i d  Pn X| t
 j o |  i i t d  Pq}q}Wn |  i d j o t |  _ n d S(   sÖ  Open an (uncompressed) tar archive `name'. `mode' is either 'r' to
           read from an existing archive, 'a' to append data to an existing
           file or 'w' to create a new file overwriting an existing one. `mode'
           defaults to 'r'.
           If `fileobj' is given, it is used for reading or writing data. If it
           can be determined, `mode' is overridden by `fileobj's mode.
           `fileobj' is not closed, when TarFile is closed.
        i   s   raws   mode must be 'r', 'a' or 'w's   rs   rbs   as   r+bs   ws   wbs   names   modei    l    s   awN(   s   names   selfs   lens   modes
   ValueErrors   _modes   fileobjs   files   Falses   _extfileobjs   Nones   hasattrs   Trues   closeds   memberss   membernamess   chunkss   _loadeds   offsets   inodess   firstmembers   nexts   tarinfos	   ReadErrors   seeks	   BLOCKSIZE(   s   selfs   names   modes   fileobjs   tarinfo(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __init__  sN     	 	( 										 i   i   c   	   	   C   sÝ  | o | o t d  n d | j o} | i d d  \ } } | p d } | p d } | |  i j o t	 |  |  i |  } n t d |  | | | |  Sn*d | j o | i d d  \ } } | p d } | p d } | d j o t d	  n |  | | t | | | | |   } t | _ | Sn | d j oj xZ |  i D]O } t	 |  |  i |  } y | | d |  SWqLt t f j
 o
 qLqLXqLWt d
  n% | d j o |  i | | |  Sn t d  d S(   s
  Open a tar archive for reading, writing or appending. Return
           an appropriate TarFile class.

           mode:
           'r'          open for reading with transparent compression
           'r:'         open for reading exclusively uncompressed
           'r:gz'       open for reading with gzip compression
           'r:bz2'      open for reading with bzip2 compression
           'a' or 'a:'  open for appending
           'w' or 'w:'  open for writing without compression
           'w:gz'       open for writing with gzip compression
           'w:bz2'      open for writing with bzip2 compression
           'r|'         open an uncompressed stream of tar blocks for reading
           'r|gz'       open a gzip compressed stream of tar blocks
           'r|bz2'      open a bzip2 compressed stream of tar blocks
           'w|'         open an uncompressed stream for writing
           'w|gz'       open a gzip compressed stream for writing
           'w|bz2'      open a bzip2 compressed stream for writing
        s   nothing to opens   :i   s   rs   tars   unknown compression type %rs   |s   rws   mode must be 'r' or 'w's%   file could not be opened successfullys   aws   undiscernible modeN(   s   names   fileobjs
   ValueErrors   modes   splits   filemodes   comptypes   clss	   OPEN_METHs   getattrs   funcs   CompressionErrors   _Streams   bufsizes   ts   Falses   _extfileobjs	   ReadErrors   taropen(	   s   clss   names   modes   fileobjs   bufsizes   funcs   comptypes   filemodes   t(    (    s$   /mit/python/lib/python2.3/tarfile.pys   openH  sB     		
 c         C   sA   t  |  d j p
 | d j o t d  n |  | | |  Sd S(   sC   Open uncompressed tar archive name for reading or writing.
        i   s   raws   mode must be 'r', 'a' or 'w'N(   s   lens   modes
   ValueErrors   clss   names   fileobj(   s   clss   names   modes   fileobj(    (    s$   /mit/python/lib/python2.3/tarfile.pys   taropen  s      i	   c   
      C   s^  t  |  d j p
 | d j o t d  n y d k }	 |	 i Wn" t t f j
 o t d  n Xt i	 i
 |  \ } } t i	 i |  } | d j o
 d } n | d j o
 d	 } n | | } | t j o t | | d
  } n | d j o
 | } n y+ |  i | | |	 i | | | |   } Wn t j
 o t d  n Xt | _ | Sd S(   sk   Open gzip compressed tar archive name for reading or writing.
           Appending is not allowed.
        i   s   rws   mode must be 'r' or 'w'Ns   gzip module is not availables   .tgzs   .tars   .gzs    s   bs   rs   not a gzip file(   s   lens   modes
   ValueErrors   gzips   GzipFiles   ImportErrors   AttributeErrors   CompressionErrors   oss   paths   splitexts   names   pres   exts   basenames   tarnames   fileobjs   Nones   files   clss   taropens   compresslevels   ts   IOErrors	   ReadErrors   Falses   _extfileobj(
   s   clss   names   modes   fileobjs   compresslevels   pres   tarnames   ts   exts   gzip(    (    s$   /mit/python/lib/python2.3/tarfile.pys   gzopen  s4      	



	c   
      C   s0  t  |  d j p
 | d j o t d  n y d k }	 Wn t j
 o t d  n Xt i i |  \ } } t i i |  } | d j o
 d } n | d j o
 d	 } n | | } | t j	 o t d
  n y+ |  i | | |	 i | | d |  } Wn t j
 o t d  n Xt | _ | Sd S(   sl   Open bzip2 compressed tar archive name for reading or writing.
           Appending is not allowed.
        i   s   rws   mode must be 'r' or 'w'.Ns   bz2 module is not availables   .tbz2s   .tars   .bz2s    s$   no support for external file objectss   compresslevels   not a bzip2 file(   s   lens   modes
   ValueErrors   bz2s   ImportErrors   CompressionErrors   oss   paths   splitexts   names   pres   exts   basenames   tarnames   fileobjs   Nones   clss   taropens   BZ2Files   compresslevels   ts   IOErrors	   ReadErrors   Falses   _extfileobj(
   s   clss   names   modes   fileobjs   compresslevels   pres   tarnames   ts   exts   bz2(    (    s$   /mit/python/lib/python2.3/tarfile.pys   bz2openş  s,      


+	s   tars   taropens   gzs   gzopens   bz2s   bz2openc         C   sť   |  i o d Sn |  i d j op |  i i t t d  |  i t d 7_ t |  i t	  \ } } | d j o |  i i t t	 |  q n |  i o |  i i   n t |  _ d S(   sl   Close the TarFile. In write-mode, two finishing zero blocks are
           appended to the archive.
        Ns   awi   i    (   s   selfs   closeds   _modes   fileobjs   writes   NULs	   BLOCKSIZEs   offsets   divmods
   RECORDSIZEs   blockss	   remainders   _extfileobjs   closes   True(   s   selfs   blockss	   remainder(    (    s$   /mit/python/lib/python2.3/tarfile.pys   closeä  s     
 c         C   se   |  i   | |  i j o |  i o |  i   n | |  i j o t d |  n |  i |  Sd S(   s  Return a TarInfo object for member `name'. If `name' can not be
           found in the archive, KeyError is raised. If a member occurs more
           than once in the archive, its last occurence is assumed to be the
           most up-to-date version.
        s   filename %r not foundN(   s   selfs   _checks   names   membernamess   _loadeds   _loads   KeyErrors
   _getmember(   s   selfs   name(    (    s$   /mit/python/lib/python2.3/tarfile.pys	   getmemberř  s     
c         C   s.   |  i   |  i o |  i   n |  i Sd S(   s   Return the members of the archive as a list of TarInfo objects. The
           list has the same order as the members in the archive.
        N(   s   selfs   _checks   _loadeds   _loads   members(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys
   getmembers  s
     
c         C   s.   |  i   |  i o |  i   n |  i Sd S(   s   Return the members of the archive as a list of their names. It has
           the same order as the list returned by getmembers().
        N(   s   selfs   _checks   _loadeds   _loads   membernames(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   getnames  s
     
c         C   sn  |  i d  | t j	 o | i } n | t j o
 | } n t |  } t i i	 |  \ } } x# | d d !d j o | d } qe Wt   }
 | t j oA t t d  o |  i o t i |  } qô t i |  } n t i | i    } d } | i }	 t i |	  oj | i | i f } | |  i j o |  i o t } |  i | } q1t } | d o | |  i | <q1nľ t i |	  o) t  } | d d j o | d 7} q1n| t i! |	  o
 t" } nb t i# |	  o t$ } t i% |  } n9 t i& |	  o
 t' } n t i( |	  o
 t) } n t S| |
 _ |	 |
 _* | i+ |
 _, | i- |
 _. | i/ |
 _0 | i1 |
 _2 | |
 _ | |
 _ t3 o7 y t3 i4 |
 i,  d |
 _5 WqĂt6 j
 o qĂXn t7 o7 y t7 i8 |
 i.  d |
 _9 Wqt6 j
 o qXn | t' t) f j oR t t d  o t t d	  o. t i: | i;  |
 _< t i= | i;  |
 _> qfn |
 Sd
 S(   sO  Create a TarInfo object for either the file `name' or the file
           object `fileobj' (using os.fstat on its file descriptor). You can
           modify some of the TarInfo's attributes before you add it using
           addfile(). If given, `arcname' specifies an alternative name for the
           file in the archive.
        s   awi    i   s   /s   lstats    i˙˙˙˙s   majors   minorN(?   s   selfs   _checks   fileobjs   Nones   names   arcnames   normpaths   oss   paths
   splitdrives   drvs   TarInfos   tarinfos   hasattrs   dereferences   lstats   statress   stats   fstats   filenos   linknames   st_modes   stmds   S_ISREGs   st_inos   st_devs   inodes   inodess   LNKTYPEs   types   REGTYPEs   S_ISDIRs   DIRTYPEs   S_ISFIFOs   FIFOTYPEs   S_ISLNKs   SYMTYPEs   readlinks   S_ISCHRs   CHRTYPEs   S_ISBLKs   BLKTYPEs   modes   st_uids   uids   st_gids   gids   st_sizes   sizes   st_mtimes   mtimes   pwds   getpwuids   unames   KeyErrors   grps   getgrgids   gnames   majors   st_rdevs   devmajors   minors   devminor(   s   selfs   names   arcnames   fileobjs   drvs   inodes   linknames   statress   types   stmds   tarinfo(    (    s$   /mit/python/lib/python2.3/tarfile.pys
   gettarinfo  s     
 		


						 c         C   s  |  i   xň |  D]ę } | o t | i  Gd | i p | i | i p | i	 f G| i
   p
 | i   o d d | i | i f Gn d | i Gd t i | i  d  Gn | i G| o< | i   o d G| i Gn | i   o d G| i Gqú n Hq Wd	 S(
   sź   Print a table of contents to sys.stdout. If `verbose' is False, only
           the names of the members are printed. If it is True, an `ls -l'-like
           output is produced.
        s   %s/%ss   %10ss   %d,%ds   %10ds   %d-%02d-%02d %02d:%02d:%02di   s   ->s   link toN(   s   selfs   _checks   tarinfos   verboses   filemodes   modes   unames   uids   gnames   gids   ischrs   isblks   devmajors   devminors   sizes   times	   localtimes   mtimes   names   issyms   linknames   islnk(   s   selfs   verboses   tarinfo(    (    s$   /mit/python/lib/python2.3/tarfile.pys   listx  s$     
 (c         C   s  |  i d  | t j o
 | } n |  i t j	 o% t i i |  t i i |  i  j o |  i d d |  d Sn | d j oc | oT | d j o
 d } n x: t i
 d  D]% } |  i | t i i | |   qł Wn d Sn |  i d |  |  i | |  } | t j o |  i d d |  d Sn | i   o- t | d	  } |  i | |  | i   n | i t t t t t f j o d
 | _ |  i |  n | i   od |  i |  | oL xI t i
 |  D]4 } |  i t i i | |  t i i | |   q×Wqn d S(   sQ  Add the file `name' to the archive. `name' may be any type of file
           (directory, fifo, symbolic link, etc.). If given, `arcname'
           specifies an alternative name for the file in the archive.
           Directories are added recursively by default. This can be avoided by
           setting `recursive' to False.
        s   awi   s   tarfile: Skipped %rNs   .s    i   s   tarfile: Unsupported type %rs   rbl    (   s   selfs   _checks   arcnames   Nones   names   oss   paths   abspaths   _dbgs	   recursives   listdirs   fs   adds   joins
   gettarinfos   tarinfos   isregs   files   addfiles   closes   types   LNKTYPEs   SYMTYPEs   FIFOTYPEs   CHRTYPEs   BLKTYPEs   sizes   isdir(   s   selfs   names   arcnames	   recursives   fs   tarinfo(    (    s$   /mit/python/lib/python2.3/tarfile.pys   add  sB     
8
 '	 c         C   sÁ  |  i d  t | i  | _ | i   o | i d 7_ n | i o t | i  | _ n | i t j o t	 d  n t
 | i  t j oV |  i o t	 d t  qč |  i | i t  | i t d  | _ |  i d d  n t
 | i  t j oß |  i o | i t d  } x' | o | d d j o | d  } qW| i t
 |  } | d  } | p t
 |  t j o t	 d	 t  n | | _ | | _ qÝ|  i | i t  | i t d  | _ |  i d d
  n |  i i | i    |  i t 7_ | t j	 ox t | |  i | i  t | i t  \ } } | d j o& |  i i t t |  | d 7} n |  i | t 7_ n |  i i  |  |  i! i  | i  |  i" i  |  i  d S(   s]  Add the TarInfo object `tarinfo' to the archive. If `fileobj' is
           given, tarinfo.size bytes are read from it and added to the archive.
           You can create TarInfo objects using gettarinfo().
           On Windows platforms, `fileobj' should always be opened with mode
           'rb' to avoid irritation about the file size.
        s   aws   /s   file is too large (>8GB)s   linkname is too long (>%d)i   i   s+   tarfile: Created GNU tar extension LONGLINKi˙˙˙˙s   name is too long (>%d)s+   tarfile: Created GNU tar extension LONGNAMEi    N(#   s   selfs   _checks   normpaths   tarinfos   names   isdirs   linknames   sizes   MAXSIZE_MEMBERs
   ValueErrors   lens   LENGTH_LINKs   posixs   _create_gnulongs   GNUTYPE_LONGLINKs   _dbgs   LENGTH_NAMEs   LENGTH_PREFIXs   prefixs   GNUTYPE_LONGNAMEs   fileobjs   writes   tobufs   offsets	   BLOCKSIZEs   Nones   copyfileobjs   divmods   blockss	   remainders   NULs   memberss   appends   membernamess   chunks(   s   selfs   tarinfos   fileobjs   names   prefixs   blockss	   remainder(    (    s$   /mit/python/lib/python2.3/tarfile.pys   addfileĘ  sT     


 
	s    c         C   s  |  i d  t | t  o
 | } n |  i |  } y& |  i | t i	 i
 | | i   Wnś t j
 ok } |  i d j o   q| i t j o |  i d d | i  q|  i d d | i | i f  nA t j
 o4 } |  i d j o   q|  i d d |  n Xd S(   s#  Extract a member from the archive to the current working directory,
           using its full name. Its file information is extracted as accurately
           as possible. `member' may be a filename or a TarInfo object. You can
           specify a different directory using `path'.
        s   ri    i   s   tarfile: %ss   tarfile: %s %rN(   s   selfs   _checks
   isinstances   members   TarInfos   tarinfos	   getmembers   _extract_members   oss   paths   joins   names   EnvironmentErrors   es
   errorlevels   filenames   Nones   _dbgs   strerrors   ExtractError(   s   selfs   members   paths   es   tarinfo(    (    s$   /mit/python/lib/python2.3/tarfile.pys   extract  s"     
&$c         C   sÝ   |  i d  t | t  o
 | } n |  i |  } | i   o |  i |  |  Sn | i	 t
 j o |  i |  |  Sn_ | i   p
 | i   o@ t |  i t  o t d  qŮ |  i |  i | i |   Sn t Sd S(   së  Extract a member from the archive as a file object. `member' may be
           a filename or a TarInfo object. If `member' is a regular file, a
           file-like object is returned. If `member' is a link, a file-like
           object is constructed from the link's target. If `member' is none of
           the above, None is returned.
           The file-like object is read-only and provides the following
           methods: read(), readline(), readlines(), seek() and tell()
        s   rs'   cannot extract (sym)link as file objectN(   s   selfs   _checks
   isinstances   members   TarInfos   tarinfos	   getmembers   isregs
   fileobjects   types   SUPPORTED_TYPESs   islnks   issyms   fileobjs   _Streams   StreamErrors   extractfiles
   _getmembers   linknames   None(   s   selfs   members   tarinfo(    (    s$   /mit/python/lib/python2.3/tarfile.pys   extractfile(  s     
c         C   sm  | d d j o | d  } n t i i |  } t i i |  } | o t i i |  o t   } | | _	 t
 | _ d | _ | i | _ | i | _ | i | _ | i | _ | i | _ y |  i | | i	  Wqă qă Xn | i   p
 | i   o$ |  i d d | i	 | i f  n |  i d | i	  | i   o |  i | |  nÓ | i   o |  i | |  n˛ | i   o |  i | |  n | i   p
 | i    o |  i! | |  nc | i   p
 | i   o |  i" | |  n5 | i t# j o |  i$ | |  n |  i | |  |  i% | |  | i   o$ |  i& | |  |  i' | |  n d S(   s\   Extract the TarInfo object tarinfo to a physical
           file called targetpath.
        i˙˙˙˙s   /i˙  i   s   %s -> %sN((   s
   targetpaths   oss   paths   normpaths   dirnames	   upperdirss   existss   TarInfos   tis   names   DIRTYPEs   types   modes   tarinfos   mtimes   uids   gids   unames   gnames   selfs   _extract_members   islnks   issyms   _dbgs   linknames   isregs   makefiles   isdirs   makedirs   isfifos   makefifos   ischrs   isblks   makedevs   makelinks   SUPPORTED_TYPESs   makeunknowns   chowns   chmods   utime(   s   selfs   tarinfos
   targetpaths   tis	   upperdirs(    (    s$   /mit/python/lib/python2.3/tarfile.pys   _extract_memberO  sN     				$c         C   sG   y t  i |  Wn/ t j
 o# } | i t i j o   qC n Xd S(   s,   Make a directory called targetpath.
        N(   s   oss   mkdirs
   targetpaths   EnvironmentErrors   es   errnos   EEXIST(   s   selfs   tarinfos
   targetpaths   e(    (    s$   /mit/python/lib/python2.3/tarfile.pys   makedir  s     c         C   sC   |  i |  } t | d  } t | |  | i   | i   d S(   s'   Make a file called targetpath.
        s   wbN(	   s   selfs   extractfiles   tarinfos   sources   files
   targetpaths   targets   copyfileobjs   close(   s   selfs   tarinfos
   targetpaths   targets   source(    (    s$   /mit/python/lib/python2.3/tarfile.pys   makefile  s     
c         C   s+   |  i | |  |  i d d | i  d S(   sY   Make a file from a TarInfo object with an unknown type
           at targetpath.
        i   s9   tarfile: Unknown file type %r, extracted as regular file.N(   s   selfs   makefiles   tarinfos
   targetpaths   _dbgs   type(   s   selfs   tarinfos
   targetpath(    (    s$   /mit/python/lib/python2.3/tarfile.pys   makeunknown  s     c         C   s.   t  t d  o t i |  n
 t d  d S(   s'   Make a fifo called targetpath.
        s   mkfifos   fifo not supported by systemN(   s   hasattrs   oss   mkfifos
   targetpaths   ExtractError(   s   selfs   tarinfos
   targetpath(    (    s$   /mit/python/lib/python2.3/tarfile.pys   makefifoŁ  s     c         C   s   t  t d  p t  t d  o t d  n | i } | i   o | t i O} n | t i O} t i	 | | t i | i | i   d S(   s<   Make a character or block device called targetpath.
        s   mknods   makedevs'   special devices not supported by systemN(   s   hasattrs   oss   ExtractErrors   tarinfos   modes   isblks   stats   S_IFBLKs   S_IFCHRs   mknods
   targetpaths   makedevs   devmajors   devminor(   s   selfs   tarinfos
   targetpaths   mode(    (    s$   /mit/python/lib/python2.3/tarfile.pys   makedevŤ  s     "	c         C   s  | i } y5 | i   o t i | |  n t i | |  WnÖ t j
 oĘ | i   o4 t i	 i
 t i	 i | i  |  } t |  } n y |  i |  i |  |  Wqt t f j
 oP } t i	 i |  } y t i | |  Wqt j
 o } t d  qXqXn Xd S(   sľ   Make a (symbolic) link called targetpath. If it cannot be created
          (platform limitation), we try to make a copy of the referenced file
          instead of a link.
        s   link could not be createdN(   s   tarinfos   linknames   linkpaths   issyms   oss   symlinks
   targetpaths   links   AttributeErrors   paths   joins   dirnames   names   normpaths   selfs   _extract_members	   getmembers   EnvironmentErrors   KeyErrors   es   shutils   copy2s   IOError(   s   selfs   tarinfos
   targetpaths   es   linkpath(    (    s$   /mit/python/lib/python2.3/tarfile.pys   makelinkş  s&     		c         C   s  t  o  t t d  o t i   d j o\y t i | i  d } WnO t	 j
 oC y t i
 | i  d } Wq t	 j
 o t i   } q Xn Xy t  i | i  d } WnO t	 j
 oC y t  i | i  d } Wqt	 j
 o t i   } qXn Xy_ | i   o t t d  o t i | | |  n( t i d j o t i | | |  n Wqt j
 o } t d  qXn d S(   s6   Set owner of targetpath according to tarinfo.
        s   geteuidi    i   s   lchowns   os2emxs   could not change ownerN(   s   pwds   hasattrs   oss   geteuids   grps   getgrnams   tarinfos   gnames   gs   KeyErrors   getgrgids   gids   getgids   getpwnams   unames   us   getpwuids   uids   getuids   issyms   lchowns
   targetpaths   syss   platforms   chowns   EnvironmentErrors   es   ExtractError(   s   selfs   tarinfos
   targetpaths   es   gs   u(    (    s$   /mit/python/lib/python2.3/tarfile.pys   chownÔ  s.     *c         C   sP   t  t d  o< y t i | | i  WqL t j
 o } t d  qL Xn d S(   sA   Set file permissions of targetpath according to tarinfo.
        s   chmods   could not change modeN(	   s   hasattrs   oss   chmods
   targetpaths   tarinfos   modes   EnvironmentErrors   es   ExtractError(   s   selfs   tarinfos
   targetpaths   e(    (    s$   /mit/python/lib/python2.3/tarfile.pys   chmodđ  s     c         C   s   t  t d  o d Sn t i d j o
 | i   o d Sn y  t i | | i | i f  Wn t	 j
 o } t d  n Xd S(   sB   Set modification time of targetpath according to tarinfo.
        s   utimeNs   win32s"   could not change modification time(   s   hasattrs   oss   syss   platforms   tarinfos   isdirs   utimes
   targetpaths   mtimes   EnvironmentErrors   es   ExtractError(   s   selfs   tarinfos
   targetpaths   e(    (    s$   /mit/python/lib/python2.3/tarfile.pys   utimeů  s      c         C   sa  |  i d  |  i t j	 o |  i } t |  _ | Sn |  i i |  i d  xŕ t oŘ |  i i	 t
  } | o t Sn y t i |  } Wn t j
 o |  i oY | i t  t
 j o
 d } n d } |  i d d |  i | f  |  i t
 7_ qQ q+|  i d d j o t d  n t Sn XPqQ W| i t |  j o |  i d	 d
 | i  n |  i | _ |  i t
 7_ | i |  i j o |  i | i |  |  } nI |  i | _ | i   p | i t j o |  i |  i | i   7_ n | i   o | i d  d j o t! | _ n |  i" i# |  |  i$ i# | i  |  i i# |  i  | Sd S(   s¨   Return the next member of the archive as a TarInfo object, when
           TarFile is opened for reading. Return None if there is no more
           available.
        s   rai˙˙˙˙s   emptys   invalidi   s   0x%X: %s blocki    s$   empty, unreadable or compressed filei   s   tarfile: Bad Checksum %rs   /N(%   s   selfs   _checks   firstmembers   Nones   ms   fileobjs   seeks   chunkss   Trues   reads	   BLOCKSIZEs   bufs   TarInfos   frombufs   tarinfos
   ValueErrors   ignore_zeross   counts   NULs   adjs   _dbgs   offsets	   ReadErrors   chksums   calc_chksums   names   types	   TYPE_METHs   offset_datas   isregs   SUPPORTED_TYPESs   _blocks   sizes   DIRTYPEs   memberss   appends   membernames(   s   selfs   ms   bufs   tarinfos   adj(    (    s$   /mit/python/lib/python2.3/tarfile.pys   next	  sR     		 

	!c         C   sW  d } t } t } | i } xG | d j o9 |  i i	 t
  } | | 7} |  i t
 7_ | t
 8} q W| i t j o t |  } n | i t j o t |  } n |  i i	 t
  } t i |  } |  i | _ |  i t
 7_ |  i | _ | p | i | _ | p | i | _ | i   p | i t j o |  i |  i | i  7_ n | Sd S(   sT   Evaluate the blocks that hold a GNU longname
           or longlink member.
        s    i    N(   s   bufs   Nones   names   linknames   tarinfos   sizes   counts   selfs   fileobjs   reads	   BLOCKSIZEs   blocks   offsets   types   GNUTYPE_LONGNAMEs   ntss   GNUTYPE_LONGLINKs   TarInfos   frombufs   offset_datas   isregs   SUPPORTED_TYPESs   _block(   s   selfs   tarinfos   counts   names   blocks   linknames   buf(    (    s$   /mit/python/lib/python2.3/tarfile.pys   proc_gnulong\  s2     	 
c         C   s  | i   } t   } d } d } d } xÉ t d  D]ť }	 y< t
 | | | d !d  } t
 | | d | d !d  } Wn t j
 o Pn X| | j o | i t | | |   n | i t | | |   | | 7} | | } | d 7} q4 Wt | d  }
 t
 | d d	 !d  } x|
 d
 j o|  i i t  } |  i t 7_ d } xÉ t d  D]ť }	 y< t
 | | | d !d  } t
 | | d | d !d  } Wn t j
 o Pn X| | j o | i t | | |   n | i t | | |   | | 7} | | } | d 7} q]Wt | d  }
 qW| | j  o | i t | | |   n | | _ |  i | _ |  i |  i | i  7_ | | _ | Sd S(   s8   Analyze a GNU sparse header plus extra headers.
        i  l    i   i   i   i   iâ  iă  iď  i   i    i   iř  N(   s   tarinfos   tobufs   bufs   _ringbuffers   sps   poss   lastposs   realposs   xranges   is   ints   offsets   numbytess
   ValueErrors   appends   _holes   _datas   ords
   isextendeds   origsizes   selfs   fileobjs   reads	   BLOCKSIZEs   sparses   offset_datas   _blocks   size(   s   selfs   tarinfos   origsizes   realposs   numbytess   lastposs   sps   poss   offsets   is
   isextendeds   buf(    (    s$   /mit/python/lib/python2.3/tarfile.pys   proc_sparse}  s^     	 "

  "

		c         C   s6   t  | t  \ } } | o | d 7} n | t Sd S(   s_   Round up a byte count by BLOCKSIZE and return it,
           e.g. _block(834) => 1024.
        i   N(   s   divmods   counts	   BLOCKSIZEs   blockss	   remainder(   s   selfs   counts   blockss	   remainder(    (    s$   /mit/python/lib/python2.3/tarfile.pys   _blockÁ  s
     c         C   sz   | t j o t |  i  } n |  i i |  } xA t | d d d  D]) } | |  i
 | j o |  i | SqI qI Wd S(   s}   Find an archive member by name from bottom to top.
           If tarinfo is given, it is used as the starting point.
        i   i˙˙˙˙N(   s   tarinfos   Nones   lens   selfs   memberss   ends   indexs   xranges   is   names   membernames(   s   selfs   names   tarinfos   ends   i(    (    s$   /mit/python/lib/python2.3/tarfile.pys
   _getmemberĘ  s      c         C   s:   x* t  o" |  i   } | t j o Pq q Wt  |  _ d S(   sW   Read through the entire archive file and look for readable
           members.
        N(   s   Trues   selfs   nexts   tarinfos   Nones   _loaded(   s   selfs   tarinfo(    (    s$   /mit/python/lib/python2.3/tarfile.pys   _load×  s      
c         C   sV   |  i o t d |  i i  n | t j	 o |  i | j o t d |  i  n d S(   sn   Check if TarFile is still open, and if the operation's mode
           corresponds to TarFile's mode.
        s   %s is closeds   bad operation for mode %rN(   s   selfs   closeds   IOErrors	   __class__s   __name__s   modes   Nones   _mode(   s   selfs   mode(    (    s$   /mit/python/lib/python2.3/tarfile.pys   _checká  s
     
c         C   s)   |  i o t |  i  Sn t |   Sd S(   s$   Provide an iterator object.
        N(   s   selfs   _loadeds   iters   memberss   TarIter(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __iter__ę  s     
c         C   sť   t    } d | _ | | _ d | _ t |  | _ |  i i	 | i
    |  i i	 |  t | i t  \ } } | d j o& |  i i	 t t |  | d 7} n |  i | t 7_ d S(   s˙   Write a GNU longname/longlink member to the TarFile.
           It consists of an extended tar header, with the length
           of the longname as size, followed by data blocks,
           which contain the longname as a null terminated string.
        s   ././@LongLinki    i   N(   s   TarInfos   tarinfos   names   types   modes   lens   sizes   selfs   fileobjs   writes   tobufs   divmods	   BLOCKSIZEs   blockss	   remainders   NULs   offset(   s   selfs   names   types   blockss	   remainders   tarinfo(    (    s$   /mit/python/lib/python2.3/tarfile.pys   _create_gnulongň  s     				c         C   s%   | |  i j o t i | IJn d S(   s.   Write debugging output to sys.stderr.
        N(   s   levels   selfs   debugs   syss   stderrs   msg(   s   selfs   levels   msg(    (    s$   /mit/python/lib/python2.3/tarfile.pys   _dbg  s     (6   s   __name__s
   __module__s   __doc__s   debugs   Falses   dereferences   ignore_zeross
   errorlevels   Trues   posixs   ExFileObjects
   fileobjects   Nones   __init__s   opens   classmethods   taropens   gzopens   bz2opens	   OPEN_METHs   closes	   getmembers
   getmemberss   getnamess
   gettarinfos   lists   adds   addfiles   extracts   extractfiles   _extract_members   makedirs   makefiles   makeunknowns   makefifos   makedevs   makelinks   chowns   chmods   utimes   nexts   proc_gnulongs   proc_sparses   GNUTYPE_LONGNAMEs   GNUTYPE_LONGLINKs   GNUTYPE_SPARSEs	   TYPE_METHs   _blocks
   _getmembers   _loads   _checks   __iter__s   _create_gnulongs   _dbg(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   TarFileî  s`    EA$!				
		`5A	'	:													S	!	;!				
			s   TarIterc           B   s)   t  Z d  Z d   Z d   Z d   Z RS(   sM   Iterator Class.

       for tarinfo in TarFile(...):
           suite...
    c         C   s   | |  _  d S(   s$   Construct a TarIter object.
        N(   s   tarfiles   self(   s   selfs   tarfile(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __init__  s     c         C   s   |  Sd S(   s    Return iterator object.
        N(   s   self(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __iter__  s     c         C   s5   |  i i   } | o t |  i _ t  n | Sd S(   s   Return the next item using TarFile's next() method.
           When all members have been read, set TarFile as _loaded.
        N(   s   selfs   tarfiles   nexts   tarinfos   Trues   _loadeds   StopIteration(   s   selfs   tarinfo(    (    s$   /mit/python/lib/python2.3/tarfile.pys   next  s     
(   s   __name__s
   __module__s   __doc__s   __init__s   __iter__s   next(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   TarIter  s    		s   _sectionc           B   s    t  Z d  Z d   Z d   Z RS(   s$   Base class for _data and _hole.
    c         C   s   | |  _  | |  _ d  S(   N(   s   offsets   selfs   size(   s   selfs   offsets   size(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __init__,  s    	c         C   s,   |  i | j o |  i |  i j  n Sd  S(   N(   s   selfs   offsets   size(   s   selfs   offset(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __contains__/  s    (   s   __name__s
   __module__s   __doc__s   __init__s   __contains__(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   _section)  s    	s   _datac           B   s   t  Z d  Z d   Z RS(   s/   Represent a data section in a sparse file.
    c         C   s    t  i |  | |  | |  _ d  S(   N(   s   _sections   __init__s   selfs   offsets   sizes   realpos(   s   selfs   offsets   sizes   realpos(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __init__5  s    (   s   __name__s
   __module__s   __doc__s   __init__(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   _data2  s    s   _holec           B   s   t  Z d  Z RS(   s/   Represent a hole section in a sparse file.
    (   s   __name__s
   __module__s   __doc__(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   _hole9  s    s   _ringbufferc           B   s    t  Z d  Z d   Z d   Z RS(   sM   Ringbuffer class which increases performance
       over a regular list.
    c         C   s   d |  _ d  S(   Ni    (   s   selfs   idx(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __init__B  s    c         C   s   |  i } xg t o_ |  | } | | j o Pn | d 7} | t |   j o
 d } n | |  i j o t Sq q W| |  _ | Sd  S(   Ni   i    (   s   selfs   idxs   Trues   items   offsets   lens   None(   s   selfs   offsets   idxs   item(    (    s$   /mit/python/lib/python2.3/tarfile.pys   findD  s    	 


	(   s   __name__s
   __module__s   __doc__s   __init__s   find(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   _ringbuffer>  s    	i    s   TarFileCompatc           B   st   t  Z d  Z d e d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 e e d	  Z d
   Z d   Z RS(   sR   TarFile class compatible with standard module zipfile's
       ZipFile class.
    s   rc         C   sŘ   | t j o t i | |  |  _ n0 | t j o t i	 | |  |  _ n
 t
 d  | d d !d j ok |  i i   } xY t t |   D]A } | | } | i | _ | i | _ t i | i  d  | _ q Wn d  S(   Ns   unknown compression constanti    i   s   ri   (   s   compressions	   TAR_PLAINs   TarFiles   taropens   files   modes   selfs   tarfiles   TAR_GZIPPEDs   gzopens
   ValueErrors
   getmemberss   memberss   xranges   lens   is   ms   names   filenames   sizes	   file_sizes   times   gmtimes   mtimes	   date_time(   s   selfs   files   modes   compressions   is   ms   members(    (    s$   /mit/python/lib/python2.3/tarfile.pys   __init__\  s    	 
c         C   s   t  d   |  i    Sd  S(   Nc         C   s   |  i S(   N(   s   ms   name(   s   m(    (    s$   /mit/python/lib/python2.3/tarfile.pys   <lambda>k  s    (   s   maps   selfs   infolist(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   namelistj  s    c         C   s   t  d   |  i i    Sd  S(   Nc         C   s   |  i t j S(   N(   s   ms   types   REGULAR_TYPES(   s   m(    (    s$   /mit/python/lib/python2.3/tarfile.pys   <lambda>m  s    (   s   filters   selfs   tarfiles
   getmembers(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   infolistl  s    	c         C   s   |  i i   d  S(   N(   s   selfs   tarfiles   list(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   printdiro  s    c         C   s   d  Sd  S(   N(    (   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   testzipq  s    c         C   s   |  i i |  Sd  S(   N(   s   selfs   tarfiles	   getmembers   name(   s   selfs   name(    (    s$   /mit/python/lib/python2.3/tarfile.pys   getinfos  s    c         C   s&   |  i i |  i i |   i   Sd  S(   N(   s   selfs   tarfiles   extractfiles	   getmembers   names   read(   s   selfs   name(    (    s$   /mit/python/lib/python2.3/tarfile.pys   readu  s    c         C   s   |  i i | |  d  S(   N(   s   selfs   tarfiles   adds   filenames   arcname(   s   selfs   filenames   arcnames   compress_type(    (    s$   /mit/python/lib/python2.3/tarfile.pys   writew  s    c         C   s_   d  k  } d  k } | i | _ | i | _ | i | i  | _	 |  i i | | i  |   d  S(   N(   s   StringIOs   calendars   zinfos   filenames   names	   file_sizes   sizes   timegms	   date_times   mtimes   selfs   tarfiles   addfiles   bytes(   s   selfs   zinfos   bytess   StringIOs   calendar(    (    s$   /mit/python/lib/python2.3/tarfile.pys   writestry  s    		c         C   s   |  i i   d  S(   N(   s   selfs   tarfiles   close(   s   self(    (    s$   /mit/python/lib/python2.3/tarfile.pys   close  s    (   s   __name__s
   __module__s   __doc__s	   TAR_PLAINs   __init__s   namelists   infolists   printdirs   testzips   getinfos   reads   Nones   writes   writestrs   close(    (    (    s$   /mit/python/lib/python2.3/tarfile.pys   TarFileCompatX  s    							c         C   s<   y t  |   } | i   t SWn t j
 o t Sn Xd S(   sf   Return True if name points to a tar archive that we
       are able to handle, else return False.
    N(   s   opens   names   ts   closes   Trues   TarErrors   False(   s   names   t(    (    s$   /mit/python/lib/python2.3/tarfile.pys
   is_tarfile  s     
(\   s   __doc__s   __version__s   versions
   __author__s   __date__s	   __cvsid__s   __credits__s   syss   oss   shutils   stats   errnos   times   structs   platforms   ImportErrors   grps   pwds   Nones   __all__s   NULs	   BLOCKSIZEs
   RECORDSIZEs   MAGICs   VERSIONs   LENGTH_NAMEs   LENGTH_LINKs   LENGTH_PREFIXs   MAXSIZE_MEMBERs   REGTYPEs   AREGTYPEs   LNKTYPEs   SYMTYPEs   CHRTYPEs   BLKTYPEs   DIRTYPEs   FIFOTYPEs   CONTTYPEs   GNUTYPE_LONGNAMEs   GNUTYPE_LONGLINKs   GNUTYPE_SPARSEs   SUPPORTED_TYPESs   REGULAR_TYPESs   S_IFLNKs   S_IFREGs   S_IFBLKs   S_IFDIRs   S_IFCHRs   S_IFIFOs   TSUIDs   TSGIDs   TSVTXs   TUREADs   TUWRITEs   TUEXECs   TGREADs   TGWRITEs   TGEXECs   TOREADs   TOWRITEs   TOEXECs   ntss   calc_chksums   copyfileobjs   filemode_tables   filemodes   seps   normpaths   paths	   Exceptions   TarErrors   ExtractErrors	   ReadErrors   CompressionErrors   StreamErrors   _LowLevelFiles   _Streams   objects   ExFileObjects   TarInfos   TarFiles   TarIters   _sections   _datas   _holes   lists   _ringbuffers	   TAR_PLAINs   TAR_GZIPPEDs   TarFileCompats
   is_tarfiles   open(S   s   CompressionErrors   structs   S_IFDIRs   TarFiles   _LowLevelFiles   MAGICs   _Streams   VERSIONs   REGTYPEs   TarFileCompats   REGULAR_TYPESs   S_IFCHRs   __date__s   TUREADs	   TAR_PLAINs   StreamErrors   FIFOTYPEs   TSGIDs   TUEXECs   TGREADs   ExFileObjects   MAXSIZE_MEMBERs   copyfileobjs   TGEXECs   __all__s   S_IFBLKs   LNKTYPEs   versions   BLKTYPEs   GNUTYPE_LONGLINKs   ntss   calc_chksums   GNUTYPE_SPARSEs   TGWRITEs	   ReadErrors   filemode_tables   _ringbuffers	   BLOCKSIZEs   oss   TarErrors   TSUIDs   SYMTYPEs   S_IFLNKs   _holes   opens   GNUTYPE_LONGNAMEs
   RECORDSIZEs   __credits__s   DIRTYPEs   errnos   NULs   S_IFREGs   S_IFIFOs
   __author__s   TarIters   pwds   LENGTH_LINKs   _sections   CONTTYPEs   filemodes   TOREADs   shutils   TUWRITEs   TOEXECs   ExtractErrors   LENGTH_PREFIXs   __version__s   CHRTYPEs   stats
   is_tarfiles   syss   TSVTXs   _datas   SUPPORTED_TYPESs   LENGTH_NAMEs   TAR_GZIPPEDs   grps   TOWRITEs	   __cvsid__s   normpaths   AREGTYPEs   times   TarInfo(    (    s$   /mit/python/lib/python2.3/tarfile.pys   ?   sş   							
*		Ž	Ö˙ ˙ ˙ ˙ %	/	