cleanup_rings: Make package_get_requiredby more memoize cache friendly
For debugging it's very useful to use @memoize(session=False), but that did not work because the self parameter pickled to a different key for each run, preventing cache hits. Avoid the self parameter.
This commit is contained in:
parent
fca81c89e3
commit
a3417b2907
@ -146,12 +146,12 @@ class CleanupRings(object):
|
||||
self.pkgdeps[b] = 'MYinstall'
|
||||
|
||||
@memoize(session=True)
|
||||
def package_get_requiredby(self, project, package, repo, arch):
|
||||
def package_get_requiredby(apiurl, project, package, repo, arch):
|
||||
"For a given package, return which source packages it provides runtime deps for."
|
||||
ret = set()
|
||||
for fileinfo in fileinfo_ext_all(self.api.apiurl, project, repo, arch, package):
|
||||
for fileinfo in fileinfo_ext_all(apiurl, project, repo, arch, package):
|
||||
for requiredby in fileinfo.findall('provides_ext/requiredby[@name]'):
|
||||
ret.add(self.bin2src[requiredby.get('name')])
|
||||
ret.add(requiredby.get('name'))
|
||||
|
||||
return ret
|
||||
|
||||
@ -247,7 +247,8 @@ class CleanupRings(object):
|
||||
# is needed (no built images) so we continue where x86_64 left off
|
||||
maybe_unneeded = self.sources.difference(all_needed_sources)
|
||||
for pkg in sorted(maybe_unneeded):
|
||||
requiredby = self.package_get_requiredby(prj, pkg, 'standard', arch)
|
||||
requiredby = CleanupRings.package_get_requiredby(self.api.apiurl, prj, pkg, 'standard', arch)
|
||||
requiredby = {self.bin2src[pkg] for pkg in requiredby}
|
||||
requiredby = requiredby.intersection(all_needed_sources)
|
||||
# Required by needed packages?
|
||||
if len(requiredby):
|
||||
|
Loading…
x
Reference in New Issue
Block a user