diff options
| author | Julian Andres Klode <jak@debian.org> | 2009-08-21 16:55:11 +0200 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2009-08-21 16:55:11 +0200 |
| commit | dea3fad6d30e85f184d34e80490ad24ac89a9438 (patch) | |
| tree | cc437e0777a88423199bcd15ac464e400b35ffe8 /apt/cache.py | |
| parent | e3c630140e6595126046866a40e11e90c74278f2 (diff) | |
| parent | 63ea10b9f81725c9304aa729de4a3768a28b4c81 (diff) | |
| download | python-apt-dea3fad6d30e85f184d34e80490ad24ac89a9438.tar.gz | |
Merge 0.7.13.0 from unstable.
Diffstat (limited to 'apt/cache.py')
| -rw-r--r-- | apt/cache.py | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/apt/cache.py b/apt/cache.py index ae4254e0..eff07ef8 100644 --- a/apt/cache.py +++ b/apt/cache.py @@ -278,7 +278,7 @@ class Cache(object): return providers @deprecated_args - def update(self, fetch_progress=None): + def update(self, fetch_progress=None, pulse_interval=0): """Run the equivalent of apt-get update. The first parameter *fetch_progress* may be set to an instance of @@ -287,13 +287,15 @@ class Cache(object): """ lockfile = apt_pkg.config.find_dir("Dir::State::Lists") + "lock" lock = apt_pkg.get_lock(lockfile) + if lock < 0: raise LockFailedException("Failed to lock %s" % lockfile) try: if fetch_progress is None: fetch_progress = apt.progress.FetchProgress() - return self._cache.update(fetch_progress, self._list) + return self._cache.update(fetch_progress, self._list, + pulse_interval) finally: os.close(lock) @@ -434,6 +436,40 @@ class Cache(object): cachePreChange = function_deprecated_by(cache_pre_change) +class ProblemResolver(object): + """Resolve problems due to dependencies and conflicts. + + The first argument 'cache' is an instance of apt.Cache. + """ + + def __init__(self, cache): + self._resolver = apt_pkg.ProblemResolver(cache._depcache) + + def clear(self, package): + """Reset the package to the default state.""" + self._resolver.clear(package._pkg) + + def install_protect(self): + """mark protected packages for install or removal.""" + self._resolver.install_protect() + + def protect(self, package): + """Protect a package so it won't be removed.""" + self._resolver.protect(package._pkg) + + def remove(self, package): + """Mark a package for removal.""" + self._resolver.remove(package._pkg) + + def resolve(self): + """Resolve dependencies, try to remove packages where needed.""" + self._resolver.resolve() + + def resolve_by_keep(self): + """Resolve dependencies, do not try to remove packages.""" + self._resolver.resolve_by_keep() + + # ----------------------------- experimental interface |
