From 55bf2271d7cbeeebc02e28a28ae3374aca19d339 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Fri, 12 Jul 2013 15:12:09 +0200 Subject: importpkg: split process_package to process_control --- importpkg.py | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/importpkg.py b/importpkg.py index 6e22b54..5929455 100755 --- a/importpkg.py +++ b/importpkg.py @@ -61,6 +61,22 @@ def get_hashes(tar): hashes[hashobj.name] = hashvalue yield (elem.name, elem.size, hashes) +def process_control(control_contents): + control = deb822.Packages(control_contents) + package = control["package"].encode("ascii") + try: + source = control["source"].encode("ascii").split()[0] + except KeyError: + source = package + version = control["version"].encode("ascii") + architecture = control["architecture"].encode("ascii") + + depends = set(dep[0]["name"].encode("ascii") + for dep in control.relations.get("depends", ()) + if len(dep) == 1) + return dict(package=package, source=source, version=version, + architecture=architecture, depends=depends) + def process_package(filelike): af = ArReader(filelike) af.read_magic() @@ -82,21 +98,7 @@ def process_package(filelike): if state != "control": raise ValueError("duplicate control file") state = "control_file" - control = tf.extractfile(elem).read() - control = deb822.Packages(control) - package = control["package"].encode("ascii") - try: - source = control["source"].encode("ascii").split()[0] - except KeyError: - source = package - version = control["version"].encode("ascii") - architecture = control["architecture"].encode("ascii") - - depends = control.relations.get("depends", []) - depends = set(dep[0]["name"].encode("ascii") - for dep in depends if len(dep) == 1) - yield dict(package=package, source=source, version=version, - architecture=architecture, depends=depends) + yield process_control(tf.extractfile(elem).read()) break continue elif name == "data.tar.gz": -- cgit v1.2.3