Use enum for flags
This adds an extra dependency on python-enum34. Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This commit is contained in:
parent
d5e6639a6d
commit
ec67eac1cc
@ -138,7 +138,7 @@ def main():
|
|||||||
|
|
||||||
def _get_flags(gather_obj, pkg):
|
def _get_flags(gather_obj, pkg):
|
||||||
flags = gather_obj.result_package_flags.get(pkg, [])
|
flags = gather_obj.result_package_flags.get(pkg, [])
|
||||||
flags = "(%s)" % ",".join(sorted(flags))
|
flags = "(%s)" % ",".join(sorted(f.name for f in flags))
|
||||||
return flags
|
return flags
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ BuildRequires: python-lxml, libselinux-python, yum-utils, lorax
|
|||||||
BuildRequires: yum => 3.4.3-28, createrepo >= 0.4.11
|
BuildRequires: yum => 3.4.3-28, createrepo >= 0.4.11
|
||||||
BuildRequires: gettext, git-core, cvs
|
BuildRequires: gettext, git-core, cvs
|
||||||
BuildRequires: python-jsonschema
|
BuildRequires: python-jsonschema
|
||||||
|
BuildRequires: python-enum34
|
||||||
|
|
||||||
Requires: createrepo >= 0.4.11
|
Requires: createrepo >= 0.4.11
|
||||||
Requires: yum => 3.4.3-28
|
Requires: yum => 3.4.3-28
|
||||||
@ -38,6 +39,7 @@ Requires: syslinux
|
|||||||
Requires: git
|
Requires: git
|
||||||
Requires: python-jsonschema
|
Requires: python-jsonschema
|
||||||
Requires: libguestfs-tools-c
|
Requires: libguestfs-tools-c
|
||||||
|
Requires: python-enum34
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
# along with this program; if not, see <https://gnu.org/licenses/>.
|
# along with this program; if not, see <https://gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
from enum import Enum
|
||||||
from itertools import count
|
from itertools import count
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
@ -86,6 +87,18 @@ class QueryCache(object):
|
|||||||
return self.cache.get(key, None)
|
return self.cache.get(key, None)
|
||||||
|
|
||||||
|
|
||||||
|
class PkgFlag(Enum):
|
||||||
|
lookaside = 1
|
||||||
|
input = 2
|
||||||
|
greedy_build = 4
|
||||||
|
prepopulate = 8
|
||||||
|
conditional = 16
|
||||||
|
self_hosting = 32
|
||||||
|
fulltree = 64
|
||||||
|
multilib = 128
|
||||||
|
langpack = 256
|
||||||
|
|
||||||
|
|
||||||
class GatherBase(object):
|
class GatherBase(object):
|
||||||
def __init__(self, dnf_obj):
|
def __init__(self, dnf_obj):
|
||||||
self.dnf = dnf_obj
|
self.dnf = dnf_obj
|
||||||
@ -254,7 +267,7 @@ class Gather(GatherBase):
|
|||||||
self.result_binary_packages.add(i)
|
self.result_binary_packages.add(i)
|
||||||
# lookaside
|
# lookaside
|
||||||
if i.repoid in self.opts.lookaside_repos:
|
if i.repoid in self.opts.lookaside_repos:
|
||||||
self._set_flag(i, "lookaside")
|
self._set_flag(i, PkgFlag.lookaside)
|
||||||
|
|
||||||
for pkg in added:
|
for pkg in added:
|
||||||
if pkg is None:
|
if pkg is None:
|
||||||
@ -340,7 +353,7 @@ class Gather(GatherBase):
|
|||||||
self.logger.error("No package matches pattern %s" % pattern)
|
self.logger.error("No package matches pattern %s" % pattern)
|
||||||
|
|
||||||
for pkg in added:
|
for pkg in added:
|
||||||
self._set_flag(pkg, "input")
|
self._set_flag(pkg, PkgFlag.input)
|
||||||
|
|
||||||
if self.opts.greedy_method == "build":
|
if self.opts.greedy_method == "build":
|
||||||
for pkg in added.copy():
|
for pkg in added.copy():
|
||||||
@ -358,7 +371,7 @@ class Gather(GatherBase):
|
|||||||
greedy_build_packages.remove(greedy_pkg)
|
greedy_build_packages.remove(greedy_pkg)
|
||||||
|
|
||||||
for i in greedy_build_packages:
|
for i in greedy_build_packages:
|
||||||
self._set_flag(i, "input", "greedy:build")
|
self._set_flag(i, PkgFlag.input, PkgFlag.greedy_build)
|
||||||
added.add(i)
|
added.add(i)
|
||||||
|
|
||||||
return added
|
return added
|
||||||
@ -400,7 +413,7 @@ class Gather(GatherBase):
|
|||||||
self.logger.warn("Prepopulate: Doesn't match: %s" % name_arch)
|
self.logger.warn("Prepopulate: Doesn't match: %s" % name_arch)
|
||||||
|
|
||||||
for pkg in added:
|
for pkg in added:
|
||||||
self._set_flag(pkg, "prepopulate")
|
self._set_flag(pkg, PkgFlag.prepopulate)
|
||||||
|
|
||||||
return added
|
return added
|
||||||
|
|
||||||
@ -455,7 +468,7 @@ class Gather(GatherBase):
|
|||||||
for i in deps:
|
for i in deps:
|
||||||
if i not in self.result_binary_packages:
|
if i not in self.result_binary_packages:
|
||||||
self._add_packages([i], pulled_by=pkg)
|
self._add_packages([i], pulled_by=pkg)
|
||||||
self._set_flag(pkg, "conditional")
|
self._set_flag(pkg, PkgFlag.conditional)
|
||||||
added.add(i)
|
added.add(i)
|
||||||
|
|
||||||
return added
|
return added
|
||||||
@ -481,7 +494,7 @@ class Gather(GatherBase):
|
|||||||
if i not in self.result_binary_packages:
|
if i not in self.result_binary_packages:
|
||||||
self._add_packages([i], pulled_by=pkg)
|
self._add_packages([i], pulled_by=pkg)
|
||||||
added.add(i)
|
added.add(i)
|
||||||
self._set_flag(pkg, "self-hosting")
|
self._set_flag(pkg, PkgFlag.self_hosting)
|
||||||
|
|
||||||
return added
|
return added
|
||||||
|
|
||||||
@ -513,9 +526,9 @@ class Gather(GatherBase):
|
|||||||
if not source_pkg:
|
if not source_pkg:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
lookaside = self._has_flag(pkg, "lookaside")
|
lookaside = self._has_flag(pkg, PkgFlag.lookaside)
|
||||||
if lookaside:
|
if lookaside:
|
||||||
self._set_flag(source_pkg, "lookaside")
|
self._set_flag(source_pkg, PkgFlag.lookaside)
|
||||||
if source_pkg not in self.result_source_packages:
|
if source_pkg not in self.result_source_packages:
|
||||||
added.add(source_pkg)
|
added.add(source_pkg)
|
||||||
self.result_source_packages.add(source_pkg)
|
self.result_source_packages.add(source_pkg)
|
||||||
@ -550,10 +563,10 @@ class Gather(GatherBase):
|
|||||||
if not debug_pkgs:
|
if not debug_pkgs:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
lookaside = self._has_flag(pkg, "lookaside")
|
lookaside = self._has_flag(pkg, PkgFlag.lookaside)
|
||||||
for i in debug_pkgs:
|
for i in debug_pkgs:
|
||||||
if lookaside:
|
if lookaside:
|
||||||
self._set_flag(i, "lookaside")
|
self._set_flag(i, PkgFlag.lookaside)
|
||||||
if i not in self.result_debug_packages:
|
if i not in self.result_debug_packages:
|
||||||
added.add(i)
|
added.add(i)
|
||||||
|
|
||||||
@ -614,7 +627,7 @@ class Gather(GatherBase):
|
|||||||
for i in fulltree_pkgs:
|
for i in fulltree_pkgs:
|
||||||
if i not in self.result_binary_packages:
|
if i not in self.result_binary_packages:
|
||||||
self._add_packages([i])
|
self._add_packages([i])
|
||||||
self._set_flag(i, "fulltree")
|
self._set_flag(i, PkgFlag.fulltree)
|
||||||
added.add(i)
|
added.add(i)
|
||||||
|
|
||||||
# don't run fulltree on added packages
|
# don't run fulltree on added packages
|
||||||
@ -668,7 +681,7 @@ class Gather(GatherBase):
|
|||||||
# TODO: greedy
|
# TODO: greedy
|
||||||
i = i[0]
|
i = i[0]
|
||||||
langpack_pkgs.add(i)
|
langpack_pkgs.add(i)
|
||||||
self._set_flag(i, "langpack")
|
self._set_flag(i, PkgFlag.langpack)
|
||||||
if i not in self.result_binary_packages:
|
if i not in self.result_binary_packages:
|
||||||
self._add_packages([i], pulled_by=pkg)
|
self._add_packages([i], pulled_by=pkg)
|
||||||
added.add(pkg)
|
added.add(pkg)
|
||||||
@ -701,7 +714,7 @@ class Gather(GatherBase):
|
|||||||
if is_multilib:
|
if is_multilib:
|
||||||
multilib_pkgs.append(i)
|
multilib_pkgs.append(i)
|
||||||
added.add(i)
|
added.add(i)
|
||||||
self._set_flag(i, "multilib")
|
self._set_flag(i, PkgFlag.multilib)
|
||||||
self._add_packages([i])
|
self._add_packages([i])
|
||||||
self.finished_add_multilib_packages[pkg] = i
|
self.finished_add_multilib_packages[pkg] = i
|
||||||
# TODO: ^^^ may get multiple results; i686, i586, etc.
|
# TODO: ^^^ may get multiple results; i686, i586, etc.
|
||||||
|
3
setup.py
3
setup.py
@ -53,11 +53,12 @@ setup(
|
|||||||
],
|
],
|
||||||
test_suite = "tests",
|
test_suite = "tests",
|
||||||
install_requires = [
|
install_requires = [
|
||||||
|
"enum34",
|
||||||
|
"jsonschema",
|
||||||
"kobo",
|
"kobo",
|
||||||
"lockfile",
|
"lockfile",
|
||||||
"lxml",
|
"lxml",
|
||||||
"productmd",
|
"productmd",
|
||||||
"jsonschema",
|
|
||||||
],
|
],
|
||||||
tests_require = [
|
tests_require = [
|
||||||
"mock",
|
"mock",
|
||||||
|
@ -19,7 +19,7 @@ os.environ['PATH'] = '%s:%s' % (BINDIR, os.environ['PATH'])
|
|||||||
|
|
||||||
from pungi.wrappers.pungi import PungiWrapper
|
from pungi.wrappers.pungi import PungiWrapper
|
||||||
from pungi.dnf_wrapper import DnfWrapper, Conf
|
from pungi.dnf_wrapper import DnfWrapper, Conf
|
||||||
from pungi.gather_dnf import Gather, GatherOptions
|
from pungi.gather_dnf import Gather, GatherOptions, PkgFlag
|
||||||
|
|
||||||
|
|
||||||
def convert_pkg_map(data):
|
def convert_pkg_map(data):
|
||||||
@ -1610,7 +1610,7 @@ def convert_dnf_packages(pkgs, flags):
|
|||||||
for p in pkgs:
|
for p in pkgs:
|
||||||
name = str(p)
|
name = str(p)
|
||||||
name = convert_table.get(name, name)
|
name = convert_table.get(name, name)
|
||||||
if 'lookaside' in flags.get(p, []):
|
if PkgFlag.lookaside in flags.get(p, []):
|
||||||
# Package is coming from lookaside repo, we don't want those in
|
# Package is coming from lookaside repo, we don't want those in
|
||||||
# output.
|
# output.
|
||||||
continue
|
continue
|
||||||
|
Loading…
Reference in New Issue
Block a user