diff options
author | Gilles Dartiguelongue <eva@gentoo.org> | 2015-06-24 14:07:21 +0200 |
---|---|---|
committer | Gilles Dartiguelongue <eva@gentoo.org> | 2015-06-25 14:46:05 +0200 |
commit | 3dd724f0698988b69d2c15aa502d181ca609943b (patch) | |
tree | 9e4403ac7c81a3d03e95c25e50586607b46f6acb /scripts | |
parent | scripts/gen_archlist: move dev style configuration to argparse (diff) | |
download | gnome-3dd724f0698988b69d2c15aa502d181ca609943b.tar.gz gnome-3dd724f0698988b69d2c15aa502d181ca609943b.tar.bz2 gnome-3dd724f0698988b69d2c15aa502d181ca609943b.zip |
scripts/gen_archlist: simplify functions and try to enhance documentation
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/gen_archlist.py | 60 |
1 files changed, 27 insertions, 33 deletions
diff --git a/scripts/gen_archlist.py b/scripts/gen_archlist.py index b21fba23..3ac9f88a 100755 --- a/scripts/gen_archlist.py +++ b/scripts/gen_archlist.py @@ -101,14 +101,11 @@ def nothing_to_be_done(atom, type='cpv'): def make_unstable(kws): - "Takes a keyword list, and returns a list with them all unstable" - nkws = [] - for kw in kws: - if not kw.startswith('~'): - nkws.append('~'+kw) - else: - nkws.append(kw) - return nkws + """Transform `kws` into a list of unstable keywords.""" + return [ + kwd if kwd.startswith('~') else '~' + kwd + for kwd in kws + ] def belongs_release(cpv, release): @@ -127,14 +124,11 @@ def issystempackage(cpv): def get_kws(cpv, arches=ARCHES): - """ - Returns an array of KEYWORDS matching 'arches' - """ - kws = [] - for kw in portage.portdb.aux_get(cpv, ['KEYWORDS'])[0].split(): - if kw in arches: - kws.append(kw) - return kws + """Return keywords of `cpv` filtered by `arches`.""" + return [ + kwd for kwd in portage.portdb.aux_get(cpv, ['KEYWORDS'])[0].split() + if kwd in arches + ] def do_not_want(cpv, release=None): @@ -149,20 +143,20 @@ def do_not_want(cpv, release=None): def match_wanted_atoms(atom, release=None): + """Return a list of CPV matching `atom`. + + If `release` is provided, CPVs are filtered against it. + + The list is sorted by descending order of version. """ - Given an atom and a release, return all matching wanted atoms ordered in - descending order of version - """ - atoms = [] # xmatch is stupid, and ignores ! in an atom... if atom.startswith('!'): return [] - for cpv in portage.portdb.xmatch('match-all', atom): - if do_not_want(cpv, release): - continue - atoms.append(cpv) - atoms.reverse() - return atoms + + return [ + cpv for cpv in reversed(portage.portdb.xmatch('match-all', atom)) + if not do_not_want(cpv, release) + ] def get_best_deps(cpv, kws, release=None): @@ -278,15 +272,15 @@ def max_kws(cpv, release=None): # FIXME: This is broken -def kws_wanted(cpv_kws, prev_cpv_kws): - "Generate a list of kws that need to be updated" +def kws_wanted(current_kws, target_kws): + """Generate a list of kws that need to be updated.""" wanted = [] - for kw in prev_cpv_kws: - if kw not in cpv_kws: - if STABLE and '~'+kw not in cpv_kws: - # Ignore if no keywords at all + for kwd in target_kws: + if kwd not in current_kws: + if STABLE and '~' + kwd not in current_kws: + # Skip stable keywords with no corresponding unstable keyword continue - wanted.append(kw) + wanted.append(kwd) return wanted |