]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/build/BuildReport.py
Revert BaseTools: PYTHON3 migration
[mirror_edk2.git] / BaseTools / Source / Python / build / BuildReport.py
index 30c5b10bcc3be309f714b890028193066a0da4cf..4fe29f124d842d3371de129f0a173f7b6b3978f8 100644 (file)
@@ -28,7 +28,7 @@ import hashlib
 import subprocess\r
 import threading\r
 from datetime import datetime\r
-from io import StringIO\r
+from io import BytesIO\r
 from Common import EdkLogger\r
 from Common.Misc import SaveFileOnChange\r
 from Common.Misc import GuidStructureByteArrayToGuidString\r
@@ -79,7 +79,7 @@ gGlueLibEntryPoint = re.compile(r"__EDKII_GLUE_MODULE_ENTRY_POINT__\s*=\s*(\w+)"
 gLineMaxLength = 120\r
 \r
 ## Tags for end of line in report\r
-gEndOfLine = "\n"\r
+gEndOfLine = "\r\n"\r
 \r
 ## Tags for section start, end and separator\r
 gSectionStart = ">" + "=" * (gLineMaxLength - 2) + "<"\r
@@ -600,7 +600,7 @@ class ModuleReport(object):
             # Collect all module used PCD set: module INF referenced directly or indirectly.\r
             # It also saves module INF default values of them in case they exist.\r
             #\r
-            for Pcd in list(M.ModulePcdList) + list(M.LibraryPcdList):\r
+            for Pcd in M.ModulePcdList + M.LibraryPcdList:\r
                 self.ModulePcdSet.setdefault((Pcd.TokenCName, Pcd.TokenSpaceGuidCName, Pcd.Type), (Pcd.InfDefaultValue, Pcd.DefaultValue))\r
 \r
         self.LibraryReport = None\r
@@ -634,14 +634,14 @@ class ModuleReport(object):
         FwReportFileName = os.path.join(self._BuildDir, "DEBUG", self.ModuleName + ".txt")\r
         if os.path.isfile(FwReportFileName):\r
             try:\r
-                FileContents = open(FwReportFileName, 'r').read()\r
+                FileContents = open(FwReportFileName).read()\r
                 Match = gModuleSizePattern.search(FileContents)\r
                 if Match:\r
                     self.Size = int(Match.group(1))\r
 \r
                 Match = gTimeStampPattern.search(FileContents)\r
                 if Match:\r
-                    self.BuildTimeStamp = datetime.utcfromtimestamp(int(Match.group(1)))\r
+                    self.BuildTimeStamp = datetime.fromtimestamp(int(Match.group(1)))\r
             except IOError:\r
                 EdkLogger.warn(None, "Fail to read report file", FwReportFileName)\r
 \r
@@ -726,8 +726,8 @@ def ReadMessage(From, To, ExitFlag):
         # read one line a time\r
         Line = From.readline()\r
         # empty string means "end"\r
-        if Line is not None and Line != b"":\r
-            To(Line.rstrip().decode(encoding='utf-8', errors='ignore'))\r
+        if Line is not None and Line != "":\r
+            To(Line.rstrip())\r
         else:\r
             break\r
         if ExitFlag.isSet():\r
@@ -853,7 +853,7 @@ class PcdReport(object):
                 #\r
                 # Collect module override PCDs\r
                 #\r
-                for ModulePcd in list(Module.M.ModulePcdList) + list(Module.M.LibraryPcdList):\r
+                for ModulePcd in Module.M.ModulePcdList + Module.M.LibraryPcdList:\r
                     TokenCName = ModulePcd.TokenCName\r
                     TokenSpaceGuid = ModulePcd.TokenSpaceGuidCName\r
                     ModuleDefault = ModulePcd.DefaultValue\r
@@ -1031,10 +1031,7 @@ class PcdReport(object):
 \r
 \r
                 if Pcd.DatumType in TAB_PCD_NUMERIC_TYPES:\r
-                    try:\r
-                        PcdValueNumber = int(PcdValue.strip(), 0)\r
-                    except:\r
-                        PcdValueNumber = int(PcdValue.lstrip('0'))\r
+                    PcdValueNumber = int(PcdValue.strip(), 0)\r
                     if DecDefaultValue is None:\r
                         DecMatch = True\r
                     else:\r
@@ -1050,10 +1047,7 @@ class PcdReport(object):
                     if DscDefaultValue is None:\r
                         DscMatch = True\r
                     else:\r
-                        try:\r
-                            DscDefaultValueNumber = int(DscDefaultValue.strip(), 0)\r
-                        except:\r
-                            DscDefaultValueNumber = int(DscDefaultValue.lstrip('0'))\r
+                        DscDefaultValueNumber = int(DscDefaultValue.strip(), 0)\r
                         DscMatch = (DscDefaultValueNumber == PcdValueNumber)\r
                 else:\r
                     if DecDefaultValue is None:\r
@@ -1085,48 +1079,37 @@ class PcdReport(object):
                         DecMatch = False\r
                     elif Pcd.SkuOverrideValues:\r
                         DscOverride = False\r
-                        if Pcd.DefaultFromDSC:\r
-                            DscOverride = True\r
+                        if not Pcd.SkuInfoList:\r
+                            OverrideValues = Pcd.SkuOverrideValues\r
+                            if OverrideValues:\r
+                                Keys = OverrideValues.keys()\r
+                                Data = OverrideValues[Keys[0]]\r
+                                Struct = Data.values()[0]\r
+                                DscOverride = self.ParseStruct(Struct)\r
                         else:\r
-                            DictLen = 0\r
-                            for item in Pcd.SkuOverrideValues:\r
-                                DictLen += len(Pcd.SkuOverrideValues[item])\r
-                            if not DictLen:\r
-                                DscOverride = False\r
-                            else:\r
-                                if not Pcd.SkuInfoList:\r
-                                    OverrideValues = Pcd.SkuOverrideValues\r
-                                    if OverrideValues:\r
-                                        Keys = list(OverrideValues.keys())\r
-                                        Data = OverrideValues[Keys[0]]\r
-                                        Struct = list(Data.values())\r
-                                        DscOverride = self.ParseStruct(Struct[0])\r
-                                else:\r
-                                    SkuList = sorted(Pcd.SkuInfoList.keys())\r
-                                    for Sku in SkuList:\r
-                                        SkuInfo = Pcd.SkuInfoList[Sku]\r
-                                        if TypeName in ('DYNHII', 'DEXHII'):\r
-                                            if SkuInfo.DefaultStoreDict:\r
-                                                DefaultStoreList = sorted(SkuInfo.DefaultStoreDict.keys())\r
-                                                for DefaultStore in DefaultStoreList:\r
-                                                    OverrideValues = Pcd.SkuOverrideValues[Sku]\r
-                                                    DscOverride = self.ParseStruct(OverrideValues[DefaultStore])\r
-                                                    if DscOverride:\r
-                                                        break\r
-                                        else:\r
+                            SkuList = sorted(Pcd.SkuInfoList.keys())\r
+                            for Sku in SkuList:\r
+                                SkuInfo = Pcd.SkuInfoList[Sku]\r
+                                if TypeName in ('DYNHII', 'DEXHII'):\r
+                                    if SkuInfo.DefaultStoreDict:\r
+                                        DefaultStoreList = sorted(SkuInfo.DefaultStoreDict.keys())\r
+                                        for DefaultStore in DefaultStoreList:\r
                                             OverrideValues = Pcd.SkuOverrideValues[Sku]\r
-                                            if OverrideValues:\r
-                                                Keys = list(OverrideValues.keys())\r
-                                                OverrideFieldStruct = self.OverrideFieldValue(Pcd, OverrideValues[Keys[0]])\r
-                                                DscOverride = self.ParseStruct(OverrideFieldStruct)\r
-                                        if DscOverride:\r
-                                            break\r
+                                            DscOverride = self.ParseStruct(OverrideValues[DefaultStore])\r
+                                            if DscOverride:\r
+                                                break\r
+                                else:\r
+                                    OverrideValues = Pcd.SkuOverrideValues[Sku]\r
+                                    if OverrideValues:\r
+                                        Keys = OverrideValues.keys()\r
+                                        OverrideFieldStruct = self.OverrideFieldValue(Pcd, OverrideValues[Keys[0]])\r
+                                        DscOverride = self.ParseStruct(OverrideFieldStruct)\r
+                                if DscOverride:\r
+                                    break\r
                         if DscOverride:\r
                             DscDefaultValue = True\r
                             DscMatch = True\r
                             DecMatch = False\r
-                        else:\r
-                            DecMatch = True\r
                     else:\r
                         DscDefaultValue = True\r
                         DscMatch = True\r
@@ -1169,10 +1152,7 @@ class PcdReport(object):
                         for ModulePath in ModuleOverride:\r
                             ModuleDefault = ModuleOverride[ModulePath]\r
                             if Pcd.DatumType in TAB_PCD_NUMERIC_TYPES:\r
-                                try:\r
-                                    ModulePcdDefaultValueNumber = int(ModuleDefault.strip(), 0)\r
-                                except:\r
-                                    ModulePcdDefaultValueNumber = int(ModuleDefault.lstrip('0'))\r
+                                ModulePcdDefaultValueNumber = int(ModuleDefault.strip(), 0)\r
                                 Match = (ModulePcdDefaultValueNumber == PcdValueNumber)\r
                                 if Pcd.DatumType == 'BOOLEAN':\r
                                     ModuleDefault = str(ModulePcdDefaultValueNumber)\r
@@ -1251,10 +1231,7 @@ class PcdReport(object):
                     if Value.startswith(('0x', '0X')):\r
                         Value = '{} ({:d})'.format(Value, int(Value, 0))\r
                     else:\r
-                        try:\r
-                            Value = "0x{:X} ({})".format(int(Value, 0), Value)\r
-                        except:\r
-                            Value = "0x{:X} ({})".format(int(Value.lstrip('0')), Value)\r
+                        Value = "0x{:X} ({})".format(int(Value, 0), Value)\r
                 FileWrite(File, '    %*s = %s' % (self.MaxLen + 19, 'DEC DEFAULT', Value))\r
             if IsStructure:\r
                 self.PrintStructureInfo(File, Pcd.DefaultValues)\r
@@ -1279,12 +1256,11 @@ class PcdReport(object):
             if IsStructure:\r
                 OverrideValues = Pcd.SkuOverrideValues\r
                 if OverrideValues:\r
-                    Keys = list(OverrideValues.keys())\r
+                    Keys = OverrideValues.keys()\r
                     Data = OverrideValues[Keys[0]]\r
-                    Struct = list(Data.values())\r
-                    if Struct:\r
-                        OverrideFieldStruct = self.OverrideFieldValue(Pcd, Struct[0])\r
-                        self.PrintStructureInfo(File, OverrideFieldStruct)\r
+                    Struct = Data.values()[0]\r
+                    OverrideFieldStruct = self.OverrideFieldValue(Pcd, Struct)\r
+                    self.PrintStructureInfo(File, OverrideFieldStruct)\r
             self.PrintPcdDefault(File, Pcd, IsStructure, DscMatch, DscDefaultValue, InfMatch, InfDefaultValue, DecMatch, DecDefaultValue)\r
         else:\r
             FirstPrint = True\r
@@ -1406,7 +1382,7 @@ class PcdReport(object):
                     if IsStructure:\r
                         OverrideValues = Pcd.SkuOverrideValues[Sku]\r
                         if OverrideValues:\r
-                            Keys = list(OverrideValues.keys())\r
+                            Keys = OverrideValues.keys()\r
                             OverrideFieldStruct = self.OverrideFieldValue(Pcd, OverrideValues[Keys[0]])\r
                             self.PrintStructureInfo(File, OverrideFieldStruct)\r
                     self.PrintPcdDefault(File, Pcd, IsStructure, DscMatch, DscDefaultValue, InfMatch, InfDefaultValue, DecMatch, DecDefaultValue)\r
@@ -1638,7 +1614,7 @@ class PredictionReport(object):
         TempFile.close()\r
 \r
         try:\r
-            from Eot.EotMain import Eot\r
+            from Eot.Eot import Eot\r
 \r
             #\r
             # Invoke EOT tool and echo its runtime performance\r
@@ -2270,7 +2246,7 @@ class BuildReport(object):
     def GenerateReport(self, BuildDuration, AutoGenTime, MakeTime, GenFdsTime):\r
         if self.ReportFile:\r
             try:\r
-                File = StringIO('')\r
+                File = BytesIO('')\r
                 for (Wa, MaList) in self.ReportList:\r
                     PlatformReport(Wa, MaList, self.ReportType).GenerateReport(File, BuildDuration, AutoGenTime, MakeTime, GenFdsTime, self.ReportType)\r
                 Content = FileLinesSplit(File.getvalue(), gLineMaxLength)\r