
Nc           @   s#  d  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 y d d k	 l
 Z
 l Z Wn e j
 o e Z Z
 n Xy d d k	 l Z Wn e j
 o e Z n Xd d k Z d d k Z d d k l Z d d k l Z l Z l Z d d d	 d
 d d d f Z d   Z d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d	 e f d     YZ d e
 f d     YZ  d e f d     YZ! d e f d     YZ" d
 e f d     YZ# d   Z$ e% d j o e$   n d S(   s"   Functionality related to packages.iN(   t   Mappingt   Sequence(   R   (   t   gettext(   t   function_deprecated_byt   AttributeDeprecatedByt   deprecated_argst   BaseDependencyt
   Dependencyt   Origint   Packaget   Recordt   Versiont   VersionListc         C   sQ   t  i i |   o: t  i i |   | j o! t i t |    | j o t Sd S(   s(   Return ``True`` if the file is the same.N(   t   ost   patht   existst   getsizet   apt_pkgt   md5sumt   opent   True(   R   t   sizet   md5(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   _file_is_same3   s    ,t
   FetchErrorc           B   s   e  Z d  Z RS(   s(   Raised when a file could not be fetched.(   t   __name__t
   __module__t   __doc__(    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR   :   s   c           B   sS   e  Z d  Z d e f d     YZ d d  Z d   Z e i	 o e
 d  Z n RS(   sN  A single dependency.

    Attributes defined here:
        name       - The name of the dependency
        relation   - The relation (>,>=,==,<,<=,)
        version    - The version depended on
        rawtype   - The type of the dependendy (e.g. 'Recommends')
        pre_depend - Boolean value whether this is a pre-dependency.
    t   __dstrc           B   s    e  Z d  Z d   Z d   Z RS(   s(   Helper to make > match >> and < match <<c         C   s'   t  i |  |  p t  i d |  |  S(   Ni   (   t   strt   __eq__(   t   selft   other(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR   L   s    c         C   s'   t  i |  |  o t  i d |  |  S(   Ni   (   R   R   t   __ne__(   R   R    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR!   O   s    (   R   R   R   R   R!   (    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR   I   s   	c         C   sT   | |  _  t |  d j o |  i |  p | |  _ | |  _ | |  _ | |  _ d  S(   Ni   (   t   namet   lent   _BaseDependency__dstrt   relationt   versiont
   pre_dependt   rawtype(   R   R"   t   relt   vert   preR(   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __init__R   s
    	,		c         C   s    d |  i  |  i |  i |  i f S(   Ns=   <BaseDependency: name:%r relation:%r version:%r preDepend:%r>(   R"   R%   R&   R'   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __repr__Y   s    R'   N(   R   R   R   R   R$   t   NoneR,   R-   R   t   _COMPAT_0_7R   t	   preDepend(    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR   >   s   			
c           B   s    e  Z d  Z d   Z d   Z RS(   sx   Represent an Or-group of dependencies.

    Attributes defined here:
        or_dependencies - The possible choices
    c         C   s   | |  _  d  S(   N(   t   or_dependencies(   R   t   alternatives(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR,   h   s    c         C   s   t  |  i  S(   N(   t   reprR1   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR-   k   s    (   R   R   R   R,   R-   (    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR   a   s   	t   DeprecatedPropertyc           B   s/   e  Z d  Z d d d d d  Z d d  Z RS(   s   A property which gives DeprecationWarning on access.

    This is only used for providing the properties in Package, which have been
    replaced by the ones in Version.
    c         C   s7   t  i |  | | | |  | p | i p d |  _ d  S(   Nt    (   t   propertyR,   R   (   R   t   fgett   fsett   fdelt   doc(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR,   v   s    c         C   sg   | d  j	 oG d t i j o7 t i d | i i p | i |  i i f t d  n t	 i
 |  | |  S(   Nt   PYTHON_APT_DEPRECATION_WARNINGSsR   Accessed deprecated property %s.%s, please see the Version class for alternatives.i   (   R.   R   t   environt   warningst   warnt	   __class__R   R7   t   DeprecationWarningR6   t   __get__(   R   t   objt   type_(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRA   z   s
    	N(   R   R   R   R.   R,   RA   (    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR4   o   s   c           B   s    e  Z d  Z d   Z d   Z RS(   sy  The origin of a version.

    Attributes defined here:
        archive   - The archive (eg. unstable)
        component - The component (eg. main)
        label     - The Label, as set in the Release file
        origin    - The Origin, as set in the Release file
        site      - The hostname of the site.
        trusted   - Boolean value whether this is trustworthy.
    c         C   s   | i  |  _  | i |  _ | i |  _ | i |  _ | i |  _ | i |  _ | i i i |  } | o | i	 o t
 |  _ n
 t |  _ d  S(   N(   t   archivet	   componentt   labelt   origint   sitet   not_automatict   _pcachet   _listt
   find_indext
   is_trustedR   t   trustedt   False(   R   t   pkgt   packagefilet	   indexfile(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR,      s    c         C   s,   d |  i  |  i |  i |  i |  i |  i f S(   NsH   <Origin component:%r archive:%r origin:%r label:%r site:%r isTrusted:%r>(   RE   RD   RG   RF   RH   RN   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR-      s    (   R   R   R   R,   R-   (    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR      s   
	c           B   sk   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d d  Z d	   Z d
   Z RS(   s   Represent a pkgRecord.

    It can be accessed like a dictionary and can also give the original package
    record if accessed as a string.
    c         C   s   t  i |  |  _ d  S(   N(   R   t
   TagSectiont   _rec(   R   t
   record_str(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR,      s    c         C   s   t  |  i  S(   N(   t   hashRT   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __hash__   s    c         C   s   t  |  i  S(   N(   R   RT   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __str__   s    c         C   s   |  i  | S(   N(   RT   (   R   t   key(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __getitem__   s    c         C   s   | |  i  j S(   N(   RT   (   R   RY   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __contains__   s    c         C   s   t  |  i i    S(   N(   t   iterRT   t   keys(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __iter__   s    c         c   s0   x) |  i  i   D] } | |  i  | f Vq Wd S(   s6   An iterator over the (key, value) items of the record.N(   RT   R]   (   R   RY   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt	   iteritems   s     c         C   s   |  i  i | |  S(   s   Return record[key] if key in record, else *default*.

        The parameter *default* must be either a string or None.
        (   RT   t   get(   R   RY   t   default(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR`      s    c         C   s   | |  i  j S(   s    deprecated form of ``key in x``.(   RT   (   R   RY   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   has_key   s    c         C   s   t  |  i  S(   N(   R#   RT   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __len__   s    N(   R   R   R   R,   RW   RX   RZ   R[   R^   R_   R.   R`   Rb   Rc   (    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR
      s   								c           B   s  e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z d   Z e d    Z e d    Z e d    Z  e d    Z! e d    Z" e d     Z# e d!    Z$ e d"    Z% d#   Z& e d$    Z' e d%    Z( d& d) d'  Z* d& d) e+ d(  Z, RS(*   sF   Representation of a package version.

    .. versionadded:: 0.7.9
    c         C   s   | |  _  | |  _ d  S(   N(   t   packaget   _cand(   R   Rd   t   cand(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR,      s    	c         C   sJ   y t  i |  i i | i  SWn& t j
 o t  i |  i i |  SXd  S(   N(   R   t   version_compareRe   t   ver_strR&   t   AttributeError(   R   R    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   _cmp   s    c         C   s2   y |  i  |  d j SWn t j
 o t SXd  S(   Ni    (   Rj   t	   TypeErrort   NotImplemented(   R   R    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR      s    c         C   s2   y |  i  |  d j SWn t j
 o t SXd  S(   Ni    (   Rj   Rk   Rl   (   R   R    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __ge__   s    c         C   s2   y |  i  |  d j SWn t j
 o t SXd  S(   Ni    (   Rj   Rk   Rl   (   R   R    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __gt__   s    c         C   s2   y |  i  |  d j SWn t j
 o t SXd  S(   Ni    (   Rj   Rk   Rl   (   R   R    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __le__   s    c         C   s2   y |  i  |  d j  SWn t j
 o t SXd  S(   Ni    (   Rj   Rk   Rl   (   R   R    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __lt__   s    c         C   s2   y |  i  |  d j SWn t j
 o t SXd  S(   Ni    (   Rj   Rk   Rl   (   R   R    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR!      s    c         C   s
   |  i  i S(   N(   Re   RV   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRW     s    c         C   s   d |  i  i |  i f S(   Ns    <Version: package:%r version:%r>(   Rd   R"   R&   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR-     s    c         C   s5   |  i  i i i |  i i d  o |  i  i i Sd S(   s=   Internal helper that moves the Records to the right position.i    N(   Rd   RJ   t   _recordst   lookupRe   t	   file_list(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRq     s    #c         C   s;   |  i  i } |  i i i i | i i d   |  i i i S(   s2   Internal helper to get the translated description.i    (   Re   t   translated_descriptionRd   RJ   Rq   Rr   Rs   t   pop(   R   t	   desc_iter(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   _translated_records  s    "c         C   s
   |  i  i S(   s.   Return the size of the package when installed.(   Re   t   installed_size(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRx     s    c         C   s
   |  i  i S(   s$   Return the homepage for the package.(   Rq   t   homepage(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRy     s    c         C   s
   |  i  i S(   s   Return the size of the package.(   Re   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR   #  s    c         C   s
   |  i  i S(   s/   Return the architecture of the package version.(   Re   t   arch(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   architecture(  s    c         C   s   t  |  i i  S(   s:   Return whether the version of the package is downloadable.(   t   boolRe   t   downloadable(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR}   -  s    c         C   s
   |  i  i S(   s   Return the version as a string.(   Re   Rh   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR&   2  s    c         C   s
   |  i  i S(   s0   Return the short description (one line summary).(   Rw   t
   short_desc(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   summary7  s    c         C   s
   |  i  i S(   s"   return the long description (raw).(   Rq   t	   long_desc(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   raw_description<  s    c         C   s
   |  i  i S(   s"   Return the section of the package.(   Re   t   section(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR   A  s    c         C   sm  d } |  i  i } y' t | t  p t | d  } n Wn, t j
 o  } t d  |  i i | f SXt | i	 d   } | i
   x | D] } | i   d j o% | i d  p | d 7} q q n | i d  o4 | i d  p d | d	 } q[d
 | d	 } nL | i d  o5 | i d  p | d j o | d } q[| } n | } | | 7} q W| S(   s   Return the formatted long description.

        Return the formated long description according to the Debian policy
        (Chapter 5.6.13).
        See http://www.debian.org/doc/debian-policy/ch-controlfields.html
        for more information.
        R5   s   utf-8s<   Invalid unicode in description for '%s' (%s). Please report.s   
t   .s   

s     s   
%s
i   s   %s
t    i   (   Rw   R   t
   isinstancet   unicodet   UnicodeDecodeErrort   _Rd   R"   R\   t   splitt   nextt   stript   endswitht
   startswith(   R   t   desct   dsct   errt   linest   raw_linet   line(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   descriptionF  s6    		
 
c         C   s<   y |  i  i p
 |  i i SWn t j
 o |  i i SXd S(   s&   Return the name of the source package.N(   Rq   t
   source_pkgRd   R"   t
   IndexError(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   source_nameu  s    c         C   s
   |  i  i S(   s.   Return the priority of the package, as string.(   Re   t   priority_str(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   priority}  s    c         C   s   t  |  i i  S(   s*   Return a Record() object for this version.(   R
   Rq   t   record(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR     s    c         G   s   g  } |  i  i } x | D] } yw xp | | D]d } g  } xB | D]: } | i t | i i | i | i | d j d |  q@ W| i t |   q- WWq t	 j
 o q Xq W| S(   s8   Return a list of Dependency objects for the given types.t
   PreDependsR(   (
   Re   t   depends_listt   appendR   t
   target_pkgR"   t	   comp_typet
   target_verR   t   KeyError(   R   t   typesR   t   dependsRC   t   dep_ver_listt	   base_depst   dep_or(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   get_dependencies  s$       	c         C   s   |  i  d  S(   s4   Return the list of enhances for the package version.t   Enhances(   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   enhances  s    c         C   s   |  i  d d  S(   s/   Return the dependencies of the package version.R   t   Depends(   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   dependencies  s    c         C   s   |  i  d  S(   s-   Return the recommends of the package version.t
   Recommends(   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt
   recommends  s    c         C   s@   g  } x3 |  i  i D]% \ } } | i t |  i |   q W| S(   s1   Return a list of origins for the package version.(   Re   Rs   R   R   Rd   (   R   t   originsRQ   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR     s
     c         C   s
   |  i  i S(   sZ   Return the path to the file inside the archive.

        .. versionadded:: 0.7.10
        (   Rq   t   filename(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR     s    c         C   s
   |  i  i S(   sK   Return the md5sum of the binary.

        .. versionadded:: 0.7.10
        (   Rq   t   md5_hash(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR     s    c         C   s
   |  i  i S(   sL   Return the sha1sum of the binary.

        .. versionadded:: 0.7.10
        (   Rq   t	   sha1_hash(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   sha1  s    c         C   s
   |  i  i S(   sN   Return the sha256sum of the binary.

        .. versionadded:: 0.7.10
        (   Rq   t   sha256_hash(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   sha256  s    c         c   sX   xQ |  i  i D]C \ } } |  i i i i |  } | o | i |  i i  Vq q Wd S(   sV   Return an iterator over all available urls.

        .. versionadded:: 0.7.10
        N(	   Re   Rs   Rd   RJ   RK   RL   t   archive_uriRq   R   (   R   RQ   R   RR   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   _uris  s
     c         C   s   t  |  i    S(   s^   Return a list of all available uris for the binary.

        .. versionadded:: 0.7.10
        (   t   listR   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   uris  s    c         C   s   t  |  i    i   S(   sN   Return a single URI for the binary.

        .. versionadded:: 0.7.10
        (   R\   R   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   uri  s    R5   c         C   s   t  i i |  i i  } t  i i | |  } t | |  i |  i i  o d G| GHd St	 i
 | p t i i i    } t	 i | |  i |  i i |  i | d | } | i   | i | i j o  t d | i | i f   n |  i i GHt  i i |  S(   se  Fetch the binary version of the package.

        The parameter *destdir* specifies the directory where the package will
        be fetched to.

        The parameter *progress* may refer to an apt_pkg.AcquireProgress()
        object. If not specified or None, apt.progress.text.AcquireProgress()
        is used.

        .. versionadded:: 0.7.10
        s   Ignoring already existing file:Nt   destfiles$   The item %r could not be fetched: %s(   R   R   t   basenameRq   R   t   joinR   R   R   R   t   Acquiret   aptt   progresst   textt   AcquireProgresst   AcquireFileR   t   runt   statust	   STAT_DONER   R   t
   error_textt   abspath(   R   t   destdirR   t   baseR   t   acqt   acqfile(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   fetch_binary  s    	"
c      
   C   sG  t  i   } t  i | p t i i i    } d	 } |  i } | i	 p
 |  i
 i } | i p
 |  i i }	 | i |  }
 x+ |
 o# |	 | i j o | i |  }
 q{ W|
 p t d |    n t   } x | i D] \ } } } } t i i |  } t i i | |  } | d j o
 | } n t | | |  o d G| GHq n | i t  i | | i i |  | | | d |  q W| i   xD | i D]9 } | i | i  j o  t! d | i" | i# f   qqW| o\ | i
 d t  i$ | i  } t i i | |  } t% i& d d | | g  t i i' |  St i i' |  Sd	 S(
   s[  Get the source code of a package.

        The parameter *destdir* specifies the directory where the source will
        be fetched to.

        The parameter *progress* may refer to an apt_pkg.AcquireProgress()
        object. If not specified or None, apt.progress.text.AcquireProgress()
        is used.

        The parameter *unpack* describes whether the source should be unpacked
        (``True``) or not (``False``). By default, it is unpacked.

        If *unpack* is ``True``, the path to the extracted directory is
        returned. Otherwise, the path to the .dsc file is returned.
        s   No source for %rR   s   Ignoring already existing file:R   s$   The item %r could not be fetched: %st   -s   dpkg-sources   -xN((   R   t   SourceRecordsR   R   R   R   R   R.   Rq   R   Rd   R"   t
   source_verRe   Rh   Rr   R&   t
   ValueErrorR   t   filesR   R   R   R   R   R   R   t   indexR   R   t   itemsR   R   R   R   R   t   upstream_versiont
   subprocesst
   check_callR   (   R   R   R   t   unpackt   srcR   R   R   R   t   source_versiont   source_lookupR   R   R   R   RC   R   R   t   itemt   outdir(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   fetch_source  sH    "	 	
 
	

 N(-   R   R   R   R,   Rj   R   Rm   Rn   Ro   Rp   R!   RW   R-   R6   Rq   Rw   Rx   Ry   R   R{   R}   R&   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R.   R   R   R   (    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR      sP   										/		
c           B   se   e  Z d  Z d
 d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d
 d	  Z RS(   s  Provide a mapping & sequence interface to all versions of a package.

    This class can be used like a dictionary, where version strings are the
    keys. It can also be used as a sequence, where integers are the keys.

    You can also convert this to a dictionary or a list, using the usual way
    of dict(version_list) or list(version_list). This is useful if you need
    to access the version objects multiple times, because they do not have to
    be recreated this way.

    Examples ('package.versions' being a version list):
        '0.7.92' in package.versions # Check whether 0.7.92 is a valid version.
        package.versions[0] # Return first version or raise IndexError
        package.versions[0:2] # Return a new VersionList for objects 0-2
        package.versions['0.7.92'] # Return version 0.7.92 or raise KeyError
        package.versions.keys() # All keys, as strings.
        max(package.versions)
    c         C   s7   | |  _  | i i |  _ | o |  i | |  _ n d  S(   N(   t   _packaget   _pkgt   version_listt	   _versions(   R   Rd   t   slice_(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR,   R  s    	c         C   s   t  | t  o |  i |  i |  Sy t |  i |  i |  SWnH t j
 o< x7 |  i D]' } | i | j o t |  i |  SqZ Wn Xt d |   d  S(   Ns   Version: %r not found.(	   R   t   sliceR?   R   R   R   Rk   Rh   R   (   R   R   R*   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRZ   X  s    
 c         C   s   d |  i    S(   Ns   <VersionList: %r>(   R]   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR-   e  s    c            s     f d     i  D S(   s*   Return an iterator over all value objects.c         3   s%   x |  ] } t    i |  Vq Wd  S(   N(   R   R   (   t   .0R*   (   R   (    s/   /usr/lib/python2.6/dist-packages/apt/package.pys	   <genexpr>j  s   	 (   R   (   R   (    (   R   s/   /usr/lib/python2.6/dist-packages/apt/package.pyR^   h  s    c         C   sJ   t  | t  o | i } n x& |  i D] } | i | j o t Sq' Wt S(   N(   R   R   R&   R   Rh   R   RO   (   R   R   R*   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR[   l  s    
 	c         C   s   t  |   t  |  j S(   N(   R   (   R   R    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR   u  s    c         C   s   t  |  i  S(   N(   R#   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRc   x  s    c         C   s%   g  } |  i  D] } | | i q ~ S(   s*   Return a list of all versions, as strings.(   R   Rh   (   R   t   _[1]R*   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR]   }  s    c         C   s'   y |  | SWn t  j
 o | SXd S(   s   Return the key or the default.N(   t   LookupError(   R   RY   Ra   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR`     s    N(   R   R   R   R.   R,   RZ   R-   R^   R[   R   Rc   R]   R`   (    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR   >  s   								c           B   s  e  Z d  Z d   Z d   Z d   Z d   Z e e e  Z e d    Z e d    Z	 e d    Z
 d   Z e d	    Z e d
    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z  e d    Z! e d    Z" e d    Z# e d     Z$ e d!    Z% e d"    Z& e d#    Z' e d$    Z( e d%    Z) e d&    Z* e d'    Z+ e d(    Z, e d)    Z- d@ d@ d*  Z/ e d+    Z0 e d,    Z1 e d-    Z2 e d.    Z3 d/   Z4 e5 e6 e7 d0   Z8 e5 e6 e6 e6 d1   Z9 d2   Z: e6 d3  Z; d4   Z< e= i> pC [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [) [* [+ [, [0 n e? d5  Z@ e? d6  ZA e? d7  ZB e? d8  ZC e? d9  ZD e? d:  ZE e? d;  ZF e? d<  ZG e? d=  ZH e? d>  ZI e? d?  ZJ eK e/  ZL eK e8  ZM eK e9  ZN eK e4  ZO eK e:  ZP RS(A   s   Representation of a package in a cache.

    This class provides methods and properties for working with a package. It
    lets you mark the package for installation, check if it is installed, and
    much more.
    c         C   s   | |  _  | |  _ d |  _ d S(   s    Init the Package object R5   N(   R   RJ   t
   _changelog(   R   t   pcachet   pkgiter(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR,     s    		c         C   s   d |  i  i |  i  i f S(   Ns   <Package: name:%r id:%r>(   R   R"   t   id(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR-     s    c         C   s7   |  i  i i |  i  } | d j	 o t |  |  Sd S(   s   Return the candidate version of the package.

        This property is writeable to allow you to set the candidate version
        of the package. Just assign a Version() object, and it will be set as
        the candidate version.
        N(   RJ   t	   _depcachet   get_candidate_verR   R.   R   (   R   Rf   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt	   candidate  s    c         C   s:   |  i  i   |  i  i i |  i | i  |  i  i   d S(   s)   Set the candidate version of the package.N(   RJ   t   cache_pre_changeR   t   set_candidate_verR   Re   t   cache_post_change(   R   R&   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   __set_candidate  s    c         C   s+   |  i  i d j	 o t |  |  i  i  Sd S(   s`   Return the currently installed version of the package.

        .. versionadded:: 0.7.9
        N(   R   t   current_verR.   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt	   installed  s    c         C   s
   |  i  i S(   s   Return the name of the package.(   R   R"   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR"     s    c         C   s
   |  i  i S(   sn   Return a uniq ID for the package.

        This can be used eg. to store additional information about the pkg.(   R   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR     s    c         C   s
   |  i  i S(   s[   Return the hash of the object.

        This returns the same value as ID, which is unique.(   R   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRW     s    c         C   s
   |  i  i S(   s>   Return True if the package is an essential part of the system.(   R   t	   essential(   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR     s    c         C   s   t  |  i d d  S(   sF   Return the installed version as string.

        .. deprecated:: 0.7.9R&   N(   t   getattrR   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   installedVersion  s    c         C   s   t  |  i d d  S(   sF   Return the candidate version as string.

        .. deprecated:: 0.7.9R&   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   candidateVersion  s    c         C   s   t  |  i d d  S(   sP   Return a list of candidate dependencies.

        .. deprecated:: 0.7.9
        R   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   candidateDependencies  s    c         C   s   t  |  i d g   S(   sP   Return a list of installed dependencies.

        .. deprecated:: 0.7.9
        R   (   R   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   installedDependencies  s    c         C   s   t  |  i d d  S(   sO   Return the Architecture of the package.

        .. deprecated:: 0.7.9
        R{   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR{     s    c         C   s   t  |  i d d  S(   sY   Return ``True`` if the candidate is downloadable.

        .. deprecated:: 0.7.9
        R}   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   candidateDownloadable  s    c         C   s   t  |  i d t  S(   sa   Return ``True`` if the installed version is downloadable.

        .. deprecated:: 0.7.9
        R}   (   R   R   RO   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   installedDownloadable  s    c         C   ss   y |  i  i i p
 |  i i SWnN t j
 oB y |  i i i p
 |  i i SWqo t j
 o |  i i SXn Xd S(   sQ   Return the source package name as string.

        .. deprecated:: 0.7.9
        N(   R   Rq   R   R   R"   Ri   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   sourcePackageName  s    c         C   s   t  |  i d d  S(   sL   Return the homepage field as string.

        .. deprecated:: 0.7.9
        Ry   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRy     s    c         C   s
   |  i  i S(   s"   Return the section of the package.(   R   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR     s    c         C   s   t  |  i d d  S(   sW   Return the priority (of the candidate version).

        .. deprecated:: 0.7.9
        R   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR     s    c         C   s   t  |  i d d  S(   sW   Return the priority (of the installed version).

        .. deprecated:: 0.7.9
        R   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   installedPriority&  s    c         C   s   t  |  i d d  S(   sX   Return the short description (one line summary).

        .. deprecated:: 0.7.9
        R   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR   .  s    c         C   s   t  |  i d d  S(   s  Return the formatted long description.

        Return the formated long description according to the Debian policy
        (Chapter 5.6.13).
        See http://www.debian.org/doc/debian-policy/ch-controlfields.html
        for more information.

        .. deprecated:: 0.7.9
        R   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR   6  s    c         C   s   t  |  i d d  S(   sA   return the long description (raw).

        .. deprecated:: 0.7.9R   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   rawDescriptionC  s    c         C   s   t  |  i d d  S(   sY   Return the Record of the candidate version of the package.

        .. deprecated:: 0.7.9R   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   candidateRecordJ  s    c         C   s   t  |  i d d  S(   sY   Return the Record of the candidate version of the package.

        .. deprecated:: 0.7.9R   R5   (   R   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   installedRecordQ  s    c         C   s   |  i  i i |  i  S(   s5   Return ``True`` if the package is marked for install.(   RJ   R   t   marked_installR   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR  Z  s    c         C   s   |  i  i i |  i  S(   s5   Return ``True`` if the package is marked for upgrade.(   RJ   R   t   marked_upgradeR   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR  _  s    c         C   s   |  i  i i |  i  S(   s4   Return ``True`` if the package is marked for delete.(   RJ   R   t   marked_deleteR   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR  d  s    c         C   s   |  i  i i |  i  S(   s2   Return ``True`` if the package is marked for keep.(   RJ   R   t   marked_keepR   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR  i  s    c         C   s   |  i  i i |  i  S(   s!    Package is marked for downgrade (   RJ   R   t   marked_downgradeR   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR  n  s    c         C   s   |  i  i i |  i  S(   s7   Return ``True`` if the package is marked for reinstall.(   RJ   R   t   marked_reinstallR   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR  s  s    c         C   s   |  i  i d j	 S(   s,   Return ``True`` if the package is installed.N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   is_installedx  s    c         C   s    |  i  o |  i i i |  i  S(   s-   Return ``True`` if the package is upgradable.(   R  RJ   R   t   is_upgradableR   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR  }  s    
c         C   s    |  i  o |  i i i |  i  S(   s   Return ``True`` if the package is no longer required.

        If the package has been installed automatically as a dependency of
        another package, and if no packages depend on it anymore, the package
        is no longer required.
        (   R  RJ   R   t
   is_garbageR   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   is_auto_removable  s    
c         C   s   |  i  i i |  i  S(   s@   Return whether the package is marked as automatically installed.(   RJ   R   t   is_auto_installedR   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR    s    c         C   s   t  |  i d d  S(   sU   Return the size of the candidate deb package.

        .. deprecated:: 0.7.9
        R   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   packageSize  s    c         C   s   t  |  i d d  S(   sU   Return the size of the installed deb package.

        .. deprecated:: 0.7.9
        R   i    (   R   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   installedPackageSize  s    c         C   s   t  |  i d d  S(   s[   Return the size of the candidate installed package.

        .. deprecated:: 0.7.9
        Rx   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   candidateInstalledSize  s    c         C   s   t  |  i d d  S(   s\   Return the size of the currently installed package.


        .. deprecated:: 0.7.9
        Rx   i    (   R   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   installedSize  s    c         C   si   d |  i  } yA t | d  } z  | i   i d  i d  SWd | i   XWn t j
 o g  SXd S(   s   Return a list of files installed by the package.

        Return a list of unicode names of the files which have
        been installed by this package
        s   /var/lib/dpkg/info/%s.listt   rbs   utf-8u   
N(   R"   R   t   readt   decodeR   t   closet   EnvironmentError(   R   R   Rs   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   installed_files  s     c         C   s  |  i  d j o |  i  S| d j o |  i p n |  i i d i d j o
 d } q |  i i d i d j o
 d } q t d  } t | t  o | S| i d  Sn |  i i	 } d	 } |  i i
 } |  i i } |  i i } y t i   }	 Wn t j
 o nZ XxU |	 i |  oD |	 i p t i | |	 i  d j o qn |	 i } |	 i
 } qW| i d
 d  }
 t |
  d j o |
 d } n ~
 | d } | i d  o d | d } n | i d d  } t |  d j o d i | d  } n ~ | h | d 6| d 6| d 6| d 6} t i   } zZyt i d  | o | i   o d St i |  } d } d t i |  } xt o| o | i   o d S| i   } | d j o Pn | i d  } t i | |  } | o t  |  i! d d  } | o' d | j o | i d d  d } n | i" d  } | o' d | j o | i d d  d } n | o t i | |  d j o Pqn | | 7} qWt |  d j o3 t d  } t | t  p | i d  } qn | |  _  Wn t i# j
 o< t d  | | f } t | t  o | S| i d  St$ t% i& f j
 o2 t d  } t | t  o | S| i d  SXWd t i |  X|  i  S(   s  
        Download the changelog of the package and return it as unicode
        string.

        The parameter *uri* refers to the uri of the changelog file. It may
        contain multiple named variables which will be substitued. These
        variables are (src_section, prefix, src_pkg, src_ver). An example is
        the Ubuntu changelog::

            "http://changelogs.ubuntu.com/changelogs/pool" \
                "/%(src_section)s/%(prefix)s/%(src_pkg)s" \
                "/%(src_pkg)s_%(src_ver)s/changelog"

        The parameter *cancel_lock* refers to an instance of threading.Lock,
        which if set, prevents the download.
        u    i    t   Debianss   http://packages.debian.org/changelogs/pool/%(src_section)s/%(prefix)s/%(src_pkg)s/%(src_pkg)s_%(src_ver)s/changelogt   Ubuntusu   http://changelogs.ubuntu.com/changelogs/pool/%(src_section)s/%(prefix)s/%(src_pkg)s/%(src_pkg)s_%(src_ver)s/changelogs$   The list of changes is not availables   utf-8t   maint   /i   t   libi   t   :R5   t   src_sectiont   prefixt   src_pkgt   src_veri   s   ^%s \((.*)\)(.*)$R&   s   The list of changes is not available yet.

Please use http://launchpad.net/ubuntu/+source/%s/%s/+changelog
until the changes become available or try again later.sO   Failed to download the list of changes. 
Please check your Internet connection.N('   R   R.   R   R   RG   R   R   R   R  R   R   R&   R   R   t   SystemErrorRr   Rg   R   R#   R   R   t   sockett   getdefaulttimeoutt   setdefaulttimeoutt   isSett   urllib2t   urlopent   ret   escapeR   t   readlinet   matchR   R   t   groupt	   HTTPErrort   IOErrort   httplibt   BadStatusLine(   R   R   t   cancel_lockt   resR  R  R   t   bin_verR  t   src_recordst   section_splitR  t   src_ver_splitt   timeoutt   changelog_filet	   changelogt   regexpt   line_rawR   R*  R   t   changelog_ver(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   get_changelog  s    


& 	
 		#(c         C   s   t  |  i d d  S(   sf   Return a list of `Origin()` objects for the candidate version.

        .. deprecated:: 0.7.9
        R   N(   R   R   R.   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   candidateOrigin^  s    c         C   s
   t  |   S(   sc   Return a VersionList() object for all available versions.

        .. versionadded:: 0.7.9
        (   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   versionsf  s    c         C   s   |  i  i i |  i  S(   s5   Return True if the to-be-installed package is broken.(   RJ   R   t   is_inst_brokenR   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR?  n  s    c         C   s   |  i  i i |  i  S(   s/   Return True if the installed package is broken.(   RJ   R   t   is_now_brokenR   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR@  s  s    c         C   s4   |  i  i   |  i  i i |  i  |  i  i   d S(   s   Mark a package for keep.N(   RJ   R   R   t	   mark_keepR   R   (   R   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRA  z  s    c         C   s   |  i  i   |  i  i i |  i |  | os |  i  i i d j o] t i |  i  i  } | i |  i  | i	 |  i  | i
 |  i  | i   | i   n |  i  i   d S(   s*  Mark a package for install.

        If *auto_fix* is ``True``, the resolver will be run, trying to fix
        broken packages.  This is the default.

        If *purge* is ``True``, remove the configuration files of the package
        as well.  The default is to keep the configuration.
        i    N(   RJ   R   R   t   mark_deleteR   t   broken_countR   t   ProblemResolvert   cleart   protectt   removet   install_protectt   resolveR   (   R   t   auto_fixt   purget   fix(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRB    s    

c         C   s   |  i  i   |  i  i i |  i | |  | o\ |  i  i i d j oF t i |  i  i  } | i |  i  | i	 |  i  | i
 t  n |  i  i   d S(   s0  Mark a package for install.

        If *autoFix* is ``True``, the resolver will be run, trying to fix
        broken packages.  This is the default.

        If *autoInst* is ``True``, the dependencies of the packages will be
        installed automatically.  This is the default.

        If *fromUser* is ``True``, this package will not be marked as
        automatically installed. This is the default. Set it to False if you
        want to be able to automatically remove the package at a later stage
        when no other package depends on it.
        i    N(   RJ   R   R   t   mark_installR   RC  R   RD  RE  RF  RI  R   R   (   R   RJ  t	   auto_instt	   from_usert   fixer(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRM    s    c         C   sU   |  i  o- |  i i i |  i  } |  i d |  n t i i d |  i i	  d S(   s   Mark a package for upgrade.RO  s1   MarkUpgrade() called on a non-upgrable pkg: '%s'
N(
   R  RJ   R   R  R   RM  t   syst   stderrt   writeR"   (   R   RO  (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   mark_upgrade  s
    
c         C   s   |  i  i i |  i |  d S(   s  Mark a package as automatically installed.

        Call this function to mark a package as automatically installed. If the
        optional parameter *auto* is set to ``False``, the package will not be
        marked as automatically installed anymore. The default is ``True``.
        N(   RJ   R   t	   mark_autoR   (   R   t   auto(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRU    s    c         C   s   |  i  i i | |  d S(   s  Commit the changes.

        The parameter *fprogress* refers to a apt_pkg.AcquireProgress() object,
        like apt.progress.text.AcquireProgress().

        The parameter *iprogress* refers to an InstallProgress() object, as
        found in apt.progress.base.
        N(   RJ   R   t   commit(   R   t	   fprogresst	   iprogress(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyRW    s    	t   marked_installedR  R  R  R  R  R  R  R  R
  R  N(Q   R   R   R   R,   R-   R   t   _Package__set_candidateR6   R   R"   R   RW   R   R4   R   R   R   R   R{   R   R   R   Ry   R   R   R   R   R   R   R   R   R  R  R  R  R  R  R  R  R
  R  R  R  R  R  R  R.   R<  R=  R>  R?  R@  RA  R   R   RO   RB  RM  RT  RU  RW  R   R/   R   t   markedInstalledt   markedInstallt   markedUpgradet   markedDeletet
   markedKeept   markedDowngradet   markedReinstallt   isInstalledt   isUpgradablet   isAutoRemovablet   installedFilesR   t   getChangelogt
   markDeletet   markInstallt   markKeept   markUpgrade(    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyR	     s   										
		
c          C   s  d GHd d k  }  t i   t i i i   } t i |  } | d } d | i GHd | i	 GHd | i
 i GHd | i i GHd	 | i i GHd
 | i
 i GHd | i
 i GHd | i
 i GHd | i
 i GHd | i GHd | i
 i GHd | i
 i GHd | i
 i GHd | i
 i GHd | i
 i GHd | i i GHd | i i GHx/ | i
 i D]! } d i d   | i D  GHqIWd | i
 i GHd | i
 i GHd G| i
 i GH| d i   GHx t t  f D]v } d | GHxF | D]> } | i! o. |  i" d d  d j o | i# |  qqqWd | i$ i% GHd  | i$ i& GHqWHx t t  f D] } d! | GHt i |  } xe | i'   D]W } |  i" d d  d j o8 y | | i( |  Wqt) j
 o d" | GHqXqjqjWd | i$ i% GHd# | i$ i* GHq?Wd S($   s
   Self-test.s   Self-test for the Package moduliNs	   apt-utilss	   Name: %s s   ID: %s s   Priority (Candidate): %s s   Priority (Installed): %s s   Installed: %s s   Candidate: %s s   CandidateDownloadable: %ss   CandidateOrigins: %ss   SourcePkg: %s s   Section: %s s   Summary: %ss   Description (formated) :
%ss   Description (unformated):
%ss   InstalledSize: %s s   PackageSize: %s s   Dependencies: %ss   Recommends: %st   ,c         s   s5   x. |  ]' } d  | i  | i | i | i f Vq Wd S(   s   %s (%s) (%s) (%s)N(   R"   R&   R%   R'   (   R   t   o(    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pys	   <genexpr>  s   	s   arch: %ss   homepage: %ss   rec: t   2vcards;   Running install on random upgradable pkgs with AutoFix: %s i    i   s   Broken: %s s   InstCount: %s s.   Randomly remove some packages with AutoFix: %ss   Error trying to remove: %s s   DelCount: %s (+   t   randomR   t   initR   R   R   t
   OpProgresst   CacheR"   R   R   R   R   R&   R}   R   R   R   R   R   R   Rx   R   R   R   R   R1   R{   Ry   R   R<  R   RO   R  t   randintRM  R   RC  t
   inst_countR]   RB  R   t	   del_count(   Ro  R   t   cacheRP   t   dept   iR"   (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   _test  sn    

  	 
 	 t   __main__(&   R   R.  R   RQ  R'  R!  R   R%  R=   t   collectionsR    R   t   ImportErrort   objectR   t   apt.progress.textR   R   R   t   apt.deprecationR   R   R   t   __all__R   t	   ExceptionR   R   R   R6   R4   R   R
   R   R   R	   Ry  R   (    (    (    s/   /usr/lib/python2.6/dist-packages/apt/package.pyt   <module>   sL   	#!- nK  p	: