]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools/UPT:merge UPT Tool use Python2 and Python3
authorZhijux Fan <zhijux.fan@intel.com>
Mon, 17 Dec 2018 07:18:01 +0000 (15:18 +0800)
committerFeng, Bob C <bob.c.feng@intel.com>
Fri, 1 Feb 2019 03:09:19 +0000 (11:09 +0800)
In UPT Tool,merge python2 and python3

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
20 files changed:
BaseTools/Source/Python/UPT/Core/IpiDb.py
BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py
BaseTools/Source/Python/UPT/Library/CommentGenerating.py
BaseTools/Source/Python/UPT/Library/CommentParsing.py
BaseTools/Source/Python/UPT/Library/Misc.py
BaseTools/Source/Python/UPT/Library/ParserValidate.py
BaseTools/Source/Python/UPT/Library/Parsing.py
BaseTools/Source/Python/UPT/Library/StringUtils.py
BaseTools/Source/Python/UPT/Library/UniClassObject.py
BaseTools/Source/Python/UPT/Library/Xml/XmlRoutines.py
BaseTools/Source/Python/UPT/Logger/StringTable.py
BaseTools/Source/Python/UPT/Parser/DecParser.py
BaseTools/Source/Python/UPT/Parser/DecParserMisc.py
BaseTools/Source/Python/UPT/Parser/InfAsBuiltProcess.py
BaseTools/Source/Python/UPT/Parser/InfParser.py
BaseTools/Source/Python/UPT/Parser/InfSectionParser.py
BaseTools/Source/Python/UPT/PomAdapter/InfPomAlignment.py
BaseTools/Source/Python/UPT/UPT.py
BaseTools/Source/Python/UPT/Xml/IniToXml.py
BaseTools/Source/Python/UPT/Xml/XmlParserMisc.py

index a781d358c86c0d742978ef6ee92366c0e791bc51..48defeac7ee71448bfe2a1d307aee0f28c6a7a74 100644 (file)
@@ -44,7 +44,7 @@ class IpiDatabase(object):
         Dir = os.path.dirname(DbPath)\r
         if not os.path.isdir(Dir):\r
             os.mkdir(Dir)\r
-        self.Conn = sqlite3.connect(unicode(DbPath), isolation_level='DEFERRED')\r
+        self.Conn = sqlite3.connect(u''.join(DbPath), isolation_level='DEFERRED')\r
         self.Conn.execute("PRAGMA page_size=4096")\r
         self.Conn.execute("PRAGMA synchronous=OFF")\r
         self.Cur = self.Conn.cursor()\r
@@ -921,7 +921,7 @@ class IpiDatabase(object):
     def __ConvertToSqlString(self, StringList):\r
         if self.DpTable:\r
             pass\r
-        return map(lambda s: s.replace("'", "''"), StringList)\r
+        return list(map(lambda s: s.replace("'", "''"), StringList))\r
 \r
 \r
 \r
index c2a240a88410c965715c9b6a4958abab315f432d..1f8b3f163e881c30be742a6959885b9ba34ed4ec 100644 (file)
@@ -274,7 +274,7 @@ def GenDefines(ModuleObject):
         if not DefinesDict:\r
             continue\r
         for Statement in DefinesDict:\r
-            if Statement.split(DT.TAB_EQUAL_SPLIT) > 1:\r
+            if len(Statement.split(DT.TAB_EQUAL_SPLIT)) > 1:\r
                 Statement = (u'%s ' % Statement.split(DT.TAB_EQUAL_SPLIT, 1)[0]).ljust(LeftOffset) \\r
                              + u'= %s' % Statement.split(DT.TAB_EQUAL_SPLIT, 1)[1].lstrip()\r
             SortedArch = DT.TAB_ARCH_COMMON\r
@@ -409,7 +409,7 @@ def GenLibraryClasses(ModuleObject):
                 Statement += '|' + FFE\r
             ModuleList = LibraryClass.GetSupModuleList()\r
             ArchList = LibraryClass.GetSupArchList()\r
-            for Index in xrange(0, len(ArchList)):\r
+            for Index in range(0, len(ArchList)):\r
                 ArchList[Index] = ConvertArchForInstall(ArchList[Index])\r
             ArchList.sort()\r
             SortedArch = ' '.join(ArchList)\r
@@ -572,7 +572,7 @@ def GenUserExtensions(ModuleObject):
 #         if not Statement:\r
 #             continue\r
         ArchList = UserExtension.GetSupArchList()\r
-        for Index in xrange(0, len(ArchList)):\r
+        for Index in range(0, len(ArchList)):\r
             ArchList[Index] = ConvertArchForInstall(ArchList[Index])\r
         ArchList.sort()\r
         KeyList = []\r
index 4726629695803cfa2ef115486a3b43dc49bfe452..bd3514bc4962a0dabf46e2aa24a765686e21a23f 100644 (file)
@@ -124,10 +124,8 @@ def GenHeaderCommentSection(Abstract, Description, Copyright, License, IsBinaryH
     #\r
     # Convert special character to (c), (r) and (tm).\r
     #\r
-    if isinstance(Abstract, unicode):\r
-        Abstract = ConvertSpecialUnicodes(Abstract)\r
-    if isinstance(Description, unicode):\r
-        Description = ConvertSpecialUnicodes(Description)\r
+    Abstract = ConvertSpecialUnicodes(Abstract)\r
+    Description = ConvertSpecialUnicodes(Description)\r
     if IsBinaryHeader:\r
         Content += CommChar * 2 + TAB_SPACE_SPLIT + TAB_BINARY_HEADER_COMMENT + '\r\n'\r
     elif CommChar == TAB_COMMENT_EDK1_SPLIT:\r
index 285812c9c2f8465674e077449339333e8ff69480..a09a530ffb05251f34ce1083e5fd89abb5d42012 100644 (file)
@@ -74,7 +74,7 @@ def ParseHeaderCommentSection(CommentList, FileName = None, IsBinaryHeader = Fal
     # first find the last copyright line\r
     #\r
     Last = 0\r
-    for Index in xrange(len(CommentList)-1, 0, -1):\r
+    for Index in range(len(CommentList)-1, 0, -1):\r
         Line = CommentList[Index][0]\r
         if _IsCopyrightLine(Line):\r
             Last = Index\r
@@ -206,17 +206,15 @@ def ParsePcdErrorCode (Value = None, ContainerFile = None, LineNum = None):
             Base = 16\r
         else:\r
             Base = 10\r
-        ErrorCode = long(Value, Base)\r
+        ErrorCode = int(Value, Base)\r
         if ErrorCode > PCD_ERR_CODE_MAX_SIZE or ErrorCode < 0:\r
             Logger.Error('Parser',\r
                         FORMAT_NOT_SUPPORTED,\r
                         "The format %s of ErrorCode is not valid, should be UNIT32 type or long type" % Value,\r
                         File = ContainerFile,\r
                         Line = LineNum)\r
-        #\r
-        # To delete the tailing 'L'\r
-        #\r
-        return hex(ErrorCode)[:-1]\r
+        ErrorCode = '0x%x' % ErrorCode\r
+        return ErrorCode\r
     except ValueError as XStr:\r
         if XStr:\r
             pass\r
index 8c2a6787f0c16ef25cc13235e36e172c1b7b5cb7..d69b161420c2346cf39c0d34f9d1a7367df20dca 100644 (file)
@@ -32,7 +32,7 @@ from os import linesep
 from os import walk\r
 from os import environ\r
 import re\r
-from UserDict import IterableUserDict\r
+from collections import OrderedDict\r
 \r
 import Logger.Log as Logger\r
 from Logger import StringTable as ST\r
@@ -160,23 +160,35 @@ def RemoveDirectory(Directory, Recursively=False):
 #                              or not\r
 #\r
 def SaveFileOnChange(File, Content, IsBinaryFile=True):\r
-    if not IsBinaryFile:\r
-        Content = Content.replace("\n", linesep)\r
-\r
     if os.path.exists(File):\r
-        try:\r
-            if Content == __FileHookOpen__(File, "rb").read():\r
-                return False\r
-        except BaseException:\r
-            Logger.Error(None, ToolError.FILE_OPEN_FAILURE, ExtraData=File)\r
+        if IsBinaryFile:\r
+            try:\r
+                if Content == __FileHookOpen__(File, "rb").read():\r
+                    return False\r
+            except BaseException:\r
+                Logger.Error(None, ToolError.FILE_OPEN_FAILURE, ExtraData=File)\r
+        else:\r
+            try:\r
+                if Content == __FileHookOpen__(File, "r").read():\r
+                    return False\r
+            except BaseException:\r
+                Logger.Error(None, ToolError.FILE_OPEN_FAILURE, ExtraData=File)\r
 \r
     CreateDirectory(os.path.dirname(File))\r
-    try:\r
-        FileFd = __FileHookOpen__(File, "wb")\r
-        FileFd.write(Content)\r
-        FileFd.close()\r
-    except BaseException:\r
-        Logger.Error(None, ToolError.FILE_CREATE_FAILURE, ExtraData=File)\r
+    if IsBinaryFile:\r
+        try:\r
+            FileFd = __FileHookOpen__(File, "wb")\r
+            FileFd.write(Content)\r
+            FileFd.close()\r
+        except BaseException:\r
+            Logger.Error(None, ToolError.FILE_CREATE_FAILURE, ExtraData=File)\r
+    else:\r
+        try:\r
+            FileFd = __FileHookOpen__(File, "w")\r
+            FileFd.write(Content)\r
+            FileFd.close()\r
+        except BaseException:\r
+            Logger.Error(None, ToolError.FILE_CREATE_FAILURE, ExtraData=File)\r
 \r
     return True\r
 \r
@@ -288,148 +300,6 @@ def RealPath2(File, Dir='', OverrideDir=''):
 \r
     return None, None\r
 \r
-## A dict which can access its keys and/or values orderly\r
-#\r
-#  The class implements a new kind of dict which its keys or values can be\r
-#  accessed in the order they are added into the dict. It guarantees the order\r
-#  by making use of an internal list to keep a copy of keys.\r
-#\r
-class Sdict(IterableUserDict):\r
-    ## Constructor\r
-    #\r
-    def __init__(self):\r
-        IterableUserDict.__init__(self)\r
-        self._key_list = []\r
-\r
-    ## [] operator\r
-    #\r
-    def __setitem__(self, Key, Value):\r
-        if Key not in self._key_list:\r
-            self._key_list.append(Key)\r
-        IterableUserDict.__setitem__(self, Key, Value)\r
-\r
-    ## del operator\r
-    #\r
-    def __delitem__(self, Key):\r
-        self._key_list.remove(Key)\r
-        IterableUserDict.__delitem__(self, Key)\r
-\r
-    ## used in "for k in dict" loop to ensure the correct order\r
-    #\r
-    def __iter__(self):\r
-        return self.iterkeys()\r
-\r
-    ## len() support\r
-    #\r
-    def __len__(self):\r
-        return len(self._key_list)\r
-\r
-    ## "in" test support\r
-    #\r
-    def __contains__(self, Key):\r
-        return Key in self._key_list\r
-\r
-    ## indexof support\r
-    #\r
-    def index(self, Key):\r
-        return self._key_list.index(Key)\r
-\r
-    ## insert support\r
-    #\r
-    def insert(self, Key, Newkey, Newvalue, Order):\r
-        Index = self._key_list.index(Key)\r
-        if Order == 'BEFORE':\r
-            self._key_list.insert(Index, Newkey)\r
-            IterableUserDict.__setitem__(self, Newkey, Newvalue)\r
-        elif Order == 'AFTER':\r
-            self._key_list.insert(Index + 1, Newkey)\r
-            IterableUserDict.__setitem__(self, Newkey, Newvalue)\r
-\r
-    ## append support\r
-    #\r
-    def append(self, Sdict2):\r
-        for Key in Sdict2:\r
-            if Key not in self._key_list:\r
-                self._key_list.append(Key)\r
-            IterableUserDict.__setitem__(self, Key, Sdict2[Key])\r
-    ## hash key\r
-    #\r
-    def has_key(self, Key):\r
-        return Key in self._key_list\r
-\r
-    ## Empty the dict\r
-    #\r
-    def clear(self):\r
-        self._key_list = []\r
-        IterableUserDict.clear(self)\r
-\r
-    ## Return a copy of keys\r
-    #\r
-    def keys(self):\r
-        Keys = []\r
-        for Key in self._key_list:\r
-            Keys.append(Key)\r
-        return Keys\r
-\r
-    ## Return a copy of values\r
-    #\r
-    def values(self):\r
-        Values = []\r
-        for Key in self._key_list:\r
-            Values.append(self[Key])\r
-        return Values\r
-\r
-    ## Return a copy of (key, value) list\r
-    #\r
-    def items(self):\r
-        Items = []\r
-        for Key in self._key_list:\r
-            Items.append((Key, self[Key]))\r
-        return Items\r
-\r
-    ## Iteration support\r
-    #\r
-    def iteritems(self):\r
-        return iter(self.items())\r
-\r
-    ## Keys interation support\r
-    #\r
-    def iterkeys(self):\r
-        return iter(self.keys())\r
-\r
-    ## Values interation support\r
-    #\r
-    def itervalues(self):\r
-        return iter(self.values())\r
-\r
-    ## Return value related to a key, and remove the (key, value) from the dict\r
-    #\r
-    def pop(self, Key, *Dv):\r
-        Value = None\r
-        if Key in self._key_list:\r
-            Value = self[Key]\r
-            self.__delitem__(Key)\r
-        elif len(Dv) != 0 :\r
-            Value = Dv[0]\r
-        return Value\r
-\r
-    ## Return (key, value) pair, and remove the (key, value) from the dict\r
-    #\r
-    def popitem(self):\r
-        Key = self._key_list[-1]\r
-        Value = self[Key]\r
-        self.__delitem__(Key)\r
-        return Key, Value\r
-    ## update method\r
-    #\r
-    def update(self, Dict=None, **Kwargs):\r
-        if Dict is not None:\r
-            for Key1, Val1 in Dict.items():\r
-                self[Key1] = Val1\r
-        if len(Kwargs):\r
-            for Key1, Val1 in Kwargs.items():\r
-                self[Key1] = Val1\r
-\r
 ## CommonPath\r
 #\r
 # @param PathList: PathList\r
@@ -437,7 +307,7 @@ class Sdict(IterableUserDict):
 def CommonPath(PathList):\r
     Path1 = min(PathList).split(os.path.sep)\r
     Path2 = max(PathList).split(os.path.sep)\r
-    for Index in xrange(min(len(Path1), len(Path2))):\r
+    for Index in range(min(len(Path1), len(Path2))):\r
         if Path1[Index] != Path2[Index]:\r
             return os.path.sep.join(Path1[:Index])\r
     return os.path.sep.join(Path1)\r
@@ -890,7 +760,7 @@ def ProcessEdkComment(LineList):
             if FindEdkBlockComment:\r
                 if FirstPos == -1:\r
                     FirstPos = StartPos\r
-                for Index in xrange(StartPos, EndPos+1):\r
+                for Index in range(StartPos, EndPos+1):\r
                     LineList[Index] = ''\r
                 FindEdkBlockComment = False\r
         elif Line.find("//") != -1 and not Line.startswith("#"):\r
@@ -957,7 +827,7 @@ def GetLibInstanceInfo(String, WorkSpace, LineNo):
         FileLinesList = []\r
 \r
         try:\r
-            FInputfile = open(FullFileName, "rb", 0)\r
+            FInputfile = open(FullFileName, "r")\r
             try:\r
                 FileLinesList = FInputfile.readlines()\r
             except BaseException:\r
index 31b9b68cd57e70dde6fa3cfd3929364057f416b0..87d156fa4ce166f7056f839bbda40de38b5c3c95 100644 (file)
@@ -727,7 +727,7 @@ def IsValidUserId(UserId):
 #\r
 def CheckUTF16FileHeader(File):\r
     FileIn = open(File, 'rb').read(2)\r
-    if FileIn != '\xff\xfe':\r
+    if FileIn != b'\xff\xfe':\r
         return False\r
 \r
     return True\r
index 81729d6cdbf7b3a2c43e6bfaf6072117e128296d..3eca8e384923456ad0cb3629196853d5616c4095 100644 (file)
@@ -974,7 +974,7 @@ def GenSection(SectionName, SectionDict, SplitArch=True, NeedBlankLine=False):
                     ArchList = GetSplitValueList(SectionAttrs, DataType.TAB_COMMENT_SPLIT)\r
                 else:\r
                     ArchList = [SectionAttrs]\r
-            for Index in xrange(0, len(ArchList)):\r
+            for Index in range(0, len(ArchList)):\r
                 ArchList[Index] = ConvertArchForInstall(ArchList[Index])\r
             Section = '[' + SectionName + '.' + (', ' + SectionName + '.').join(ArchList) + ']'\r
         else:\r
index 2be382fa1797041fee13bf8e31323311237496a6..90946337d089951b389b6dc3291cc3ea8beeab8c 100644 (file)
@@ -20,7 +20,6 @@ StringUtils
 #\r
 import re\r
 import os.path\r
-from string import strip\r
 import Logger.Log as Logger\r
 import Library.DataType as DataType\r
 from Logger.ToolError import FORMAT_INVALID\r
@@ -44,7 +43,7 @@ gMACRO_PATTERN = re.compile("\$\(([_A-Z][_A-Z0-9]*)\)", re.UNICODE)
 #\r
 #\r
 def GetSplitValueList(String, SplitTag=DataType.TAB_VALUE_SPLIT, MaxSplit= -1):\r
-    return map(lambda l: l.strip(), String.split(SplitTag, MaxSplit))\r
+    return list(map(lambda l: l.strip(), String.split(SplitTag, MaxSplit)))\r
 \r
 ## MergeArches\r
 #\r
@@ -435,7 +434,7 @@ def GetSingleValueOfKeyFromLines(Lines, Dictionary, CommentCharacter, KeySplitCh
                 #\r
                 LineList[1] = CleanString(LineList[1], CommentCharacter)\r
                 if ValueSplitFlag:\r
-                    Value = map(strip, LineList[1].split(ValueSplitCharacter))\r
+                    Value = list(map(lambda x: x.strip(), LineList[1].split(ValueSplitCharacter)))\r
                 else:\r
                     Value = CleanString(LineList[1], CommentCharacter).splitlines()\r
 \r
@@ -632,7 +631,7 @@ def SplitString(String):
 # @param StringList:  A list for strings to be converted\r
 #\r
 def ConvertToSqlString(StringList):\r
-    return map(lambda s: s.replace("'", "''"), StringList)\r
+    return list(map(lambda s: s.replace("'", "''"), StringList))\r
 \r
 ## Convert To Sql String\r
 #\r
@@ -940,23 +939,24 @@ def SplitPcdEntry(String):
 def IsMatchArch(Arch1, Arch2):\r
     if 'COMMON' in Arch1 or 'COMMON' in Arch2:\r
         return True\r
-    if isinstance(Arch1, basestring) and isinstance(Arch2, basestring):\r
-        if Arch1 == Arch2:\r
-            return True\r
-\r
-    if isinstance(Arch1, basestring) and isinstance(Arch2, list):\r
-        return Arch1 in Arch2\r
+    try:\r
+        if isinstance(Arch1, list) and isinstance(Arch2, list):\r
+            for Item1 in Arch1:\r
+                for Item2 in Arch2:\r
+                    if Item1 == Item2:\r
+                        return True\r
 \r
-    if isinstance(Arch2, basestring) and isinstance(Arch1, list):\r
-        return Arch2 in Arch1\r
+        elif isinstance(Arch1, list):\r
+            return Arch2 in Arch1\r
 \r
-    if isinstance(Arch1, list) and isinstance(Arch2, list):\r
-        for Item1 in Arch1:\r
-            for Item2 in Arch2:\r
-                if Item1 == Item2:\r
-                    return True\r
+        elif isinstance(Arch2, list):\r
+            return Arch1 in Arch2\r
 \r
-    return False\r
+        else:\r
+            if Arch1 == Arch2:\r
+                return True\r
+    except:\r
+        return False\r
 \r
 # Search all files in FilePath to find the FileName with the largest index\r
 # Return the FileName with index +1 under the FilePath\r
index cd575d5a341095c593d8d2c157b9726919455870..bd7804b7533bb856f37da56f04b61de845826d5d 100644 (file)
@@ -119,10 +119,12 @@ def UniToHexList(Uni):
 # @retval NewUni:  The converted unicode string\r
 #\r
 def ConvertSpecialUnicodes(Uni):\r
-    NewUni = Uni\r
+    OldUni = NewUni = Uni\r
     NewUni = NewUni.replace(u'\u00A9', '(c)')\r
     NewUni = NewUni.replace(u'\u00AE', '(r)')\r
     NewUni = NewUni.replace(u'\u2122', '(tm)')\r
+    if OldUni == NewUni:\r
+        NewUni = OldUni\r
     return NewUni\r
 \r
 ## GetLanguageCode1766\r
@@ -513,7 +515,7 @@ class UniFileClassObject(object):
                     FileIn[LineCount-1] = Line\r
                     FileIn[LineCount] = '\r\n'\r
                     LineCount -= 1\r
-                    for Index in xrange (LineCount + 1, len (FileIn) - 1):\r
+                    for Index in range (LineCount + 1, len (FileIn) - 1):\r
                         if (Index == len(FileIn) -1):\r
                             FileIn[Index] = '\r\n'\r
                         else:\r
index ee158f33d9dd94cefbc21237a3255892e59778a8..b24e3ed01bb62b687be5299dd9b394676c70c0ac 100644 (file)
@@ -180,7 +180,7 @@ def XmlElementData(Dom):
 # @param  String             A XPath style path.\r
 #\r
 def XmlElementList(Dom, String):\r
-    return map(XmlElementData, XmlList(Dom, String))\r
+    return list(map(XmlElementData, XmlList(Dom, String)))\r
 \r
 \r
 ## Get the XML attribute of the current node.\r
index c1c7732b40ce4747d2aa41d936be844db2b98ca1..061943925aaaf3ff4870c9d6964209e6c2fdb4b3 100644 (file)
@@ -42,7 +42,7 @@ MSG_USAGE_STRING = _("\n"
 MSG_VERSION_NUMBER = _("1.1")\r
 MSG_VERSION = _("UEFI Packaging Tool (UEFIPT) - Revision " + \\r
                 MSG_VERSION_NUMBER)\r
-MSG_COPYRIGHT = _("Copyright (c) 2011 - 2016 Intel Corporation All Rights Reserved.")\r
+MSG_COPYRIGHT = _("Copyright (c) 2011 - 2018 Intel Corporation All Rights Reserved.")\r
 MSG_VERSION_COPYRIGHT = _("\n  %s\n  %s" % (MSG_VERSION, MSG_COPYRIGHT))\r
 MSG_USAGE = _("%s [options]\n%s" % ("UPT", MSG_VERSION_COPYRIGHT))\r
 MSG_DESCRIPTION = _("The UEFIPT is used to create, " + \\r
index 8f3d60df57883e3a647f05bd7d6daf1e5beb58a4..f7eeb84127e1742710bbfd64744738229694d5e7 100644 (file)
@@ -622,7 +622,7 @@ class _DecPcd(_DecBase):
         elif not Token.startswith('0x') and not Token.startswith('0X'):\r
             if int(Token) > 4294967295:\r
                 self._LoggerError(ST.ERR_DECPARSE_PCD_TOKEN_INT % Token)\r
-            Token = hex(int(Token))[:-1]\r
+            Token = '0x%x' % int(Token)\r
 \r
         IntToken = int(Token, 0)\r
         if (Guid, IntToken) in self.TokenMap:\r
@@ -752,7 +752,7 @@ class _DecUserExtension(_DecBase):
 class Dec(_DecBase, _DecComments):\r
     def __init__(self, DecFile, Parse = True):\r
         try:\r
-            Content = ConvertSpecialChar(open(DecFile, 'rb').readlines())\r
+            Content = ConvertSpecialChar(open(DecFile, 'r').readlines())\r
         except BaseException:\r
             Logger.Error(TOOL_NAME, FILE_OPEN_FAILURE, File=DecFile,\r
                          ExtraData=ST.ERR_DECPARSE_FILEOPEN % DecFile)\r
index c5c35ede785b9fa8e7d421d216e657aa2dd17067..9ec3462c77d0c40c181b97b13caf04c56f984485 100644 (file)
@@ -151,7 +151,7 @@ def IsValidNumValUint8(Token):
     else:\r
         Base = 10\r
     try:\r
-        TokenValue = long(Token, Base)\r
+        TokenValue = int(Token, Base)\r
     except BaseException:\r
         Valid, Cause = IsValidLogicalExpr(Token, True)\r
         if Cause:\r
@@ -262,30 +262,10 @@ def IsValidPcdDatum(Type, Value):
                 Value = Value.lstrip('0')\r
                 if not Value:\r
                     return True, ""\r
-            Value = long(Value, 0)\r
-            TypeLenMap = {\r
-                #\r
-                # 0x00 - 0xff\r
-                #\r
-                'UINT8'  : 2,\r
-                #\r
-                # 0x0000 - 0xffff\r
-                #\r
-                'UINT16' : 4,\r
-                #\r
-                # 0x00000000 - 0xffffffff\r
-                #\r
-                'UINT32' : 8,\r
-                #\r
-                # 0x0 - 0xffffffffffffffff\r
-                #\r
-                'UINT64' : 16\r
-            }\r
-            HexStr = hex(Value)\r
-            #\r
-            # First two chars of HexStr are 0x and tail char is L\r
-            #\r
-            if TypeLenMap[Type] < len(HexStr) - 3:\r
+            Value = int(Value, 0)\r
+            MAX_VAL_TYPE = {"BOOLEAN": 0x01, 'UINT8': 0xFF, 'UINT16': 0xFFFF, 'UINT32': 0xFFFFFFFF,\r
+                            'UINT64': 0xFFFFFFFFFFFFFFFF}\r
+            if Value > MAX_VAL_TYPE[Type]:\r
                 return False, ST.ERR_DECPARSE_PCD_INT_EXCEED % (StrVal, Type)\r
         except BaseException:\r
             Valid, Cause = IsValidLogicalExpr(Value, True)\r
index 029a436cec5d6c54c34b92d68ba869137b5b25ab..c314892adf9ffc2e52dddf6f2941ad4b36223480 100644 (file)
@@ -205,7 +205,7 @@ def GetFileLineContent(FileName, WorkSpace, LineNo, OriginalString):
 \r
     try:\r
         FullFileName = FullFileName.replace('\\', '/')\r
-        Inputfile = open(FullFileName, "rb", 0)\r
+        Inputfile = open(FullFileName, "r")\r
         try:\r
             FileLinesList = Inputfile.readlines()\r
         except BaseException:\r
@@ -247,7 +247,7 @@ def GetGuidVerFormLibInstance(Guid, Version, WorkSpace, CurrentInfFileName):
                 continue\r
             InfFile = InfFile.replace('\\', '/')\r
             if InfFile not in GlobalData.gLIBINSTANCEDICT:\r
-                InfFileObj = open(InfFile, "rb", 0)\r
+                InfFileObj = open(InfFile, "r")\r
                 GlobalData.gLIBINSTANCEDICT[InfFile] = InfFileObj\r
             else:\r
                 InfFileObj = GlobalData.gLIBINSTANCEDICT[InfFile]\r
index cd99262e036249ffa1c68044ffd4bd15f8472e1b..5df7320324a82af124eb4d3758478a25cbf0ef68 100644 (file)
@@ -51,7 +51,7 @@ def OpenInfFile(Filename):
     FileLinesList = []\r
 \r
     try:\r
-        FInputfile = open(Filename, "rb", 0)\r
+        FInputfile = open(Filename, "r")\r
         try:\r
             FileLinesList = FInputfile.readlines()\r
         except BaseException:\r
@@ -86,7 +86,7 @@ class InfParser(InfSectionParser):
         #\r
         # Call parent class construct function\r
         #\r
-        super(InfParser, self).__init__()\r
+        InfSectionParser.__init__()\r
 \r
         self.WorkspaceDir    = WorkspaceDir\r
         self.SupArchList     = DT.ARCH_LIST\r
index 1f254058d1332685891585017ae8289dc030bd3f..d9c9d41fcb3a88721cd77e71fa4458b74c1d38bf 100644 (file)
@@ -227,7 +227,7 @@ class InfSectionParser(InfDefinSectionParser,
         self.InfBuildOptionSection = InfBuildOptionsObject()\r
         self.InfLibraryClassSection = InfLibraryClassObject()\r
         self.InfPackageSection = InfPackageObject()\r
-        self.InfPcdSection = InfPcdObject(self.MetaFiles.keys()[0])\r
+        self.InfPcdSection = InfPcdObject(list(self.MetaFiles.keys())[0])\r
         self.InfSourcesSection = InfSourcesObject()\r
         self.InfUserExtensionSection = InfUserExtensionObject()\r
         self.InfProtocolSection = InfProtocolObject()\r
@@ -455,7 +455,7 @@ class InfSectionParser(InfDefinSectionParser,
                     Arch = Match.groups(1)[0].upper()\r
                     ArchList.append(Arch)\r
             CommentSoFar = ''\r
-            for Index in xrange(1, len(List)):\r
+            for Index in range(1, len(List)):\r
                 Result = ParseComment(List[Index], DT.ALL_USAGE_TOKENS, TokenDict, [], False)\r
                 Usage = Result[0]\r
                 Type = Result[1]\r
index c055089f2cad0600a53cd313efde6d3dfafa890f..2e83c247edd1863ab8b8a3377758b243e29da0da 100644 (file)
@@ -133,7 +133,7 @@ class InfPomAlignment(ModuleObject):
         #\r
         # Should only have one ArchString Item.\r
         #\r
-        ArchString = RecordSet.keys()[0]\r
+        ArchString = list(RecordSet.keys())[0]\r
         ArchList = GetSplitValueList(ArchString, ' ')\r
         ArchList = ConvertArchList(ArchList)\r
         HasCalledFlag = False\r
index 004fc5ff2f3b5d2198efc9023b5dcc66cf42f0e7..55b63a3ca1a6f4f54ff6ddb6cc6068c263f5c68f 100644 (file)
@@ -21,6 +21,7 @@ UPT
 #\r
 import locale\r
 import sys\r
+from imp import reload\r
 encoding = locale.getdefaultlocale()[1]\r
 if encoding:\r
     reload(sys)\r
index 70d8fb19f2697d9b1c36aced87d26d1580a549f4..8125f183be5e26535f83efd1b5a216006e315251 100644 (file)
@@ -326,7 +326,7 @@ def IniToXml(IniFile):
     CurrentKey = ''\r
     PreMap = None\r
     Map = None\r
-    FileContent = ConvertSpecialChar(open(IniFile, 'rb').readlines())\r
+    FileContent = ConvertSpecialChar(open(IniFile, 'r').readlines())\r
     LastIndex = 0\r
     for Index in range(0, len(FileContent)):\r
         LastIndex = Index\r
index d170761aad8e5e5cbc5a2240d5d810de89c7b8a4..bf64d89f17d9ad830f78dfe1f7c0546eb149fd75 100644 (file)
@@ -53,7 +53,7 @@ def ConvertVariableName(VariableName):
         if SecondByte != 0:\r
             return None\r
 \r
-        if FirstByte not in xrange(0x20, 0x7F):\r
+        if FirstByte not in range(0x20, 0x7F):\r
             return None\r
         TransferedStr += ('%c')%FirstByte\r
         Index = Index + 2\r