]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/UPT/Library/StringUtils.py
BaseTools/UPT:merge UPT Tool use Python2 and Python3
[mirror_edk2.git] / BaseTools / Source / Python / UPT / Library / StringUtils.py
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