]> xenbits.xensource.com Git - people/aperard/ovmf.git/commitdiff
BaseTools: Fix multiple 'invalid escape sequence' warnings in tests
authorMike Beaton <mjsbeaton@gmail.com>
Wed, 18 Sep 2024 15:40:08 +0000 (16:40 +0100)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Mon, 23 Sep 2024 04:55:53 +0000 (04:55 +0000)
In Python 3.12 invalid escape sequences in strings moved from
DeprecationWarning to SyntaxWarning
(ref https://docs.python.org/3/whatsnew/changelog.html#python-3-12-0-final
and search for gh-98401). In a future Python version this will become
SyntaxError.

Multiple instances of these SyntaxWarnings are currently printed when
running the BaseTools tests using Python 3.12 (though without actually
failing the affected tests).

This commit updates all lines which were causing this type of warning.

Typical examples which needed fixing are:

- "BaseTools\Source\Python" representing a path: "\S" and "\P" are invalid
escape sequences, therefore left unchanged, therefore the test works
(with a warning in Python 3.12). r"BaseTools\Source\Python" represents
the same string, but with escapes turned off completely thus no warning.

- Where '\t\s' is used as a regex pattern, then chr(9) + '\\s' is sent
to the regex parser (with a warning in Python 3.12) since '\s' is not a
valid Python escape sequence. This works correctly, though arguably for
the wrong reasons. r'\t\s' sends the same as '\\t\\s', as originally
intended and with no warning.

(Note that ' and " are not fundamentally different in Python.)

Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
18 files changed:
BaseTools/Source/Python/Ecc/Check.py
BaseTools/Source/Python/Ecc/Configuration.py
BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py
BaseTools/Source/Python/Ecc/c.py
BaseTools/Source/Python/Eot/EotGlobalData.py
BaseTools/Source/Python/Eot/c.py
BaseTools/Source/Python/UPT/Library/CommentParsing.py
BaseTools/Source/Python/UPT/Library/ExpressionValidate.py
BaseTools/Source/Python/UPT/Library/Misc.py
BaseTools/Source/Python/UPT/Library/StringUtils.py
BaseTools/Source/Python/UPT/Parser/DecParserMisc.py
BaseTools/Source/Python/UPT/Parser/InfAsBuiltProcess.py
BaseTools/Source/Python/UPT/Parser/InfDefineSectionParser.py
BaseTools/Source/Python/UPT/Parser/InfParserMisc.py
BaseTools/Source/Python/UPT/PomAdapter/DecPomAlignment.py
BaseTools/Source/Python/UPT/Xml/IniToXml.py
BaseTools/Source/Python/UPT/Xml/PcdXml.py
BaseTools/Source/Python/UPT/Xml/XmlParser.py

index 4561961141d4a6264021e6d2f4ac7166044fe14a..160e803764fe7f50f189eb722e3c77919181876f 100644 (file)
@@ -1092,7 +1092,7 @@ class Check(object):
             RecordSet = EccGlobalData.gDb.TblInf.Exec(SqlCommand)\r
             for Record in RecordSet:\r
                 Path = Record[1]\r
-                Path = Path.upper().replace('\X64', '').replace('\IA32', '').replace('\EBC', '').replace('\IPF', '').replace('\ARM', '')\r
+                Path = Path.upper().replace(r'\X64', '').replace(r'\IA32', '').replace(r'\EBC', '').replace(r'\IPF', '').replace(r'\ARM', '')\r
                 if Path in InfPathList:\r
                     if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE, Record[2]):\r
                         EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE, OtherMsg="The source file [%s] is existing in module directory but it is not described in INF file." % (Record[2]), BelongsToTable='File', BelongsToItem=Record[0])\r
index d4aab1d1310b90aee33893aecb32511820e022be..9a9ca49eee41c6442333bc67158a9988fdbbfaa6 100644 (file)
@@ -432,7 +432,7 @@ class Configuration(object):
 # test that our dict and out class still match in contents.\r
 #\r
 if __name__ == '__main__':\r
-    myconfig = Configuration("BaseTools\Source\Python\Ecc\config.ini")\r
+    myconfig = Configuration(r"BaseTools\Source\Python\Ecc\config.ini")\r
     for each in myconfig.__dict__:\r
         if each == "Filename":\r
             continue\r
index 2d98ac5eadb2532fce7e03374360003d41856e89..2ef2847b1ba9a8b4c39577c6f343363046f21d8b 100644 (file)
@@ -1841,14 +1841,14 @@ class DecParser(MetaFileParser):
 \r
         if EccGlobalData.gConfig.UniCheckPCDInfo == '1' or EccGlobalData.gConfig.UniCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1':\r
             # check Description, Prompt information\r
-            PatternDesc = re.compile('##\s*([\x21-\x7E\s]*)', re.S)\r
-            PatternPrompt = re.compile('#\s+@Prompt\s+([\x21-\x7E\s]*)', re.S)\r
+            PatternDesc = re.compile(r'##\s*([\x21-\x7E\s]*)', re.S)\r
+            PatternPrompt = re.compile(r'#\s+@Prompt\s+([\x21-\x7E\s]*)', re.S)\r
             Description = None\r
             Prompt = None\r
             # check @ValidRange, @ValidList and @Expression format valid\r
             ErrorCodeValid = '0x0 <= %s <= 0xFFFFFFFF'\r
-            PatternValidRangeIn = '(NOT)?\s*(\d+\s*-\s*\d+|0[xX][a-fA-F0-9]+\s*-\s*0[xX][a-fA-F0-9]+|LT\s*\d+|LT\s*0[xX][a-fA-F0-9]+|GT\s*\d+|GT\s*0[xX][a-fA-F0-9]+|LE\s*\d+|LE\s*0[xX][a-fA-F0-9]+|GE\s*\d+|GE\s*0[xX][a-fA-F0-9]+|XOR\s*\d+|XOR\s*0[xX][a-fA-F0-9]+|EQ\s*\d+|EQ\s*0[xX][a-fA-F0-9]+)'\r
-            PatternValidRng = re.compile('^' + '(NOT)?\s*' + PatternValidRangeIn + '$')\r
+            PatternValidRangeIn = r'(NOT)?\s*(\d+\s*-\s*\d+|0[xX][a-fA-F0-9]+\s*-\s*0[xX][a-fA-F0-9]+|LT\s*\d+|LT\s*0[xX][a-fA-F0-9]+|GT\s*\d+|GT\s*0[xX][a-fA-F0-9]+|LE\s*\d+|LE\s*0[xX][a-fA-F0-9]+|GE\s*\d+|GE\s*0[xX][a-fA-F0-9]+|XOR\s*\d+|XOR\s*0[xX][a-fA-F0-9]+|EQ\s*\d+|EQ\s*0[xX][a-fA-F0-9]+)'\r
+            PatternValidRng = re.compile('^' + r'(NOT)?\s*' + PatternValidRangeIn + '$')\r
             for Comment in self._Comments:\r
                 Comm = Comment[0].strip()\r
                 if not Comm:\r
@@ -2071,7 +2071,7 @@ class UniParser(object):
     def CheckKeyValid(self, Key, Contents=None):\r
         if not Contents:\r
             Contents = self.FileIn\r
-        KeyPattern = re.compile('#string\s+%s\s+.*?#language.*?".*?"' % Key, re.S)\r
+        KeyPattern = re.compile(r'#string\s+%s\s+.*?#language.*?".*?"' % Key, re.S)\r
         if KeyPattern.search(Contents):\r
             return True\r
         return False\r
index 61ad084fcc5b85b5a2194afd8bb1a4b4b65fdaee..0ebdc1a99605469c6c5f418580e67fa425a1ec54 100644 (file)
@@ -43,7 +43,7 @@ def GetArrayPattern():
     return p\r
 \r
 def GetTypedefFuncPointerPattern():\r
-    p = re.compile('[_\w\s]*\([\w\s]*\*+\s*[_\w]+\s*\)\s*\(.*\)', re.DOTALL)\r
+    p = re.compile(r'[_\w\s]*\([\w\s]*\*+\s*[_\w]+\s*\)\s*\(.*\)', re.DOTALL)\r
     return p\r
 \r
 def GetDB():\r
index 3218f86f441cc023da7414355fa730e262824b14..887a7a259545b15cb91b7661386e7ba00f590fc1 100644 (file)
@@ -11,7 +11,7 @@ from Common.LongFilePathSupport import OpenLongFilePath as open
 gEFI_SOURCE = ''\r
 gEDK_SOURCE = ''\r
 gWORKSPACE = ''\r
-gSHELL_INF = 'Application\Shell'\r
+gSHELL_INF = r'Application\Shell'\r
 gMAKE_FILE = ''\r
 gDSC_FILE = ''\r
 gFV_FILE = []\r
index dd9530fed6d0878e959357358168a1de63c26a86..a85564d60030ccfd636b5948abca19ffabce74ee 100644 (file)
@@ -54,7 +54,7 @@ def GetArrayPattern():
 #  @return p:    the pattern of function pointer\r
 #\r
 def GetTypedefFuncPointerPattern():\r
-    p = re.compile('[_\w\s]*\([\w\s]*\*+\s*[_\w]+\s*\)\s*\(.*\)', re.DOTALL)\r
+    p = re.compile(r'[_\w\s]*\([\w\s]*\*+\s*[_\w]+\s*\)\s*\(.*\)', re.DOTALL)\r
     return p\r
 \r
 ## GetDB() method\r
index 7ba9830d34ac8b721d28db5d6814f8445aba77ec..7b1ce05493c19ef0aa3f4d0b6b28df11f2558b9a 100644 (file)
@@ -238,7 +238,7 @@ def ParseDecPcdGenericComment (GenericComment, ContainerFile, TokenSpaceGuidCNam
         #\r
         # To replace Macro\r
         #\r
-        MACRO_PATTERN = '[\t\s]*\$\([A-Z][_A-Z0-9]*\)'\r
+        MACRO_PATTERN = r'[\t\s]*\$\([A-Z][_A-Z0-9]*\)'\r
         MatchedStrs =  re.findall(MACRO_PATTERN, Comment)\r
         for MatchedStr in MatchedStrs:\r
             if MatchedStr:\r
index 7718ca12e5cf7b22e63cc6fab089fad6ca22c4bb..2c0750efe45d1f40e56d0498649abad50232119f 100644 (file)
@@ -66,13 +66,13 @@ class _ExprError(Exception):
 ## _ExprBase\r
 #\r
 class _ExprBase:\r
-    HEX_PATTERN = '[\t\s]*0[xX][a-fA-F0-9]+'\r
-    INT_PATTERN = '[\t\s]*[0-9]+'\r
-    MACRO_PATTERN = '[\t\s]*\$\(([A-Z][_A-Z0-9]*)\)'\r
+    HEX_PATTERN = r'[\t\s]*0[xX][a-fA-F0-9]+'\r
+    INT_PATTERN = r'[\t\s]*[0-9]+'\r
+    MACRO_PATTERN = r'[\t\s]*\$\(([A-Z][_A-Z0-9]*)\)'\r
     PCD_PATTERN = \\r
-    '[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*'\r
-    QUOTED_PATTERN = '[\t\s]*L?"[^"]*"'\r
-    BOOL_PATTERN = '[\t\s]*(true|True|TRUE|false|False|FALSE)'\r
+    r'[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*'\r
+    QUOTED_PATTERN = r'[\t\s]*L?"[^"]*"'\r
+    BOOL_PATTERN = r'[\t\s]*(true|True|TRUE|false|False|FALSE)'\r
     def __init__(self, Token):\r
         self.Token = Token\r
         self.Index = 0\r
@@ -303,9 +303,9 @@ class _LogicalExpressionParser(_ExprBase):
 ## _ValidRangeExpressionParser\r
 #\r
 class _ValidRangeExpressionParser(_ExprBase):\r
-    INT_RANGE_PATTERN = '[\t\s]*[0-9]+[\t\s]*-[\t\s]*[0-9]+'\r
+    INT_RANGE_PATTERN = r'[\t\s]*[0-9]+[\t\s]*-[\t\s]*[0-9]+'\r
     HEX_RANGE_PATTERN = \\r
-        '[\t\s]*0[xX][a-fA-F0-9]+[\t\s]*-[\t\s]*0[xX][a-fA-F0-9]+'\r
+        r'[\t\s]*0[xX][a-fA-F0-9]+[\t\s]*-[\t\s]*0[xX][a-fA-F0-9]+'\r
     def __init__(self, Token):\r
         _ExprBase.__init__(self, Token)\r
         self.Parens = 0\r
@@ -407,7 +407,7 @@ class _ValidRangeExpressionParser(_ExprBase):
 ## _ValidListExpressionParser\r
 #\r
 class _ValidListExpressionParser(_ExprBase):\r
-    VALID_LIST_PATTERN = '(0[xX][0-9a-fA-F]+|[0-9]+)([\t\s]*,[\t\s]*(0[xX][0-9a-fA-F]+|[0-9]+))*'\r
+    VALID_LIST_PATTERN = r'(0[xX][0-9a-fA-F]+|[0-9]+)([\t\s]*,[\t\s]*(0[xX][0-9a-fA-F]+|[0-9]+))*'\r
     def __init__(self, Token):\r
         _ExprBase.__init__(self, Token)\r
         self.NUM = 1\r
index 77ba3584e00054b56aa94535e59f676db44a0fee..f3688de4b1b7d5e44d5fc60ebaeed624d333750e 100644 (file)
@@ -69,11 +69,11 @@ def GuidStringToGuidStructureString(Guid):
 def CheckGuidRegFormat(GuidValue):\r
     ## Regular expression used to find out register format of GUID\r
     #\r
-    RegFormatGuidPattern = re.compile("^\s*([0-9a-fA-F]){8}-"\r
+    RegFormatGuidPattern = re.compile(r"^\s*([0-9a-fA-F]){8}-"\r
                                        "([0-9a-fA-F]){4}-"\r
                                        "([0-9a-fA-F]){4}-"\r
                                        "([0-9a-fA-F]){4}-"\r
-                                       "([0-9a-fA-F]){12}\s*$")\r
+                                       r"([0-9a-fA-F]){12}\s*$")\r
 \r
     if RegFormatGuidPattern.match(GuidValue):\r
         return True\r
@@ -837,8 +837,8 @@ def GetLibInstanceInfo(String, WorkSpace, LineNo):
                          ST.ERR_FILE_OPEN_FAILURE,\r
                          File=FullFileName)\r
 \r
-        ReFileGuidPattern = re.compile("^\s*FILE_GUID\s*=.*$")\r
-        ReVerStringPattern = re.compile("^\s*VERSION_STRING\s*=.*$")\r
+        ReFileGuidPattern = re.compile(r"^\s*FILE_GUID\s*=.*$")\r
+        ReVerStringPattern = re.compile(r"^\s*VERSION_STRING\s*=.*$")\r
 \r
         FileLinesList = ProcessLineExtender(FileLinesList)\r
 \r
@@ -978,7 +978,7 @@ def ValidateUNIFilePath(Path):
     #\r
     # Check if the file name is valid according to the DEC and INF specification\r
     #\r
-    Pattern = '[a-zA-Z0-9_][a-zA-Z0-9_\-\.]*'\r
+    Pattern = r'[a-zA-Z0-9_][a-zA-Z0-9_\-\.]*'\r
     FileName = Path.replace(Suffix, '')\r
     InvalidCh = re.sub(Pattern, '', FileName)\r
     if InvalidCh:\r
index fbc5177caf5ab6b63bd07428ae88f2adfed5dbdc..a6f47d0dd79b895804573ee81bfe8fbb386c26d4 100644 (file)
@@ -23,7 +23,7 @@ from Logger import StringTable as ST
 #\r
 # Regular expression for matching macro used in DSC/DEC/INF file inclusion\r
 #\r
-gMACRO_PATTERN = re.compile("\$\(([_A-Z][_A-Z0-9]*)\)", re.UNICODE)\r
+gMACRO_PATTERN = re.compile(r"\$\(([_A-Z][_A-Z0-9]*)\)", re.UNICODE)\r
 \r
 ## GetSplitValueList\r
 #\r
index 27990467d1c51a1bdedadc9d0d56b3f8bbce8d69..92dbcaaabeb0b7f9b912ecd5c201ac1f6779bea9 100644 (file)
@@ -25,7 +25,7 @@ from Library.ExpressionValidate import IsValidStringTest
 from Library.Misc import CheckGuidRegFormat\r
 \r
 TOOL_NAME = 'DecParser'\r
-VERSION_PATTERN = '[0-9]+(\.[0-9]+)?'\r
+VERSION_PATTERN = r'[0-9]+(\.[0-9]+)?'\r
 CVAR_PATTERN = '[_a-zA-Z][a-zA-Z0-9_]*'\r
 PCD_TOKEN_PATTERN = '(0[xX]0*[a-fA-F0-9]{1,8})|([0-9]+)'\r
 MACRO_PATTERN = '[A-Z][_A-Z0-9]*'\r
index 992b609120f88baa647250c1df013679b61a3462..fb646191b1862332c2a552f0a9f0104e53d3669a 100644 (file)
@@ -53,12 +53,12 @@ def GetLibInstanceInfo(String, WorkSpace, LineNo, CurrentInfFileName):
     #\r
     # To deal with library instance specified by GUID and version\r
     #\r
-    RegFormatGuidPattern = re.compile("\s*([0-9a-fA-F]){8}-"\r
+    RegFormatGuidPattern = re.compile(r"\s*([0-9a-fA-F]){8}-"\r
                                        "([0-9a-fA-F]){4}-"\r
                                        "([0-9a-fA-F]){4}-"\r
                                        "([0-9a-fA-F]){4}-"\r
-                                       "([0-9a-fA-F]){12}\s*")\r
-    VersionPattern = re.compile('[\t\s]*\d+(\.\d+)?[\t\s]*')\r
+                                       r"([0-9a-fA-F]){12}\s*")\r
+    VersionPattern = re.compile(r'[\t\s]*\d+(\.\d+)?[\t\s]*')\r
     GuidMatchedObj = RegFormatGuidPattern.search(String)\r
 \r
     if String.upper().startswith('GUID') and GuidMatchedObj and 'Version' in String:\r
@@ -75,8 +75,8 @@ def GetLibInstanceInfo(String, WorkSpace, LineNo, CurrentInfFileName):
     FileLinesList = GetFileLineContent(String, WorkSpace, LineNo, OriginalString)\r
 \r
 \r
-    ReFindFileGuidPattern = re.compile("^\s*FILE_GUID\s*=.*$")\r
-    ReFindVerStringPattern = re.compile("^\s*VERSION_STRING\s*=.*$")\r
+    ReFindFileGuidPattern = re.compile(r"^\s*FILE_GUID\s*=.*$")\r
+    ReFindVerStringPattern = re.compile(r"^\s*VERSION_STRING\s*=.*$")\r
 \r
     for Line in FileLinesList:\r
         if ReFindFileGuidPattern.match(Line):\r
@@ -106,8 +106,8 @@ def GetPackageListInfo(FileNameString, WorkSpace, LineNo):
 \r
     FileLinesList = GetFileLineContent(FileNameString, WorkSpace, LineNo, '')\r
 \r
-    RePackageHeader = re.compile('^\s*\[Packages.*\].*$')\r
-    ReDefineHeader = re.compile('^\s*\[Defines].*$')\r
+    RePackageHeader = re.compile(r'^\s*\[Packages.*\].*$')\r
+    ReDefineHeader = re.compile(r'^\s*\[Defines].*$')\r
 \r
     PackageHederFlag = False\r
     DefineHeaderFlag = False\r
@@ -255,8 +255,8 @@ def GetGuidVerFormLibInstance(Guid, Version, WorkSpace, CurrentInfFileName):
             FileLinesList = InfFileObj.readlines()\r
             FileLinesList = ProcessLineExtender(FileLinesList)\r
 \r
-            ReFindFileGuidPattern = re.compile("^\s*FILE_GUID\s*=.*$")\r
-            ReFindVerStringPattern = re.compile("^\s*VERSION_STRING\s*=.*$")\r
+            ReFindFileGuidPattern = re.compile(r"^\s*FILE_GUID\s*=.*$")\r
+            ReFindVerStringPattern = re.compile(r"^\s*VERSION_STRING\s*=.*$")\r
 \r
             for Line in FileLinesList:\r
                 if ReFindFileGuidPattern.match(Line):\r
index a63e40e61787a6bd22f1e94adb67064b98586a6a..9edcc2cb3f4ceb917f139aaa2a90a636ea789e90 100644 (file)
@@ -40,7 +40,7 @@ def GetValidateArchList(LineContent):
 \r
         TempArch = GetSplitValueList(TempArch, '(', 1)[0]\r
 \r
-        ArchList = re.split('\s+', TempArch)\r
+        ArchList = re.split(r'\s+', TempArch)\r
         NewArchList = []\r
         for Arch in ArchList:\r
             if IsValidArch(Arch):\r
index d01ae9aa0246e86c3d50efe9f15373946f57e7b4..eb768b9a1241d5597e73df07b142682874d38681 100644 (file)
@@ -109,7 +109,7 @@ def InfExpandMacro(Content, LineInfo, GlobalMacros=None, SectionMacros=None, Fla
         return Content\r
     else:\r
         for Macro in MacroUsed:\r
-            gQuotedMacro = re.compile(".*\".*\$\(%s\).*\".*"%(Macro))\r
+            gQuotedMacro = re.compile(r".*\".*\$\(%s\).*\".*"%(Macro))\r
             if not gQuotedMacro.match(Content):\r
                 #\r
                 # Still have MACROs can't be expanded.\r
@@ -130,8 +130,8 @@ def IsBinaryInf(FileLineList):
     if not FileLineList:\r
         return False\r
 \r
-    ReIsSourcesSection = re.compile("^\s*\[Sources.*\]\s.*$", re.IGNORECASE)\r
-    ReIsBinarySection = re.compile("^\s*\[Binaries.*\]\s.*$", re.IGNORECASE)\r
+    ReIsSourcesSection = re.compile(r"^\s*\[Sources.*\]\s.*$", re.IGNORECASE)\r
+    ReIsBinarySection = re.compile(r"^\s*\[Binaries.*\]\s.*$", re.IGNORECASE)\r
     BinarySectionFoundFlag = False\r
 \r
     for Line in FileLineList:\r
@@ -155,7 +155,7 @@ def IsBinaryInf(FileLineList):
 # @return Flag\r
 #\r
 def IsLibInstanceInfo(String):\r
-    ReIsLibInstance = re.compile("^\s*##\s*@LIB_INSTANCES\s*$")\r
+    ReIsLibInstance = re.compile(r"^\s*##\s*@LIB_INSTANCES\s*$")\r
     if ReIsLibInstance.match(String):\r
         return True\r
     else:\r
@@ -171,7 +171,7 @@ def IsLibInstanceInfo(String):
 # @return Flag\r
 #\r
 def IsAsBuildOptionInfo(String):\r
-    ReIsAsBuildInstance = re.compile("^\s*##\s*@AsBuilt\s*$")\r
+    ReIsAsBuildInstance = re.compile(r"^\s*##\s*@AsBuilt\s*$")\r
     if ReIsAsBuildInstance.match(String):\r
         return True\r
     else:\r
index da92fe5d3eb2a784092face05f45c9086a7de0f2..b1f8135bc780cca697185874c23716e4bb5c8101 100644 (file)
@@ -747,12 +747,12 @@ class DecPomAlignment(PackageObject):
         #\r
         # deal with "NOT EQ", "NOT LT", "NOT GT", "NOT LE", "NOT GE", "NOT NOT"\r
         #\r
-        NOTNOT_Pattern = '[\t\s]*NOT[\t\s]+NOT[\t\s]*'\r
-        NOTGE_Pattern = '[\t\s]*NOT[\t\s]+GE[\t\s]*'\r
-        NOTLE_Pattern = '[\t\s]*NOT[\t\s]+LE[\t\s]*'\r
-        NOTGT_Pattern = '[\t\s]*NOT[\t\s]+GT[\t\s]*'\r
-        NOTLT_Pattern = '[\t\s]*NOT[\t\s]+LT[\t\s]*'\r
-        NOTEQ_Pattern = '[\t\s]*NOT[\t\s]+EQ[\t\s]*'\r
+        NOTNOT_Pattern = r'[\t\s]*NOT[\t\s]+NOT[\t\s]*'\r
+        NOTGE_Pattern = r'[\t\s]*NOT[\t\s]+GE[\t\s]*'\r
+        NOTLE_Pattern = r'[\t\s]*NOT[\t\s]+LE[\t\s]*'\r
+        NOTGT_Pattern = r'[\t\s]*NOT[\t\s]+GT[\t\s]*'\r
+        NOTLT_Pattern = r'[\t\s]*NOT[\t\s]+LT[\t\s]*'\r
+        NOTEQ_Pattern = r'[\t\s]*NOT[\t\s]+EQ[\t\s]*'\r
         ReplaceValue = re.compile(NOTNOT_Pattern).sub('', ReplaceValue)\r
         ReplaceValue = re.compile(NOTLT_Pattern).sub('x >= ', ReplaceValue)\r
         ReplaceValue = re.compile(NOTGT_Pattern).sub('x <= ', ReplaceValue)\r
@@ -785,7 +785,7 @@ class DecPomAlignment(PackageObject):
         if ReplaceValue.find('!') >= 0 and ReplaceValue[ReplaceValue.index('!') + 1] != '=':\r
             ReplaceValue = ReplaceValue.replace('!', ' not ')\r
         if '.' in ReplaceValue:\r
-            Pattern = '[a-zA-Z0-9]{1,}\.[a-zA-Z0-9]{1,}'\r
+            Pattern = r'[a-zA-Z0-9]{1,}\.[a-zA-Z0-9]{1,}'\r
             MatchedList = re.findall(Pattern, ReplaceValue)\r
             for MatchedItem in MatchedList:\r
                 if MatchedItem not in self.PcdDefaultValueDict:\r
@@ -814,7 +814,7 @@ class DecPomAlignment(PackageObject):
                     #\r
                     # Delete the 'L' prefix of a quoted string, this operation is for eval()\r
                     #\r
-                    QUOTED_PATTERN = '[\t\s]*L?"[^"]*"'\r
+                    QUOTED_PATTERN = r'[\t\s]*L?"[^"]*"'\r
                     QuotedMatchedObj = re.search(QUOTED_PATTERN, Expression)\r
                     if QuotedMatchedObj:\r
                         MatchedStr = QuotedMatchedObj.group().strip()\r
@@ -847,7 +847,7 @@ class DecPomAlignment(PackageObject):
             #\r
             # Delete the 'L' prefix of a quoted string, this operation is for eval()\r
             #\r
-            QUOTED_PATTERN = '[\t\s]*L?"[^"]*"'\r
+            QUOTED_PATTERN = r'[\t\s]*L?"[^"]*"'\r
             QuotedMatchedObj = re.search(QUOTED_PATTERN, DefaultValue)\r
             if QuotedMatchedObj:\r
                 MatchedStr = QuotedMatchedObj.group().strip()\r
index 3dc4001313de3038387be26d71a7677549bf3542..2c01c97fa519453a5215391cbaed0004ae524576 100644 (file)
@@ -200,9 +200,9 @@ def ValidateRegValues(Key, Value):
             ('[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}'\r
             '-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}',\r
             ST.ERR_GUID_VALUE % Value),\r
-        'Version'   :   ('[0-9]+(\.[0-9]+)?', ST.ERR_VERSION_VALUE % \\r
+        'Version'   :   (r'[0-9]+(\.[0-9]+)?', ST.ERR_VERSION_VALUE % \\r
                          (Key, Value)),\r
-        'XmlSpecification' : ('1\.1', ST.ERR_VERSION_XMLSPEC % Value)\r
+        'XmlSpecification' : (r'1\.1', ST.ERR_VERSION_XMLSPEC % Value)\r
     }\r
     if Key not in ValidateMap:\r
         return True, ''\r
index bbcee45a0132ca89b8aecaa9bfccd16c928659a1..ca95c820c9a9fa384f9ddd546f11dd69fbb4b49a 100644 (file)
@@ -100,11 +100,11 @@ class PcdErrorXml(object):
     def TransferValidRange2Expr(self, TokenSpaceGuidCName, CName, ValidRange):\r
         if self.Expression:\r
             pass\r
-        INT_RANGE_PATTERN1 = '[\t\s]*[0-9]+[\t\s]*-[\t\s]*[0-9]+'\r
-        INT_RANGE_PATTERN2 = '[\t\s]*(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*'\r
+        INT_RANGE_PATTERN1 = r'[\t\s]*[0-9]+[\t\s]*-[\t\s]*[0-9]+'\r
+        INT_RANGE_PATTERN2 = r'[\t\s]*(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*'\r
         HEX_RANGE_PATTERN1 = \\r
-            '[\t\s]*0[xX][a-fA-F0-9]+[\t\s]*-[\t\s]*0[xX][a-fA-F0-9]+'\r
-        HEX_RANGE_PATTERN2 = '[\t\s]*(LT|GT|LE|GE|XOR|EQ)[\t\s]+0[xX][a-fA-F0-9]+[\t\s]*'\r
+            r'[\t\s]*0[xX][a-fA-F0-9]+[\t\s]*-[\t\s]*0[xX][a-fA-F0-9]+'\r
+        HEX_RANGE_PATTERN2 = r'[\t\s]*(LT|GT|LE|GE|XOR|EQ)[\t\s]+0[xX][a-fA-F0-9]+[\t\s]*'\r
         IntMatch1 = re.compile(INT_RANGE_PATTERN1)\r
         IntMatch2 = re.compile(INT_RANGE_PATTERN2)\r
         HexMatch1 = re.compile(HEX_RANGE_PATTERN1)\r
@@ -158,18 +158,18 @@ class PcdErrorXml(object):
             pass\r
 \r
         PCD_PATTERN = \\r
-        '[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*'\r
+        r'[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*'\r
         IntPattern1 = \\r
-        '[\t\s]*\([\t\s]*'+PCD_PATTERN+'[\t\s]+GE[\t\s]+\d+[\t\s]*\)[\t\s]+AND[\t\s]+\([\t\s]*'+\\r
-        PCD_PATTERN+'[\t\s]+LE[\t\s]+\d+[\t\s]*\)'\r
+        r'[\t\s]*\([\t\s]*'+PCD_PATTERN+r'[\t\s]+GE[\t\s]+\d+[\t\s]*\)[\t\s]+AND[\t\s]+\([\t\s]*'+\\r
+        PCD_PATTERN+r'[\t\s]+LE[\t\s]+\d+[\t\s]*\)'\r
         IntPattern1 = IntPattern1.replace(' ', '')\r
-        IntPattern2 = '[\t\s]*'+PCD_PATTERN+'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*'\r
+        IntPattern2 = r'[\t\s]*'+PCD_PATTERN+r'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*'\r
 \r
         HexPattern1 = \\r
-        '[\t\s]*\([\t\s]*'+PCD_PATTERN+'[\t\s]+GE[\t\s]+0[xX][0-9a-fA-F]+[\t\s]*\)[\t\s]+AND[\t\s]+\([\t\s]*'+\\r
-        PCD_PATTERN+'[\t\s]+LE[\t\s]+0[xX][0-9a-fA-F]+[\t\s]*\)'\r
+        r'[\t\s]*\([\t\s]*'+PCD_PATTERN+r'[\t\s]+GE[\t\s]+0[xX][0-9a-fA-F]+[\t\s]*\)[\t\s]+AND[\t\s]+\([\t\s]*'+\\r
+        PCD_PATTERN+r'[\t\s]+LE[\t\s]+0[xX][0-9a-fA-F]+[\t\s]*\)'\r
         HexPattern1 = HexPattern1.replace(' ', '')\r
-        HexPattern2 = '[\t\s]*'+PCD_PATTERN+'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+0[xX][0-9a-zA-Z]+[\t\s]*'\r
+        HexPattern2 = r'[\t\s]*'+PCD_PATTERN+r'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+0[xX][0-9a-zA-Z]+[\t\s]*'\r
 \r
         #\r
         # Do the Hex1 conversion\r
@@ -180,7 +180,7 @@ class PcdErrorXml(object):
             #\r
             # To match items on both sides of '-'\r
             #\r
-            RangeItemList = re.compile('[\t\s]*0[xX][0-9a-fA-F]+[\t\s]*').findall(HexMatchedItem)\r
+            RangeItemList = re.compile(r'[\t\s]*0[xX][0-9a-fA-F]+[\t\s]*').findall(HexMatchedItem)\r
             if RangeItemList and len(RangeItemList) == 2:\r
                 HexRangeDict[HexMatchedItem] = RangeItemList\r
 \r
@@ -204,7 +204,7 @@ class PcdErrorXml(object):
             #\r
             # To match items on both sides of '-'\r
             #\r
-            RangeItemList = re.compile('[\t\s]*\d+[\t\s]*').findall(MatchedItem)\r
+            RangeItemList = re.compile(r'[\t\s]*\d+[\t\s]*').findall(MatchedItem)\r
             if RangeItemList and len(RangeItemList) == 2:\r
                 IntRangeDict[MatchedItem] = RangeItemList\r
 \r
index 8e22a280f655b62f96bd1f148eac6aa448a1a219..f23958883180127ece0d846b8d0996e7217252c8 100644 (file)
@@ -281,33 +281,33 @@ class DistributionPackageXml(object):
             #\r
             XmlContent = \\r
             re.sub(r'[\s\r\n]*SupArchList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*COMMON'\r
-            '[\s\r\n]*"', '', XmlContent)\r
+            r'[\s\r\n]*"', '', XmlContent)\r
             XmlContent = \\r
             re.sub(r'[\s\r\n]*SupArchList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*common'\r
-            '[\s\r\n]*"', '', XmlContent)\r
+            r'[\s\r\n]*"', '', XmlContent)\r
             #\r
             # Remove <SupArchList> COMMON </SupArchList>\r
             #\r
             XmlContent = \\r
             re.sub(r'[\s\r\n]*<SupArchList>[\s\r\n]*COMMON[\s\r\n]*'\r
-            '</SupArchList>[\s\r\n]*', '', XmlContent)\r
+            r'</SupArchList>[\s\r\n]*', '', XmlContent)\r
 \r
             #\r
             # Remove <SupArchList> common </SupArchList>\r
             #\r
             XmlContent = \\r
             re.sub(r'[\s\r\n]*<SupArchList>[\s\r\n]*'\r
-            'common[\s\r\n]*</SupArchList>[\s\r\n]*', '', XmlContent)\r
+            r'common[\s\r\n]*</SupArchList>[\s\r\n]*', '', XmlContent)\r
 \r
             #\r
             # Remove SupModList="COMMON" or "common"\r
             #\r
             XmlContent = \\r
             re.sub(r'[\s\r\n]*SupModList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*COMMON'\r
-            '[\s\r\n]*"', '', XmlContent)\r
+            r'[\s\r\n]*"', '', XmlContent)\r
             XmlContent = \\r
             re.sub(r'[\s\r\n]*SupModList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*common'\r
-            '[\s\r\n]*"', '', XmlContent)\r
+            r'[\s\r\n]*"', '', XmlContent)\r
 \r
             return XmlContent\r
 \r