[OE-core] [wic patch 5/5] wic: Use enum like dicts for string constants

Andreas J. Reichel andreas.reichel at tngtech.com
Fri Apr 21 12:11:45 UTC 2017


To increase code maintainability, use dictionaries
as enum-like container for parameter string comparisons.

Signed-off-by: Andreas Reichel <andreas.reichel.ext at siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Daniel Wagner <daniel.wagner at siemens.com>

---
 scripts/lib/wic/engine.py | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/scripts/lib/wic/engine.py b/scripts/lib/wic/engine.py
index 647358287f..1428a73ba8 100644
--- a/scripts/lib/wic/engine.py
+++ b/scripts/lib/wic/engine.py
@@ -35,6 +35,16 @@ from wic import WicError
 from wic.pluginbase import PluginMgr
 from wic.utils.misc import get_bitbake_var
 
+class StrEnum(dict):
+    __getattr__ = dict.get
+
+ListType = StrEnum({
+    'LIST_IMAGES': "images",
+    'LIST_SRC_PLUGINS': "source-plugins" })
+
+HelpArg = StrEnum({
+    'HELP': "help" })
+
 logger = logging.getLogger('wic')
 
 def verify_build_env():
@@ -204,14 +214,14 @@ def wic_list(args, scripts_path):
     if args.list_type is None:
         return False
 
-    if args.list_type == "images":
+    if args.list_type == ListType.LIST_IMAGES:
 
         list_canned_images(scripts_path)
         return True
-    elif args.list_type == "source-plugins":
+    elif args.list_type == ListType.LIST_SRC_PLUGINS:
         list_source_plugins()
         return True
-    elif len(args.help_for) == 1 and args.help_for[0] == 'help':
+    elif len(args.help_for) == 1 and args.help_for[0] == HelpArg.HELP:
         wks_file = args.list_type
         fullpath = find_canned_image(scripts_path, wks_file)
         if not fullpath:
-- 
2.11.0




More information about the Openembedded-core mailing list