The following example demonstrates the features of debimg core, and how it can be used to fetch a some packages. As you will see when you run this example, debimg uses SHA1 filenames for the downloaded files. This may be changed in a future version.
There is also an improved version of this example, which creates a repository, but the needed module (debimg.core.repository) is not public yet, because its far from being finished. I expect to complete repository code on Wednesday.
#!/usr/bin/python
# Copyright (C) 2009 Julian Andres Klode.
#
# Released under the terms of the GNU General Publice License, version 3
# or (at your option) any later version.
#
"""Example to demonstrate the power of debimg's pool
This example creates a directory example.debimg, with two subdirectories:
- pool: This holds debimg's file pool (see debimg.core.files.Pool)
"""
from debimg.core.resolver import Resolver
from debimg.core.files import Pool
def main():
"""Called when the script is executed."""
# Create a pool, which manages the access to the files.
pool = Pool('example.debimg/pool')
# Create a resolver using your local apt configuration.
pkgs = Resolver()
# Add all packages with priority required to the resolver
pkgs.add_priority('required')
# Add the packages from the resolver to the pool
for group in pkgs.groups():
for package in group:
pool.add_package(package)
pool.fetch() # Fetch all the packages from the mirror
for file in sorted(pool._files, key=lambda k: k.uri):
print file # Print information about every file, sorted by URI.
if __name__ == '__main__':
main()
Reactions from Mastodon