mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-02-11 06:27:03 +00:00
Remove dependency on six
Signed-off-by: Julien Cristau <jcristau@debian.org>
This commit is contained in:
parent
354f6a6bc9
commit
6c344589ee
26
britney.py
26
britney.py
@ -193,7 +193,7 @@ from functools import reduce, partial
|
||||
from itertools import chain, product
|
||||
from operator import attrgetter
|
||||
|
||||
from six.moves import filter as ifilter, intern, urllib_parse as urllib
|
||||
from urllib.parse import quote
|
||||
|
||||
from installability.builder import InstallabilityTesterBuilder
|
||||
from excuse import Excuse
|
||||
@ -388,7 +388,7 @@ class Britney(object):
|
||||
arches += [x for x in allarches if x not in arches and x not in self.options.break_arches.split()]
|
||||
arches += [x for x in allarches if x not in arches and x not in self.options.new_arches.split()]
|
||||
arches += [x for x in allarches if x not in arches]
|
||||
self.options.architectures = [intern(arch) for arch in arches]
|
||||
self.options.architectures = [sys.intern(arch) for arch in arches]
|
||||
self.options.smooth_updates = self.options.smooth_updates.split()
|
||||
|
||||
def __log(self, msg, type="I"):
|
||||
@ -447,7 +447,7 @@ class Britney(object):
|
||||
# the package name extracted from the field and is therefore
|
||||
# not interned.
|
||||
pdata = binaries[dep_dist][arch][0][p]
|
||||
pt = (intern(p), pdata[VERSION], arch)
|
||||
pt = (sys.intern(p), pdata[VERSION], arch)
|
||||
if dep:
|
||||
sat.add(pt)
|
||||
elif t != pt:
|
||||
@ -494,7 +494,7 @@ class Britney(object):
|
||||
# Data reading/writing methods
|
||||
# ----------------------------
|
||||
|
||||
def read_sources(self, basedir, intern=intern):
|
||||
def read_sources(self, basedir, intern=sys.intern):
|
||||
"""Read the list of source packages from the specified directory
|
||||
|
||||
The source packages are read from the `Sources' file within the
|
||||
@ -533,7 +533,7 @@ class Britney(object):
|
||||
]
|
||||
return sources
|
||||
|
||||
def read_binaries(self, basedir, distribution, arch, intern=intern):
|
||||
def read_binaries(self, basedir, distribution, arch, intern=sys.intern):
|
||||
"""Read the list of binary packages from the specified directory
|
||||
|
||||
The binary packages are read from the `Packages_${arch}' files
|
||||
@ -1081,7 +1081,7 @@ class Britney(object):
|
||||
anyworthdoing = False
|
||||
|
||||
# for every binary package produced by this source in unstable for this architecture
|
||||
for pkg in sorted(ifilter(lambda x: x.endswith("/" + arch), source_u[BINARIES]), key=lambda x: x.split("/")[0]):
|
||||
for pkg in sorted(filter(lambda x: x.endswith("/" + arch), source_u[BINARIES]), key=lambda x: x.split("/")[0]):
|
||||
pkg_name = pkg.split("/")[0]
|
||||
|
||||
# retrieve the testing (if present) and unstable corresponding binary packages
|
||||
@ -1343,7 +1343,7 @@ class Britney(object):
|
||||
base = 'testing'
|
||||
else:
|
||||
base = 'stable'
|
||||
text = "Not yet built on <a href=\"http://buildd.debian.org/status/logs.php?arch=%s&pkg=%s&ver=%s&suite=%s\" target=\"_blank\">%s</a> (relative to testing)" % (urllib.quote(arch), urllib.quote(src), urllib.quote(source_u[VERSION]), base, arch)
|
||||
text = "Not yet built on <a href=\"http://buildd.debian.org/status/logs.php?arch=%s&pkg=%s&ver=%s&suite=%s\" target=\"_blank\">%s</a> (relative to testing)" % (quote(arch), quote(src), quote(source_u[VERSION]), base, arch)
|
||||
|
||||
if arch in self.options.fucked_arches.split():
|
||||
text = text + " (but %s isn't keeping up, so never mind)" % (arch)
|
||||
@ -1396,15 +1396,15 @@ class Britney(object):
|
||||
if oodtxt: oodtxt = oodtxt + "; "
|
||||
oodtxt = oodtxt + "%s (from <a href=\"http://buildd.debian.org/status/logs.php?" \
|
||||
"arch=%s&pkg=%s&ver=%s\" target=\"_blank\">%s</a>)" % \
|
||||
(", ".join(sorted(oodbins[v])), urllib.quote(arch), urllib.quote(src), urllib.quote(v), v)
|
||||
(", ".join(sorted(oodbins[v])), quote(arch), quote(src), quote(v), v)
|
||||
if uptodatebins:
|
||||
text = "old binaries left on <a href=\"http://buildd.debian.org/status/logs.php?" \
|
||||
"arch=%s&pkg=%s&ver=%s\" target=\"_blank\">%s</a>: %s" % \
|
||||
(urllib.quote(arch), urllib.quote(src), urllib.quote(source_u[VERSION]), arch, oodtxt)
|
||||
(quote(arch), quote(src), quote(source_u[VERSION]), arch, oodtxt)
|
||||
else:
|
||||
text = "missing build on <a href=\"http://buildd.debian.org/status/logs.php?" \
|
||||
"arch=%s&pkg=%s&ver=%s\" target=\"_blank\">%s</a>: %s" % \
|
||||
(urllib.quote(arch), urllib.quote(src), urllib.quote(source_u[VERSION]), arch, oodtxt)
|
||||
(quote(arch), quote(src), quote(source_u[VERSION]), arch, oodtxt)
|
||||
|
||||
if arch in self.options.fucked_arches.split():
|
||||
text = text + " (but %s isn't keeping up, so nevermind)" % (arch)
|
||||
@ -1454,15 +1454,15 @@ class Britney(object):
|
||||
if len(new_bugs) > 0:
|
||||
excuse.addhtml("%s (%s) <a href=\"http://bugs.debian.org/cgi-bin/pkgreport.cgi?" \
|
||||
"which=pkg&data=%s&sev-inc=critical&sev-inc=grave&sev-inc=serious\" " \
|
||||
"target=\"_blank\">has new bugs</a>!" % (pkg, ", ".join(pkgs[pkg]), urllib.quote(pkg)))
|
||||
"target=\"_blank\">has new bugs</a>!" % (pkg, ", ".join(pkgs[pkg]), quote(pkg)))
|
||||
excuse.addhtml("Updating %s introduces new bugs: %s" % (pkg, ", ".join(
|
||||
["<a href=\"http://bugs.debian.org/%s\">#%s</a>" % (urllib.quote(a), a) for a in new_bugs])))
|
||||
["<a href=\"http://bugs.debian.org/%s\">#%s</a>" % (quote(a), a) for a in new_bugs])))
|
||||
update_candidate = False
|
||||
excuse.addreason("buggy")
|
||||
|
||||
if len(old_bugs) > 0:
|
||||
excuse.addhtml("Updating %s fixes old bugs: %s" % (pkg, ", ".join(
|
||||
["<a href=\"http://bugs.debian.org/%s\">#%s</a>" % (urllib.quote(a), a) for a in old_bugs])))
|
||||
["<a href=\"http://bugs.debian.org/%s\">#%s</a>" % (quote(a), a) for a in old_bugs])))
|
||||
if len(old_bugs) > len(new_bugs) and len(new_bugs) > 0:
|
||||
excuse.addhtml("%s introduces new bugs, so still ignored (even "
|
||||
"though it fixes more than it introduces, whine at debian-release)" % pkg)
|
||||
|
@ -24,16 +24,12 @@
|
||||
import apt_pkg
|
||||
from functools import partial
|
||||
from datetime import datetime
|
||||
from itertools import chain, repeat
|
||||
from itertools import chain, repeat, filterfalse
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
import yaml
|
||||
|
||||
from six.moves import (filter as ifilter,
|
||||
filterfalse as ifilterfalse,
|
||||
zip as izip)
|
||||
|
||||
from migrationitem import MigrationItem, UnversionnedMigrationItem
|
||||
|
||||
from consts import (VERSION, BINARIES, PROVIDES, DEPENDS, CONFLICTS,
|
||||
@ -75,8 +71,8 @@ def ifilter_except(container, iterable=None):
|
||||
iterators that are not known on beforehand.
|
||||
"""
|
||||
if iterable is not None:
|
||||
return ifilterfalse(container.__contains__, iterable)
|
||||
return partial(ifilterfalse, container.__contains__)
|
||||
return filterfalse(container.__contains__, iterable)
|
||||
return partial(filterfalse, container.__contains__)
|
||||
|
||||
|
||||
def ifilter_only(container, iterable=None):
|
||||
@ -88,8 +84,8 @@ def ifilter_only(container, iterable=None):
|
||||
iterators that are not known on beforehand.
|
||||
"""
|
||||
if iterable is not None:
|
||||
return ifilter(container.__contains__, iterable)
|
||||
return partial(ifilter, container.__contains__)
|
||||
return filter(container.__contains__, iterable)
|
||||
return partial(filter, container.__contains__)
|
||||
|
||||
|
||||
# iter_except is from the "itertools" recipe
|
||||
@ -301,7 +297,7 @@ def compute_reverse_tree(packages_s, pkg, arch,
|
||||
# generate the next iteration, which is the reverse-dependencies of
|
||||
# the current iteration
|
||||
rev_deps = set(revfilt(flatten( binaries[x][RDEPENDS] for x in binfilt(rev_deps) )))
|
||||
return izip(seen, repeat(arch))
|
||||
return zip(seen, repeat(arch))
|
||||
|
||||
|
||||
def write_nuninst(filename, nuninst):
|
||||
|
@ -15,7 +15,6 @@
|
||||
# GNU General Public License for more details.
|
||||
|
||||
import re
|
||||
import six
|
||||
|
||||
class Excuse(object):
|
||||
"""Excuse class
|
||||
@ -181,13 +180,6 @@ class Excuse(object):
|
||||
(self.name, self.ver[0], self.ver[1]))
|
||||
if self.maint:
|
||||
maint = self.maint
|
||||
# ugly hack to work around strange encoding in pyyaml
|
||||
# should go away with pyyaml in python 3
|
||||
if isinstance(maint, six.binary_type):
|
||||
try:
|
||||
maint.decode('ascii')
|
||||
except UnicodeDecodeError:
|
||||
maint = six.string_type(self.maint,'utf-8')
|
||||
res.append("Maintainer: %s" % maint)
|
||||
if self.section and self.section.find("/") > -1:
|
||||
res.append("Section: %s" % (self.section))
|
||||
|
@ -13,8 +13,7 @@
|
||||
# GNU General Public License for more details.
|
||||
|
||||
from functools import partial
|
||||
|
||||
from six.moves import filter as ifilter, filterfalse as ifilterfalse
|
||||
from itertools import filterfalse
|
||||
|
||||
from britney_util import iter_except
|
||||
|
||||
@ -85,7 +84,7 @@ class InstallabilityTester(object):
|
||||
eqv_table = self._eqv_table
|
||||
testing = self._testing
|
||||
tcopy = [x for x in testing]
|
||||
for t in ifilterfalse(cache_inst.__contains__, tcopy):
|
||||
for t in filterfalse(cache_inst.__contains__, tcopy):
|
||||
if t in cbroken:
|
||||
continue
|
||||
res = check_inst(t)
|
||||
@ -300,7 +299,7 @@ class InstallabilityTester(object):
|
||||
|
||||
# We already satisfied/chosen at least one of the litterals
|
||||
# in the choice, so the choice is gone
|
||||
for choice in ifilter(musts.isdisjoint, choices):
|
||||
for choice in filter(musts.isdisjoint, choices):
|
||||
# cbroken is needed here because (in theory) it could
|
||||
# have changed since the choice was discovered and it
|
||||
# is smaller than testing (so presumably faster)
|
||||
@ -308,7 +307,7 @@ class InstallabilityTester(object):
|
||||
|
||||
if len(remain) > 1 and not remain.isdisjoint(safe_set):
|
||||
first = None
|
||||
for r in ifilter(safe_set.__contains__, remain):
|
||||
for r in filter(safe_set.__contains__, remain):
|
||||
# don't bother giving extra arguments to _check_inst. "safe" packages are
|
||||
# usually trivial to satisfy on their own and will not involve conflicts
|
||||
# (so never will not help)
|
||||
@ -432,7 +431,7 @@ class InstallabilityTester(object):
|
||||
returns True, then t is installable.
|
||||
"""
|
||||
# Local variables for faster access...
|
||||
not_satisfied = partial(ifilter, musts.isdisjoint)
|
||||
not_satisfied = partial(filter, musts.isdisjoint)
|
||||
|
||||
# While we have guaranteed dependencies (in check), examine all
|
||||
# of them.
|
||||
@ -520,7 +519,7 @@ class InstallabilityTester(object):
|
||||
start = set(ess_base)
|
||||
ess_never = set()
|
||||
ess_choices = set()
|
||||
not_satisified = partial(ifilter, start.isdisjoint)
|
||||
not_satisified = partial(filter, start.isdisjoint)
|
||||
|
||||
while ess_base:
|
||||
self._check_loop(universe, testing, eqv_table,
|
||||
|
Loading…
x
Reference in New Issue
Block a user