summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt/package.py221
-rw-r--r--doc/source/apt_inst.rst40
-rw-r--r--doc/source/apt_pkg/cache.rst4
-rw-r--r--doc/source/apt_pkg/index.rst233
-rw-r--r--doc/source/contributing.rst (renamed from doc/source/coding.rst)24
-rw-r--r--doc/source/index.rst2
6 files changed, 383 insertions, 141 deletions
diff --git a/apt/package.py b/apt/package.py
index e308da4b..5adef15c 100644
--- a/apt/package.py
+++ b/apt/package.py
@@ -42,7 +42,7 @@ def _(string):
def _file_is_same(path, size, md5):
- """Return True if the file is the same."""
+ """Return ``True`` if the file is the same."""
if (os.path.exists(path) and os.path.getsize(path) == size and
apt_pkg.md5sum(open(path)) == md5):
return True
@@ -96,7 +96,7 @@ class DeprecatedProperty(property):
def __init__(self, fget=None, fset=None, fdel=None, doc=None):
property.__init__(self, fget, fset, fdel, doc)
- self.__doc__ = ':Deprecated: ' + (doc or fget.__doc__ or '')
+ self.__doc__ = (doc or fget.__doc__ or '')
def __get__(self, obj, type=None):
if obj is not None:
@@ -168,21 +168,21 @@ class Record(object):
yield key, self._rec[key]
def get(self, key, default=None):
- """Return record[key] if key in record, else `default`.
+ """Return record[key] if key in record, else *default*.
- The parameter `default` must be either a string or None.
+ The parameter *default* must be either a string or None.
"""
return self._rec.get(key, default)
def has_key(self, key):
- """deprecated form of 'key in x'."""
+ """deprecated form of ``key in x``."""
return key in self._rec
class Version(object):
"""Representation of a package version.
- :since: 0.7.9
+ .. versionadded:: 0.7.9
"""
def __init__(self, package, cand):
@@ -352,26 +352,41 @@ class Version(object):
@property
def filename(self):
- """Return the path to the file inside the archive."""
+ """Return the path to the file inside the archive.
+
+ .. versionadded:: 0.7.10
+ """
return self._records.FileName
@property
def md5(self):
- """Return the md5sum of the binary."""
+ """Return the md5sum of the binary.
+
+ .. versionadded:: 0.7.10
+ """
return self._records.MD5Hash
@property
def sha1(self):
- """Return the sha1sum of the binary."""
+ """Return the sha1sum of the binary.
+
+ .. versionadded:: 0.7.10
+ """
return self._records.SHA1Hash
@property
def sha256(self):
- """Return the sha1sum of the binary."""
+ """Return the sha256sum of the binary.
+
+ .. versionadded:: 0.7.10
+ """
return self._records.SHA256Hash
def _uris(self):
- """Return an iterator over all available urls."""
+ """Return an iterator over all available urls.
+
+ .. versionadded:: 0.7.10
+ """
for (packagefile, index) in self._cand.FileList:
indexfile = self.package._pcache._list.FindIndex(packagefile)
if indexfile:
@@ -379,23 +394,31 @@ class Version(object):
@property
def uris(self):
- """Return a list of all available uris for the binary."""
+ """Return a list of all available uris for the binary.
+
+ .. versionadded:: 0.7.10
+ """
return list(self._uris())
@property
def uri(self):
- """Return a single URI for the binary."""
+ """Return a single URI for the binary.
+
+ .. versionadded:: 0.7.10
+ """
return self._uris().next()
def fetch_binary(self, destdir='', progress=None):
"""Fetch the binary version of the package.
- The parameter 'destdir' specifies the directory where the package will
+ The parameter *destdir* specifies the directory where the package will
be fetched to.
- The parameter 'progress' may refer to an apt.progress.FetchProgress()
+ The parameter *progress* may refer to an apt.progress.FetchProgress()
object. If not specified or None, apt.progress.TextFetchProgress() is
used.
+
+ .. versionadded:: 0.7.10
"""
base = os.path.basename(self._records.FileName)
destfile = os.path.join(destdir, base)
@@ -415,18 +438,18 @@ class Version(object):
def fetch_source(self, destdir="", progress=None, unpack=True):
"""Get the source code of a package.
- The parameter 'destdir' specifies the directory where the source will
+ The parameter *destdir* specifies the directory where the source will
be fetched to.
- The parameter 'progress' may refer to an apt.progress.FetchProgress()
+ The parameter *progress* may refer to an apt.progress.FetchProgress()
object. If not specified or None, apt.progress.TextFetchProgress() is
used.
- The parameter 'unpack' describes whether the source should be unpacked
- (True) or not (False). By default, it is unpacked.
+ 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.
+ If *unpack* is ``True``, the path to the extracted directory is
+ returned. Otherwise, the path to the .dsc file is returned.
"""
src = apt_pkg.GetPkgSrcRecords()
acq = apt_pkg.GetAcquire(progress or apt.progress.TextFetchProgress())
@@ -490,7 +513,8 @@ class Package(object):
def candidate(self):
"""Return the candidate version of the package.
- :since: 0.7.9"""
+ .. versionadded:: 0.7.9
+ """
cand = self._pcache._depcache.GetCandidateVer(self._pkg)
if cand is not None:
return Version(self, cand)
@@ -499,7 +523,8 @@ class Package(object):
def installed(self):
"""Return the currently installed version of the package.
- :since: 0.7.9"""
+ .. versionadded:: 0.7.9
+ """
if self._pkg.CurrentVer is not None:
return Version(self, self._pkg.CurrentVer)
@@ -525,42 +550,62 @@ class Package(object):
def installedVersion(self):
"""Return the installed version as string.
- Deprecated, please use installed.version instead."""
+ .. deprecated:: 0.7.9"""
return getattr(self.installed, 'version', None)
@DeprecatedProperty
def candidateVersion(self):
- """Return the candidate version as string."""
+ """Return the candidate version as string.
+
+ .. deprecated:: 0.7.9"""
return getattr(self.candidate, "version", None)
@DeprecatedProperty
def candidateDependencies(self):
- """Return a list of candidate dependencies."""
+ """Return a list of candidate dependencies.
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.candidate, "dependencies", None)
@DeprecatedProperty
def installedDependencies(self):
- """Return a list of installed dependencies."""
+ """Return a list of installed dependencies.
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.installed, 'dependencies', [])
@DeprecatedProperty
def architecture(self):
- """Return the Architecture of the package"""
+ """Return the Architecture of the package.
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.candidate, "architecture", None)
@DeprecatedProperty
def candidateDownloadable(self):
- """Return True if the candidate is downloadable."""
+ """Return ``True`` if the candidate is downloadable.
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.candidate, "downloadable", None)
@DeprecatedProperty
def installedDownloadable(self):
- """Return True if the installed version is downloadable."""
+ """Return ``True`` if the installed version is downloadable.
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.installed, 'downloadable', False)
@DeprecatedProperty
def sourcePackageName(self):
- """Return the source package name as string."""
+ """Return the source package name as string.
+
+ .. deprecated:: 0.7.9
+ """
try:
return self.candidate._records.SourcePkg or self._pkg.Name
except AttributeError:
@@ -571,7 +616,10 @@ class Package(object):
@DeprecatedProperty
def homepage(self):
- """Return the homepage field as string."""
+ """Return the homepage field as string.
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.candidate, "homepage", None)
@property
@@ -581,17 +629,27 @@ class Package(object):
@DeprecatedProperty
def priority(self):
- """Return the priority (of the candidate version)."""
+ """Return the priority (of the candidate version).
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.candidate, "priority", None)
@DeprecatedProperty
def installedPriority(self):
- """Return the priority (of the installed version)."""
+ """Return the priority (of the installed version).
+
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.installed, 'priority', None)
@DeprecatedProperty
def summary(self):
- """Return the short description (one line summary)."""
+ """Return the short description (one line summary).
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.candidate, "summary", None)
@DeprecatedProperty
@@ -602,44 +660,52 @@ class Package(object):
(Chapter 5.6.13).
See http://www.debian.org/doc/debian-policy/ch-controlfields.html
for more information.
+
+ .. deprecated:: 0.7.9
"""
return getattr(self.candidate, "description", None)
@DeprecatedProperty
def rawDescription(self):
- """return the long description (raw)."""
+ """return the long description (raw).
+
+ .. deprecated:: 0.7.9"""
return getattr(self.candidate, "raw_description", None)
@DeprecatedProperty
def candidateRecord(self):
- """Return the Record of the candidate version of the package."""
+ """Return the Record of the candidate version of the package.
+
+ .. deprecated:: 0.7.9"""
return getattr(self.candidate, "record", None)
@DeprecatedProperty
def installedRecord(self):
- """Return the Record of the candidate version of the package."""
+ """Return the Record of the candidate version of the package.
+
+ .. deprecated:: 0.7.9"""
return getattr(self.installed, 'record', '')
# depcache states
@property
def markedInstall(self):
- """Return True if the package is marked for install."""
+ """Return ``True`` if the package is marked for install."""
return self._pcache._depcache.MarkedInstall(self._pkg)
@property
def markedUpgrade(self):
- """Return True if the package is marked for upgrade."""
+ """Return ``True`` if the package is marked for upgrade."""
return self._pcache._depcache.MarkedUpgrade(self._pkg)
@property
def markedDelete(self):
- """Return True if the package is marked for delete."""
+ """Return ``True`` if the package is marked for delete."""
return self._pcache._depcache.MarkedDelete(self._pkg)
@property
def markedKeep(self):
- """Return True if the package is marked for keep."""
+ """Return ``True`` if the package is marked for keep."""
return self._pcache._depcache.MarkedKeep(self._pkg)
@property
@@ -649,23 +715,23 @@ class Package(object):
@property
def markedReinstall(self):
- """Return True if the package is marked for reinstall."""
+ """Return ``True`` if the package is marked for reinstall."""
return self._pcache._depcache.MarkedReinstall(self._pkg)
@property
def isInstalled(self):
- """Return True if the package is installed."""
+ """Return ``True`` if the package is installed."""
return (self._pkg.CurrentVer is not None)
@property
def isUpgradable(self):
- """Return True if the package is upgradable."""
+ """Return ``True`` if the package is upgradable."""
return (self.isInstalled and
self._pcache._depcache.IsUpgradable(self._pkg))
@property
def isAutoRemovable(self):
- """Return True if the package is no longer required.
+ """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
@@ -677,22 +743,35 @@ class Package(object):
@DeprecatedProperty
def packageSize(self):
- """Return the size of the candidate deb package."""
+ """Return the size of the candidate deb package.
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.candidate, "size", None)
@DeprecatedProperty
def installedPackageSize(self):
- """Return the size of the installed deb package."""
+ """Return the size of the installed deb package.
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.installed, 'size', 0)
@DeprecatedProperty
def candidateInstalledSize(self):
- """Return the size of the candidate installed package."""
+ """Return the size of the candidate installed package.
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.candidate, "installed_size", None)
@DeprecatedProperty
def installedSize(self):
- """Return the size of the currently installed package."""
+ """Return the size of the currently installed package.
+
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.installed, 'installed_size', 0)
@property
@@ -717,15 +796,16 @@ class Package(object):
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
+ 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:
+ 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,
+ The parameter *cancel_lock* refers to an instance of threading.Lock,
which if set, prevents the download.
"""
# Return a cached changelog if available
@@ -866,14 +946,17 @@ class Package(object):
@DeprecatedProperty
def candidateOrigin(self):
- """Return a list of Origin() objects for the candidate version."""
+ """Return a list of `Origin()` objects for the candidate version.
+
+ .. deprecated:: 0.7.9
+ """
return getattr(self.candidate, "origins", None)
@property
def versions(self):
"""Return a list of versions.
- :since: 0.7.9
+ .. versionadded:: 0.7.9
"""
return [Version(self, ver) for ver in self._pkg.VersionList]
@@ -888,11 +971,11 @@ class Package(object):
def markDelete(self, autoFix=True, purge=False):
"""Mark a package for install.
- If autoFix is True, the resolver will be run, trying to fix broken
- packages. This is the default.
+ If *autoFix* 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.
+ If *purge* is ``True``, remove the configuration files of the package
+ as well. The default is to keep the configuration.
"""
self._pcache.cachePreChange()
self._pcache._depcache.MarkDelete(self._pkg, purge)
@@ -909,16 +992,16 @@ class Package(object):
def markInstall(self, autoFix=True, autoInst=True, fromUser=True):
"""Mark a package for install.
- If autoFix is True, the resolver will be run, trying to fix broken
- packages. This is the default.
+ 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 *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 remove the package at a later stage if no other package depends on
- it.
+ 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.
"""
self._pcache.cachePreChange()
self._pcache._depcache.MarkInstall(self._pkg, autoInst, fromUser)
@@ -942,10 +1025,10 @@ class Package(object):
def commit(self, fprogress, iprogress):
"""Commit the changes.
- The parameter `fprogress` refers to a FetchProgress() object, as
+ The parameter *fprogress* refers to a FetchProgress() object, as
found in apt.progress.
- The parameter `iprogress` refers to an InstallProgress() object, as
+ The parameter *iprogress* refers to an InstallProgress() object, as
found in apt.progress.
"""
self._pcache._depcache.Commit(fprogress, iprogress)
diff --git a/doc/source/apt_inst.rst b/doc/source/apt_inst.rst
index 97705f61..999d074e 100644
--- a/doc/source/apt_inst.rst
+++ b/doc/source/apt_inst.rst
@@ -11,7 +11,12 @@ Checking packages
.. function:: arCheckMember(file, membername)
Check if the member specified by the parameter *membername* exists in
- the AR file referenced by the :class:`file` object *file*.
+ the AR file referenced by the parameter *file*, which may be a
+ :class:`file()` object, a file descriptor, or anything implementing a
+ :meth:`fileno` method.
+
+ .. versionchanged:: 0.7.11
+ Added support for file descriptors and objects implementing a :meth:`fileno` method.
Listing contents
@@ -19,8 +24,9 @@ Listing contents
.. function:: debExtract(file, func, chunk)
Call the function referenced by *func* for each member of the tar file
- *chunk* which is contained in the AR file referenced by the file object
- *file*.
+ *chunk* which is contained in the AR file referenced by the parameter
+ *file*, which may be a :class:`file()` object, a file descriptor, or
+ anything implementing a :meth:`fileno` method.
An example would be::
@@ -28,12 +34,21 @@ Listing contents
See :ref:`emulating-dpkg-contents` for a more detailed example.
+ .. versionchanged:: 0.7.11
+ Added support for file descriptors and objects implementing a :meth:`fileno` method.
+
.. function:: tarExtract(file,func,comp)
Call the function *func* for each member of the tar file *file*.
- *Comp* is a string determining the compressor used. Possible options are
- "lzma", "bzip2" and "gzip".
+ The parameter *comp* is a string determining the compressor used. Possible
+ options are "lzma", "bzip2" and "gzip".
+
+ The parameter *file* may be a :class:`file()` object, a file descriptor, or
+ anything implementing a :meth:`fileno` method.
+
+ .. versionchanged:: 0.7.11
+ Added support for file descriptors and objects implementing a :meth:`fileno` method.
Callback
@@ -56,6 +71,9 @@ Extracting contents
Extract the archive referenced by the :class:`file` object *file*
into the directory specified by *rootdir*.
+ The parameter *file* may be a :class:`file()` object, a file descriptor, or
+ anything implementing a :meth:`fileno` method.
+
See :ref:`emulating-dpkg-extract` for an example.
.. warning::
@@ -63,16 +81,24 @@ Extracting contents
If the directory given by *rootdir* does not exist, the package is
extracted into the current directory.
+ .. versionchanged:: 0.7.11
+ Added support for file descriptors and objects implementing a :meth:`fileno` method.
+
.. function:: debExtractControl(file[, member='control'])
- Return the indicated file from the control tar. The default is 'control'.
+ Return the indicated file as a string from the control tar. The default
+ is 'control'.
+
+ The parameter *file* may be a :class:`file()` object, a file descriptor, or
+ anything implementing a :meth:`fileno` method.
If you want to print the control file of a given package, you could do
something like::
print debExtractControl(open("package.deb"))
- :return: The contents of the file, as :class:`str`.
+ .. versionchanged:: 0.7.11
+ Added support for file descriptors and objects implementing a :meth:`fileno` method.
.. _emulating-dpkg-extract:
diff --git a/doc/source/apt_pkg/cache.rst b/doc/source/apt_pkg/cache.rst
index 93f8dc2d..86515569 100644
--- a/doc/source/apt_pkg/cache.rst
+++ b/doc/source/apt_pkg/cache.rst
@@ -207,6 +207,8 @@ Classes in apt_pkg
Return whether the configuration contains the key *key*.
+ .. deprecated:: 0.7.11
+
.. method:: get(key[, default=''])
This behaves just like :meth:`dict.get` and :meth:`Configuration.Find`,
@@ -1234,6 +1236,8 @@ broken dependencies:
Check whether the field with named by *key* exists.
+ .. deprecated:: 0.7.11
+
.. method:: keys()
Return a list of keys in the section.
diff --git a/doc/source/apt_pkg/index.rst b/doc/source/apt_pkg/index.rst
index 6e7b772e..38310bb5 100644
--- a/doc/source/apt_pkg/index.rst
+++ b/doc/source/apt_pkg/index.rst
@@ -17,6 +17,8 @@ the beginning.
Module Initialization
---------------------
+Initialization is needed for most functions, but not for all of them. Some can
+be called without having run init*(), but will not return the expected value.
.. function:: initConfig
@@ -89,9 +91,6 @@ Object initialization
Return a new :class:`PkgSrcRecords` object.
-.. function:: newConfiguration()
-
- Return a new :class:`Configuration` object.
The Acquire interface
@@ -164,46 +163,197 @@ of the ones provides in Python's :mod:`hashlib` module.
Return the md5sum of the object. *object* may either be a string, in
which case the md5sum of the string is returned, or a :class:`file()`
- object, in which case the md5sum of its contents is returned.
+ object (or a file descriptor), in which case the md5sum of its contents is
+ returned.
+
+ .. versionchanged:: 0.7.11
+ Added support for using file descriptors.
.. function:: sha1sum(object)
Return the sha1sum of the object. *object* may either be a string, in
which case the sha1sum of the string is returned, or a :class:`file()`
- object, in which case the sha1sum of its contents is returned.
+ object (or a file descriptor), in which case the sha1sum of its contents
+ is returned.
+
+ .. versionchanged:: 0.7.11
+ Added support for using file descriptors.
.. function:: sha256sum(object)
Return the sha256sum of the object. *object* may either be a string, in
which case the sha256sum of the string is returned, or a :class:`file()`
- object, in which case the sha256sum of its contents is returned.
+ object (or a file descriptor), in which case the sha256sum of its contents
+ is returned.
+
+ .. versionchanged:: 0.7.11
+ Added support for using file descriptors.
+
+Debian control files
+--------------------
+.. function:: ParseSection(text)
+
+ Parse the string given in the parameter *text* and return a
+ :class:`TagSection` object.
+
+.. function:: ParseTagFile(file)
+
+ Parse the given *file* and return a :class:`TagFile()` object. *file* may
+ be a :class:`file()` object, a file descriptor, or anything providing a
+ :meth:`fileno()` method.
+
+ .. versionchanged:: 0.7.11
+ Added support for using file descriptors.
+
+.. autofunction:: RewriteSection(section, order, rewrite_list)
+
+.. data:: RewritePackageOrder
+
+ The order in which the information for binary packages should be rewritten,
+ i.e. the order in which the fields should appear.
+
+.. data:: RewriteSourceOrder
+
+ The order in which the information for source packages should be rewritten,
+ i.e. the order in which the fields should appear.
+
+Dependencies
+------------
+.. function:: CheckDep(pkgver, op, depver)
+
+ Check that the dependency requirements consisting of op and depver can be
+ satisfied by the version pkgver.
+
+ Example::
+
+ >>> bool(apt_pkg.CheckDep("1.0", ">=", "1"))
+ True
+
+.. function:: ParseDepends(depends)
+
+ Parse the string *depends* which contains dependency information as
+ specified in Debian Policy, Section 7.1.
+
+ Returns a list. The members of this list are lists themselves and contain
+ one or more tuples in the format ``(package,version,operation)`` for every
+ 'or'-option given, e.g.::
+
+ >>> apt_pkg.ParseDepends("PkgA (>= VerA) | PkgB (>= VerB)")
+ [[('PkgA', 'VerA', '>='), ('PkgB', 'VerB', '>=')]]
+
+.. function:: ParseSrcDepends(depends)
+
+ Parse the string *depends* which contains dependency information as
+ specified in Debian Policy, Section 7.1.
+
+ Returns a list. The members of this list are lists themselves and contain
+ one or more tuples in the format ``(package,version,operation)`` for every
+ 'or'-option given, e.g.::
+
+ >>> apt_pkg.ParseDepends("PkgA (>= VerA) | PkgB (>= VerB)")
+ [[('PkgA', 'VerA', '>='), ('PkgB', 'VerB', '>=')]]
+
+
+ Furthemore, this function also supports to limit the architectures, as
+ used in e.g. Build-Depends::
+
+ >>> apt_pkg.ParseSrcDepends("a (>= 01) [i386 amd64]")
+ [[('a', '01', '>=')]]
+
+
+Configuration
+-------------
+
+.. data:: Config
+
+ A :class:`Configuration()`-like object with the default configuration. This
+ is implemented in the :class:`ConfigurationPtr` class, which has the same
+ API like the :class:`Configuration` class.
+
+.. function:: newConfiguration()
+
+ Return a new :class:`Configuration` object.
+
+.. function:: ReadConfigFile(configuration, filename)
+
+ Read the configuration file specified by the parameter *filename* and add
+ the settings therein to the :class:`Configuration()` object specified by
+ the parameter *configuration*
+
+.. function:: ReadConfigDir(configuration, dirname)
+
+ Read configuration files in the directory specified by the parameter
+ *dirname* and add the settings therein to the :class:`Configuration()`
+ object specified by the parameter *configuration*.
+
+.. function:: ReadConfigFileISC(configuration, filename)
+
+ Read the configuration file specified by the parameter *filename* and add
+ the settings therein to the :class:`Configuration()` object specified by
+ the parameter *configuration*
+
+.. function:: ParseCommandLine(configuration,options,argv)
+
+ This function is like getopt except it manipulates a configuration space.
+ output is a list of non-option arguments (filenames, etc). *options* is a
+ list of tuples of the form ``(‘c’,”long-opt or None”,
+ ”Configuration::Variable”,”optional type”)``.
+
+ Where ``type`` may be one of HasArg, IntLevel, Boolean, InvBoolean,
+ ConfigFile, or ArbItem. The default is Boolean.
+
+Locking
+--------
+
+.. function:: GetLock(filename)
+
+ Create an empty file at the path specified by the parameter *filename* and
+ lock it.
+
+ While the file is locked by a process, calling this function in another
+ process returns ``-1``.
+
+ When the lock is not required anymore, the file descriptor should be closed
+ using :func:`os.close`.
+
+.. function:: PkgSystemLock()
+
+ Lock the global pkgsystem.
+
+.. function:: PkgSystemUnLock()
+
+ Unlock the global pkgsystem.
Other functions
----------------
+.. function:: Base64Encode(string)
+
+ Encode the given string using base64, e.g::
+
+ >>> apt_pkg.Base64Encode(u"A")
+ 'QQ=='
-.. note::
-
- This documentation is (in parts) created automatically, and still needs to
- be improved.
-
-.. autofunction:: Base64Encode
-.. autofunction:: CheckDep
-.. autofunction:: CheckDomainList
-.. autofunction:: DeQuoteString
-.. autofunction:: GetLock
-
-.. autofunction:: ParseCommandLine
-.. autofunction:: ParseDepends
-.. autofunction:: ParseSection
-.. autofunction:: ParseSrcDepends
-.. autofunction:: ParseTagFile
-.. autofunction:: PkgSystemLock
-.. autofunction:: PkgSystemUnLock
-.. autofunction:: QuoteString
-.. autofunction:: ReadConfigFile
-.. autofunction:: ReadConfigDir()
-.. autofunction:: ReadConfigFileISC
-.. autofunction:: RewriteSection
+
+.. function:: CheckDomainList(host, list)
+
+ See if Host is in a ',' seperated list, e.g.::
+
+ apt_pkg.CheckDomainList("alioth.debian.org","debian.net,debian.org")
+
+.. function:: DeQuoteString(string)
+
+ Dequote the string specified by the parameter *string*, e.g.::
+
+ >>> apt_pkg.DeQuoteString("%61%70%74%20is%20cool")
+ 'apt is cool'
+
+.. function:: QuoteString(string, repl)
+
+ For every character listed in the string *repl*, replace all occurences in
+ the string *string* with the correct HTTP encoded value:
+
+ >>> apt_pkg.QuoteString("apt is cool","apt")
+ '%61%70%74%20is%20cool'
.. function:: SizeToStr(size)
@@ -271,8 +421,6 @@ Other functions
>>> apt_pkg.TimeToStr(3601)
'1h0min1s'
-
-
.. function:: UpstreamVersion(version)
Return the string *version*, eliminating everything following the last
@@ -305,23 +453,12 @@ Other functions
===== =============================================
-Data
------
-
-.. data:: Config
-
- An :class:`Configuration()` object with the default configuration. Actually,
- this is a bit different object, but it is compatible.
-
-.. data:: RewritePackageOrder
-
-.. data:: RewriteSourceOrder
.. _CurStates:
Package States
-^^^^^^^^^^^^^^^
+---------------
.. data:: CurStateConfigFiles
.. data:: CurStateHalfConfigured
.. data:: CurStateHalfInstalled
@@ -333,7 +470,7 @@ Package States
Dependency types
-^^^^^^^^^^^^^^^^
+----------------
.. data:: DepConflicts
.. data:: DepDepends
.. data:: DepObsoletes
@@ -345,7 +482,7 @@ Dependency types
.. _InstStates:
Installed states
-^^^^^^^^^^^^^^^^^
+-----------------
.. data:: InstStateHold
.. data:: InstStateHoldReInstReq
.. data:: InstStateOk
@@ -354,7 +491,7 @@ Installed states
.. _Priorities:
Priorities
-^^^^^^^^^^
+----------
.. data:: PriExtra
.. data:: PriImportant
.. data:: PriOptional
@@ -365,7 +502,7 @@ Priorities
.. _SelStates:
Select states
-^^^^^^^^^^^^^^
+--------------
.. data:: SelStateDeInstall
.. data:: SelStateHold
.. data:: SelStateInstall
@@ -374,7 +511,7 @@ Select states
Build information
-^^^^^^^^^^^^^^^^^
+-----------------
.. data:: Date
The date on which this extension has been compiled.
diff --git a/doc/source/coding.rst b/doc/source/contributing.rst
index 1357ce14..04933b73 100644
--- a/doc/source/coding.rst
+++ b/doc/source/contributing.rst
@@ -1,5 +1,5 @@
-Coding for python-apt
-======================
+Contributing to python-apt
+==========================
Let's say you need a new feature, you can develop it, and you want to get it
included in python-apt. Then be sure to follow the following guidelines.
@@ -61,30 +61,22 @@ attributes, etc.
This coding style guidelines are incomplete. If you have any questions
send an email to deity@lists.debian.org.
-.. note::
-
- The coding style may be changed completely during the port to Python 3.0.
- But this will not happen very soon.
-
Python Coding Style
-------------------
-The coding style for all code written in python is :PEP:`8`. For modules added
-from version 0.7.9 on, there are no exceptions.
+The coding style for all code written in python is :PEP:`8`. For modules and
+classes added from version 0.7.9 on, there are no exceptions.
-Modules introduced prior to 0.7.9 use mixedCase names for methods, functions
+Classes introduced prior to 0.7.9 use mixedCase names for methods, functions
and variables. These names will be replaced by names conforming to :PEP:`8`
in a future release of python-apt.
Therefore, try to reduce the introduction of the mixedName code to the absolute
minimum (sometimes you can also use shorter names).
-To prepare the port to Python 3.0, code should not use any functionality which
-is deprecated as of Python 2.6.
-
-The has_key() functionality may be used only on TagSection objects; as they
-provide no other way to do this. If someone is willing to adapt TagSection to
-support ``key in mapping`` and ``iter(mapping)``, this would be great.
+In order to make the automatic generation of Python 3 code using 2to possible,
+code written in Python may not utilize any functionality unsupported by 2to3 or
+deprecated as of Python 2.6.
.. note::
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 23ea4cca..930ff55c 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -24,7 +24,7 @@ Contents:
apt_pkg/index
apt_inst
aptsources/index
- coding
+ contributing