]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/WorkspaceCommon.py
Revert BaseTools: PYTHON3 migration
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / WorkspaceCommon.py
index 713c1ddbddc990313d7b631c5e65ba4d8501d71a..8d8a3e278987ee64f5fe0d3eb5ee32709730d0d4 100644 (file)
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
 \r
+from __future__ import absolute_import\r
 from collections import OrderedDict, defaultdict\r
 from Common.DataType import SUP_MODULE_USER_DEFINED\r
-from BuildClassObject import LibraryClassObject\r
+from .BuildClassObject import LibraryClassObject\r
 import Common.GlobalData as GlobalData\r
 from Workspace.BuildClassObject import StructurePcd\r
 from Common.BuildToolError import RESOURCE_NOT_AVAILABLE\r
 from Common.BuildToolError import OPTION_MISSING\r
 from Common.BuildToolError import BUILD_ERROR\r
 \r
-class OrderedListDict(OrderedDict, defaultdict):\r
+class OrderedListDict(OrderedDict):\r
     def __init__(self, *args, **kwargs):\r
         super(OrderedListDict, self).__init__(*args, **kwargs)\r
         self.default_factory = list\r
 \r
+    def __missing__(self, key):\r
+        self[key] = Value = self.default_factory()\r
+        return Value\r
+\r
 ## Get all packages from platform for specified arch, target and toolchain\r
 #\r
 #  @param Platform: DscBuildData instance\r
@@ -53,7 +58,7 @@ def GetPackageList(Platform, BuildDatabase, Arch, Target, Toolchain):
 #  @retval: A dictionary contains instances of PcdClassObject with key (PcdCName, TokenSpaceGuid)\r
 #  @retval: A dictionary contains real GUIDs of TokenSpaceGuid\r
 #\r
-def GetDeclaredPcd(Platform, BuildDatabase, Arch, Target, Toolchain,additionalPkgs):\r
+def GetDeclaredPcd(Platform, BuildDatabase, Arch, Target, Toolchain, additionalPkgs):\r
     PkgList = GetPackageList(Platform, BuildDatabase, Arch, Target, Toolchain)\r
     PkgList = set(PkgList)\r
     PkgList |= additionalPkgs\r