]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Common/ToolDefClassObject.py
BaseTools: Use absolute import in Common
[mirror_edk2.git] / BaseTools / Source / Python / Common / ToolDefClassObject.py
index 73ebdaf6b1793646fffcfc3fe06e1835c510fe99..05a1ddfbcc89dcd056938bec7779f6af636a2c1f 100644 (file)
 ##\r
 # Import Modules\r
 #\r
+from __future__ import absolute_import\r
 import Common.LongFilePathOs as os\r
 import re\r
-import EdkLogger\r
+from . import EdkLogger\r
 \r
-from BuildToolError import *\r
-from TargetTxtClassObject import *\r
+from .BuildToolError import *\r
+from .TargetTxtClassObject import *\r
 from Common.LongFilePathSupport import OpenLongFilePath as open\r
 from Common.Misc import PathClass\r
-from Common.String import NormPath\r
+from Common.StringUtils import NormPath\r
 import Common.GlobalData as GlobalData\r
 from Common import GlobalData\r
 from Common.MultipleWorkspace import MultipleWorkspace as mws\r
-from DataType import TAB_TOD_DEFINES_TARGET,TAB_TOD_DEFINES_TOOL_CHAIN_TAG,\\r
-                     TAB_TOD_DEFINES_TARGET_ARCH,TAB_TOD_DEFINES_COMMAND_TYPE\\r
-                     ,TAB_TOD_DEFINES_FAMILY,TAB_TOD_DEFINES_BUILDRULEFAMILY\r
+from .DataType import TAB_TOD_DEFINES_TARGET, TAB_TOD_DEFINES_TOOL_CHAIN_TAG,\\r
+                     TAB_TOD_DEFINES_TARGET_ARCH, TAB_TOD_DEFINES_COMMAND_TYPE\\r
+                     , TAB_TOD_DEFINES_FAMILY, TAB_TOD_DEFINES_BUILDRULEFAMILY\r
 \r
 \r
 ##\r
@@ -92,7 +93,9 @@ class ToolDefClassObject(object):
 \r
         KeyList = [TAB_TOD_DEFINES_TARGET, TAB_TOD_DEFINES_TOOL_CHAIN_TAG, TAB_TOD_DEFINES_TARGET_ARCH, TAB_TOD_DEFINES_COMMAND_TYPE]\r
         for Index in range(3, -1, -1):\r
-            for Key in dict(self.ToolsDefTxtDictionary):\r
+            # make a copy of the keys to enumerate over to prevent issues when\r
+            # adding/removing items from the original dict.\r
+            for Key in list(self.ToolsDefTxtDictionary.keys()):\r
                 List = Key.split('_')\r
                 if List[Index] == '*':\r
                     for String in self.ToolsDefTxtDatabase[KeyList[Index]]:\r
@@ -100,7 +103,6 @@ class ToolDefClassObject(object):
                         NewKey = '%s_%s_%s_%s_%s' % tuple(List)\r
                         if NewKey not in self.ToolsDefTxtDictionary:\r
                             self.ToolsDefTxtDictionary[NewKey] = self.ToolsDefTxtDictionary[Key]\r
-                        continue\r
                     del self.ToolsDefTxtDictionary[Key]\r
                 elif List[Index] not in self.ToolsDefTxtDatabase[KeyList[Index]]:\r
                     del self.ToolsDefTxtDictionary[Key]\r
@@ -157,7 +159,7 @@ class ToolDefClassObject(object):
                             if ErrorCode != 0:\r
                                 EdkLogger.error("tools_def.txt parser", FILE_NOT_FOUND, ExtraData=IncFile)\r
 \r
-                    if type(IncFileTmp) is PathClass:\r
+                    if isinstance(IncFileTmp, PathClass):\r
                         IncFile = IncFileTmp.Path\r
                     else:\r
                         IncFile = IncFileTmp\r