X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Farchive.py;h=a55bfaba6f17aace3da4bb745691e96c937ff58c;hb=4cbcf2ec05c369e20897afb68770826468b84fdf;hp=77f400b41a432eed66aa6439b9faea1081a90714;hpb=4156593e3095380f647b68c420b90b1ef8943f77;p=dak.git diff --git a/daklib/archive.py b/daklib/archive.py index 77f400b4..a55bfaba 100644 --- a/daklib/archive.py +++ b/daklib/archive.py @@ -361,11 +361,7 @@ class ArchiveTransaction(object): # Uploaders are the maintainer and co-maintainers from the Uploaders field db_source.uploaders.append(maintainer) if 'Uploaders' in control: - def split_uploaders(field): - import re - for u in re.sub(">[ ]*,", ">\t", field).split("\t"): - yield u.strip() - + from daklib.textutils import split_uploaders for u in split_uploaders(control['Uploaders']): db_source.uploaders.append(get_or_set_maintainer(u, session)) session.flush() @@ -1027,8 +1023,9 @@ class ArchiveUpload(object): package, version, archext = parts arch, ext = archext.split('.', 1) - rule = automatic_byhand_packages.get(package) - if rule is None: + try: + rule = automatic_byhand_packages.subtree(package) + except KeyError: remaining.append(f) continue @@ -1188,8 +1185,9 @@ class ArchiveUpload(object): source_component_name = guess break if source_component_name is None: - raise Exception('Could not guess source component.') - source_component = self.session.query(Component).filter_by(component_name=source_component_name).one() + source_component = self.session.query(Component).order_by(Component.component_id).first() + else: + source_component = self.session.query(Component).filter_by(component_name=source_component_name).one() source_component_func = lambda source: source_component db_changes = self._install_changes()