From 3d0921ee548df9bc1c94c2f6b78e89be189de25b Mon Sep 17 00:00:00 2001 From: Dan Streetman Date: Mon, 23 Mar 2020 17:38:40 -0400 Subject: [PATCH] archive: simplify _source_urls() and _binary_urls() Signed-off-by: Dan Streetman --- ubuntutools/archive.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/ubuntutools/archive.py b/ubuntutools/archive.py index 514afb1..1f23cb9 100644 --- a/ubuntutools/archive.py +++ b/ubuntutools/archive.py @@ -293,25 +293,28 @@ class SourcePackage(object): return os.path.join(mirror, 'pool', self.component, group, self.source, filename) + def _archive_servers(self): + "Generator for mirror and master servers" + # Always provide the mirrors first + for server in self.mirrors: + yield server + # Don't repeat servers that are in both mirrors and masters + for server in set(self.masters) - set(self.mirrors): + yield server + def _source_urls(self, name): "Generator of sources for name" if self._dsc_source: yield os.path.join(os.path.dirname(self._dsc_source), name) - for mirror in self.mirrors: - yield self._mirror_url(mirror, name) - for mirror in self.masters: - if mirror not in self.mirrors: - yield self._mirror_url(mirror, name) + for server in self._archive_servers(): + yield self._mirror_url(server, name) if self.lp_spph.sourceFileUrl(name): yield self.lp_spph.sourceFileUrl(name) def _binary_urls(self, name, bpph): "Generator of URLs for name" - for mirror in self.mirrors: - yield self._mirror_url(mirror, name) - for mirror in self.masters: - if mirror not in self.mirrors: - yield self._mirror_url(mirror, name) + for server in self._archive_servers(): + yield self._mirror_url(server, name) if bpph.binaryFileUrl(name): yield bpph.binaryFileUrl(name) if bpph.getUrl():