commit:     dd9e1cda4772f33fa0c3d07578c5ca6808c6dd22
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 11 22:23:54 2020 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Mon Apr 13 20:43:10 2020 +0000
URL:        https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=dd9e1cda

catalyst: Clean assignments of {valid/required}_values

Making them class variables will allow us to verify that all subclasses
of TargetBase have defined them (in the next commit).

While we're moving them, change them to frozensets, since testing
membership is the thing they're useed for.

Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 catalyst/base/stagebase.py        | 68 ++++++++++++++++++++++++++-------------
 catalyst/targets/embedded.py      | 24 ++++++++++----
 catalyst/targets/livecd_stage1.py | 11 ++++---
 catalyst/targets/livecd_stage2.py | 48 +++++++++++++++++++--------
 catalyst/targets/netboot.py       | 29 ++++++++---------
 catalyst/targets/snapshot.py      | 11 +++++--
 catalyst/targets/stage1.py        | 10 ++++--
 catalyst/targets/stage2.py        |  7 ++--
 catalyst/targets/stage3.py        |  5 +--
 catalyst/targets/stage4.py        | 26 +++++++++++----
 10 files changed, 159 insertions(+), 80 deletions(-)

diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index b4275355..27516af6 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -27,16 +27,36 @@ class StageBase(TargetBase, ClearBase, GenBase):
        the driver class for pretty much everything that Catalyst does.
        """
        def __init__(self,myspec,addlargs):
-               self.required_values.extend(["version_stamp", "target", 
"subarch",
-                       "rel_type", "profile", "snapshot", "source_subpath"])
-
-               self.valid_values.extend(["version_stamp", "target", "subarch",
-                       "rel_type", "profile", "snapshot", "source_subpath",
-                       "portage_confdir", "portage_prefix", "portage_overlay",
-                       "cflags", "cxxflags", "fcflags", "fflags", "ldflags", 
"asflags",
-                       "common_flags", "cbuild", "hostuse", "catalyst_use",
-                       "distcc_hosts", "makeopts", "pkgcache_path", 
"kerncache_path",
-                       "compression_mode", "decompression_mode"])
+               self.required_values |= frozenset([
+                       "profile",
+                       "rel_type",
+                       "snapshot",
+                       "source_subpath",
+                       "subarch",
+                       "target",
+                       "version_stamp",
+               ])
+               self.valid_values |= self.required_values | frozenset([
+                       "asflags",
+                       "catalyst_use",
+                       "cbuild",
+                       "cflags",
+                       "common_flags",
+                       "compression_mode",
+                       "cxxflags",
+                       "decompression_mode",
+                       "distcc_hosts",
+                       "fcflags",
+                       "fflags",
+                       "hostuse",
+                       "kerncache_path",
+                       "ldflags",
+                       "makeopts",
+                       "pkgcache_path",
+                       "portage_confdir",
+                       "portage_overlay",
+                       "portage_prefix",
+               ])
 
                self.set_valid_build_kernel_vars(addlargs)
                TargetBase.__init__(self, myspec, addlargs)
@@ -422,7 +442,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 
        def set_fsops(self):
                if "fstype" in self.settings:
-                       self.valid_values.append("fsops")
+                       self.valid_values |= {"fsops"}
                        if self.settings["spec_prefix"] + "/fsops" in 
self.settings:
                                self.settings["fsops"] = \
                                        
self.settings[self.settings["spec_prefix"] + "/fsops"]
@@ -647,18 +667,20 @@ class StageBase(TargetBase, ClearBase, GenBase):
                                loopy = addlargs["boot/kernel"]
 
                        for x in loopy:
-                               self.valid_values.append("boot/kernel/" + x + 
"/aliases")
-                               self.valid_values.append("boot/kernel/" + x + 
"/config")
-                               self.valid_values.append("boot/kernel/" + x + 
"/console")
-                               self.valid_values.append("boot/kernel/" + x + 
"/extraversion")
-                               self.valid_values.append("boot/kernel/" + x + 
"/gk_action")
-                               self.valid_values.append("boot/kernel/" + x + 
"/gk_kernargs")
-                               self.valid_values.append("boot/kernel/" + x + 
"/initramfs_overlay")
-                               self.valid_values.append("boot/kernel/" + x + 
"/sources")
-                               self.valid_values.append("boot/kernel/" + x + 
"/softlevel")
-                               self.valid_values.append("boot/kernel/" + x + 
"/use")
-                               self.valid_values.append("boot/kernel/" + x + 
"/packages")
-                               self.valid_values.append("boot/kernel/" + x + 
"/kernelopts")
+                               self.valid_values |= frozenset([
+                                       "boot/kernel/" + x + "/aliases",
+                                       "boot/kernel/" + x + "/config",
+                                       "boot/kernel/" + x + "/console",
+                                       "boot/kernel/" + x + "/extraversion",
+                                       "boot/kernel/" + x + "/gk_action",
+                                       "boot/kernel/" + x + "/gk_kernargs",
+                                       "boot/kernel/" + x + 
"/initramfs_overlay",
+                                       "boot/kernel/" + x + "/kernelopts",
+                                       "boot/kernel/" + x + "/packages",
+                                       "boot/kernel/" + x + "/softlevel",
+                                       "boot/kernel/" + x + "/sources",
+                                       "boot/kernel/" + x + "/use",
+                               ])
                                if "boot/kernel/" + x + "/packages" in addlargs:
                                        if isinstance(addlargs['boot/kernel/' + 
x + '/packages'], str):
                                                addlargs["boot/kernel/" + x + 
"/packages"] = \

diff --git a/catalyst/targets/embedded.py b/catalyst/targets/embedded.py
index e441757b..97604503 100644
--- a/catalyst/targets/embedded.py
+++ b/catalyst/targets/embedded.py
@@ -18,14 +18,24 @@ class embedded(StageBase):
        """
        Builder class for embedded target
        """
-       def __init__(self,spec,addlargs):
-               self.required_values=[]
-               self.valid_values=[]
-               
self.valid_values.extend(["embedded/empty","embedded/rm","embedded/unmerge","embedded/fs-prepare","embedded/fs-finish","embedded/mergeroot","embedded/packages","embedded/fs-type","embedded/runscript","boot/kernel","embedded/linuxrc"])
-               self.valid_values.extend(["embedded/use"])
-               if "embedded/fs-type" in addlargs:
-                       self.valid_values.append("embedded/fs-ops")
+       required_values = frozenset()
+       valid_values = required_values | frozenset([
+               "boot/kernel",
+               "embedded/empty",
+               "embedded/fs-finish",
+               "embedded/fs-ops",
+               "embedded/fs-prepare",
+               "embedded/fs-type",
+               "embedded/linuxrc",
+               "embedded/mergeroot",
+               "embedded/packages",
+               "embedded/rm",
+               "embedded/runscript",
+               "embedded/unmerge",
+               "embedded/use",
+       ])
 
+       def __init__(self,spec,addlargs):
                StageBase.__init__(self,spec,addlargs)
 
        def set_action_sequence(self):

diff --git a/catalyst/targets/livecd_stage1.py 
b/catalyst/targets/livecd_stage1.py
index 25f54c13..fece8f79 100644
--- a/catalyst/targets/livecd_stage1.py
+++ b/catalyst/targets/livecd_stage1.py
@@ -12,11 +12,14 @@ class livecd_stage1(StageBase):
        """
        Builder class for LiveCD stage1.
        """
-       def __init__(self,spec,addlargs):
-               self.required_values=["livecd/packages"]
-               self.valid_values=self.required_values[:]
+       required_values = frozenset([
+               "livecd/packages",
+       ])
+       valid_values = required_values | frozenset([
+               "livecd/use",
+       ])
 
-               self.valid_values.extend(["livecd/use"])
+       def __init__(self,spec,addlargs):
                StageBase.__init__(self,spec,addlargs)
 
        def set_action_sequence(self):

diff --git a/catalyst/targets/livecd_stage2.py 
b/catalyst/targets/livecd_stage2.py
index 454dbab3..c917f9fd 100644
--- a/catalyst/targets/livecd_stage2.py
+++ b/catalyst/targets/livecd_stage2.py
@@ -12,21 +12,41 @@ class livecd_stage2(StageBase):
        """
        Builder class for a LiveCD stage2 build.
        """
-       def __init__(self,spec,addlargs):
-               self.required_values=["boot/kernel"]
-
-               self.valid_values=[]
-
-               self.valid_values.extend(self.required_values)
-               
self.valid_values.extend(["livecd/cdtar","livecd/empty","livecd/rm","livecd/depclean",\
-                       
"livecd/unmerge","livecd/iso","livecd/gk_mainargs","livecd/type",\
-                       "livecd/readme","livecd/motd","livecd/overlay",\
-                       
"livecd/modblacklist","livecd/splash_theme","livecd/rcadd",\
-                       "livecd/rcdel","livecd/fsscript","livecd/xinitrc",\
-                       "livecd/root_overlay","livecd/users","portage_overlay",\
-                       
"livecd/fstype","livecd/fsops","livecd/linuxrc","livecd/bootargs",\
-                       
"livecd/xdm","livecd/xsession","livecd/volid","livecd/verify"])
+       required_values = frozenset([
+               "boot/kernel",
+       ])
+       valid_values = required_values | frozenset([
+               "livecd/bootargs",
+               "livecd/cdtar",
+               "livecd/depclean",
+               "livecd/empty",
+               "livecd/fsops",
+               "livecd/fsscript",
+               "livecd/fstype",
+               "livecd/gk_mainargs",
+               "livecd/iso",
+               "livecd/linuxrc",
+               "livecd/modblacklist",
+               "livecd/motd",
+               "livecd/overlay",
+               "livecd/rcadd",
+               "livecd/rcdel",
+               "livecd/readme",
+               "livecd/rm",
+               "livecd/root_overlay",
+               "livecd/splash_theme",
+               "livecd/type",
+               "livecd/unmerge",
+               "livecd/users",
+               "livecd/verify",
+               "livecd/volid",
+               "livecd/xdm",
+               "livecd/xinitrc",
+               "livecd/xsession",
+               "portage_overlay",
+       ])
 
+       def __init__(self,spec,addlargs):
                StageBase.__init__(self,spec,addlargs)
                if "livecd/type" not in self.settings:
                        self.settings["livecd/type"] = "generic-livecd"

diff --git a/catalyst/targets/netboot.py b/catalyst/targets/netboot.py
index 675a6f79..95fe3368 100644
--- a/catalyst/targets/netboot.py
+++ b/catalyst/targets/netboot.py
@@ -16,21 +16,20 @@ class netboot(StageBase):
        """
        Builder class for a netboot build, version 2
        """
-       def __init__(self,spec,addlargs):
-               self.required_values=[
-                       "boot/kernel"
-               ]
-               self.valid_values=self.required_values[:]
-               self.valid_values.extend([
-                       "netboot/packages",
-                       "netboot/use",
-                       "netboot/extra_files",
-                       "netboot/overlay",
-                       "netboot/busybox_config",
-                       "netboot/root_overlay",
-                       "netboot/linuxrc"
-               ])
+       required_values = frozenset([
+               "boot/kernel",
+       ])
+       valid_values = required_values | frozenset([
+               "netboot/busybox_config",
+               "netboot/extra_files",
+               "netboot/linuxrc",
+               "netboot/overlay",
+               "netboot/packages",
+               "netboot/root_overlay",
+               "netboot/use",
+       ])
 
+       def __init__(self,spec,addlargs):
                try:
                        if "netboot/packages" in addlargs:
                                if isinstance(addlargs['netboot/packages'], 
str):
@@ -39,7 +38,7 @@ class netboot(StageBase):
                                        loopy=addlargs["netboot/packages"]
 
                                for x in loopy:
-                                       
self.valid_values.append("netboot/packages/"+x+"/files")
+                                       self.valid_values |= 
{"netboot/packages/"+x+"/files"}
                except:
                        raise CatalystError("configuration error in 
netboot/packages.")
 

diff --git a/catalyst/targets/snapshot.py b/catalyst/targets/snapshot.py
index b73135bc..d876acbe 100644
--- a/catalyst/targets/snapshot.py
+++ b/catalyst/targets/snapshot.py
@@ -15,10 +15,15 @@ class snapshot(TargetBase, GenBase):
        """
        Builder class for snapshots.
        """
-       def __init__(self,myspec,addlargs):
-               self.required_values=["version_stamp","target"]
-               self.valid_values=["version_stamp","target", "compression_mode"]
+       required_values = frozenset([
+               "target",
+               "version_stamp",
+       ])
+       valid_values = required_values | frozenset([
+               "compression_mode",
+       ])
 
+       def __init__(self,myspec,addlargs):
                TargetBase.__init__(self, myspec, addlargs)
                GenBase.__init__(self,myspec)
 

diff --git a/catalyst/targets/stage1.py b/catalyst/targets/stage1.py
index d40d4ffe..4ce0d0b4 100644
--- a/catalyst/targets/stage1.py
+++ b/catalyst/targets/stage1.py
@@ -13,10 +13,14 @@ class stage1(StageBase):
        """
        Builder class for a stage1 installation tarball build.
        """
+       required_values = frozenset()
+       valid_values = required_values | frozenset([
+               "chost",
+               "update_seed",
+               "update_seed_command",
+       ])
+
        def __init__(self,spec,addlargs):
-               self.required_values=[]
-               self.valid_values=["chost"]
-               self.valid_values.extend(["update_seed","update_seed_command"])
                StageBase.__init__(self,spec,addlargs)
 
        def set_stage_path(self):

diff --git a/catalyst/targets/stage2.py b/catalyst/targets/stage2.py
index 9658a493..e975b14c 100644
--- a/catalyst/targets/stage2.py
+++ b/catalyst/targets/stage2.py
@@ -12,9 +12,12 @@ class stage2(StageBase):
        """
        Builder class for a stage2 installation tarball build.
        """
+       required_values = frozenset()
+       valid_values = required_values | frozenset([
+               "chost",
+       ])
+
        def __init__(self,spec,addlargs):
-               self.required_values=[]
-               self.valid_values=["chost"]
                StageBase.__init__(self,spec,addlargs)
 
        # XXX: How do these override_foo() functions differ from the ones in

diff --git a/catalyst/targets/stage3.py b/catalyst/targets/stage3.py
index f0831932..c8532aba 100644
--- a/catalyst/targets/stage3.py
+++ b/catalyst/targets/stage3.py
@@ -11,9 +11,10 @@ class stage3(StageBase):
        """
        Builder class for a stage3 installation tarball build.
        """
+       required_values = frozenset()
+       valid_values = frozenset()
+
        def __init__(self,spec,addlargs):
-               self.required_values=[]
-               self.valid_values=[]
                StageBase.__init__(self,spec,addlargs)
 
        def set_portage_overlay(self):

diff --git a/catalyst/targets/stage4.py b/catalyst/targets/stage4.py
index 71c1f302..1e16ff8c 100644
--- a/catalyst/targets/stage4.py
+++ b/catalyst/targets/stage4.py
@@ -10,14 +10,26 @@ class stage4(StageBase):
        """
        Builder class for stage4.
        """
+       required_values = frozenset([
+               "stage4/packages",
+       ])
+       valid_values = required_values | frozenset([
+               "boot/kernel",
+               "portage_overlay",
+               "splash_theme",
+               "stage4/empty",
+               "stage4/fsscript",
+               "stage4/gk_mainargs",
+               "stage4/linuxrc",
+               "stage4/rcadd",
+               "stage4/rcdel",
+               "stage4/rm",
+               "stage4/root_overlay",
+               "stage4/unmerge",
+               "stage4/use",
+       ])
+
        def __init__(self,spec,addlargs):
-               self.required_values=["stage4/packages"]
-               self.valid_values=self.required_values[:]
-               self.valid_values.extend(["stage4/use", "boot/kernel",
-                       "stage4/root_overlay", "stage4/fsscript",
-                       "stage4/gk_mainargs", "splash_theme",
-                       "portage_overlay", "stage4/rcadd", "stage4/rcdel",
-                       "stage4/linuxrc", "stage4/unmerge", "stage4/rm", 
"stage4/empty"])
                StageBase.__init__(self,spec,addlargs)
 
        def set_cleanables(self):

Reply via email to