]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: refactor Build Database objects
authorCarsey, Jaben <jaben.carsey@intel.com>
Mon, 10 Sep 2018 22:18:06 +0000 (06:18 +0800)
committerYonghong Zhu <yonghong.zhu@intel.com>
Thu, 20 Sep 2018 14:18:07 +0000 (22:18 +0800)
1) use namedtuple instead of custom class when apropriate
2) rename collections.OrderedDict to OrderedDict since we import it already

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
BaseTools/Source/Python/Workspace/BuildClassObject.py

index 12227b855f9391793b576ae740ddf19754f30ff2..ece117666f3991b51d20d6aea59c1595c0e7b0ce 100644 (file)
@@ -11,8 +11,8 @@
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
 \r
+from collections import OrderedDict, namedtuple\r
 from Common.DataType import *\r
-import collections\r
 \r
 ## PcdClassObject\r
 #\r
@@ -166,17 +166,17 @@ class StructurePcd(PcdClassObject):
         self.StructuredPcdIncludeFile = [] if StructuredPcdIncludeFile is None else StructuredPcdIncludeFile\r
         self.PackageDecs = Packages\r
         self.DefaultStoreName = [default_store]\r
-        self.DefaultValues = collections.OrderedDict()\r
+        self.DefaultValues = OrderedDict()\r
         self.PcdMode = None\r
-        self.SkuOverrideValues = collections.OrderedDict()\r
+        self.SkuOverrideValues = OrderedDict()\r
         self.FlexibleFieldName = None\r
         self.StructName = None\r
         self.PcdDefineLineNo = 0\r
         self.PkgPath = ""\r
         self.DefaultValueFromDec = ""\r
         self.ValueChain = set()\r
-        self.PcdFieldValueFromComm = collections.OrderedDict()\r
-        self.PcdFieldValueFromFdf = collections.OrderedDict()\r
+        self.PcdFieldValueFromComm = OrderedDict()\r
+        self.PcdFieldValueFromFdf = OrderedDict()\r
     def __repr__(self):\r
         return self.TypeName\r
 \r
@@ -190,9 +190,9 @@ class StructurePcd(PcdClassObject):
         self.DefaultValueFromDec = DefaultValue\r
     def AddOverrideValue (self, FieldName, Value, SkuName, DefaultStoreName, FileName="", LineNo=0):\r
         if SkuName not in self.SkuOverrideValues:\r
-            self.SkuOverrideValues[SkuName] = collections.OrderedDict()\r
+            self.SkuOverrideValues[SkuName] = OrderedDict()\r
         if DefaultStoreName not in self.SkuOverrideValues[SkuName]:\r
-            self.SkuOverrideValues[SkuName][DefaultStoreName] = collections.OrderedDict()\r
+            self.SkuOverrideValues[SkuName][DefaultStoreName] = OrderedDict()\r
         if FieldName in self.SkuOverrideValues[SkuName][DefaultStoreName]:\r
             del self.SkuOverrideValues[SkuName][DefaultStoreName][FieldName]\r
         self.SkuOverrideValues[SkuName][DefaultStoreName][FieldName] = [Value.strip(), FileName, LineNo]\r
@@ -243,21 +243,7 @@ class StructurePcd(PcdClassObject):
             self.PcdFieldValueFromComm = PcdObject.PcdFieldValueFromComm if PcdObject.PcdFieldValueFromComm else self.PcdFieldValueFromComm\r
             self.PcdFieldValueFromFdf = PcdObject.PcdFieldValueFromFdf if PcdObject.PcdFieldValueFromFdf else self.PcdFieldValueFromFdf\r
 \r
-## LibraryClassObject\r
-#\r
-# This Class defines LibraryClassObject used in BuildDatabase\r
-#\r
-# @param object:      Inherited from object class\r
-# @param Name:        Input value for LibraryClassName, default is None\r
-# @param SupModList:  Input value for SupModList, default is []\r
-#\r
-# @var LibraryClass:  To store value for LibraryClass\r
-# @var SupModList:    To store value for SupModList\r
-#\r
-class LibraryClassObject(object):\r
-    def __init__(self, Name = None, SupModList = []):\r
-        self.LibraryClass = Name\r
-        self.SupModList = SupModList\r
+LibraryClassObject = namedtuple('LibraryClassObject', ['LibraryClass','SupModList'], verbose=False)\r
 \r
 ## ModuleBuildClassObject\r
 #\r
@@ -325,7 +311,7 @@ class ModuleBuildClassObject(object):
 \r
         self.Binaries                = []\r
         self.Sources                 = []\r
-        self.LibraryClasses          = collections.OrderedDict()\r
+        self.LibraryClasses          = OrderedDict()\r
         self.Libraries               = []\r
         self.Protocols               = []\r
         self.Ppis                    = []\r