BaseTools: Fix Python SyntaxWarning

- Windows paths must be escaped
- Regex should use raw strings

Signed-off-by: Tim Crawford <tcrawford@system76.com>
This commit is contained in:
Tim Crawford
2024-06-06 12:20:54 -06:00
parent f04bd1e3b8
commit 013e5c94d6
26 changed files with 101 additions and 101 deletions

View File

@ -34,7 +34,7 @@
import re import re
_double_star_after_invalid_regex = re.compile(r'[^/\\]\*\*') _double_star_after_invalid_regex = re.compile(r'[^/\\]\*\*')
_double_star_first_before_invalid_regex = re.compile('^\\*\\*[^/]') _double_star_first_before_invalid_regex = re.compile(r'^\\*\\*[^/]')
_double_star_middle_before_invalid_regex = re.compile(r'[^\\]\*\*[^/]') _double_star_middle_before_invalid_regex = re.compile(r'[^\\]\*\*[^/]')

View File

@ -89,12 +89,12 @@ class parser_lst(object):
return structs_file return structs_file
def struct(self):#struct:{offset:name} def struct(self):#struct:{offset:name}
unit_num = re.compile('(\d+)') unit_num = re.compile(r'(\d+)')
offset1_re = re.compile('(\d+)\[') offset1_re = re.compile(r'(\d+)\[')
pcdname_num_re = re.compile('\w+\[(\S+)\]') pcdname_num_re = re.compile(r'\w+\[(\S+)\]')
pcdname_re = re.compile('\](.*)\<') pcdname_re = re.compile(r'\](.*)\<')
pcdname2_re = re.compile('(\w+)\[') pcdname2_re = re.compile(r'(\w+)\[')
uint_re = re.compile('\<(\S+)\>') uint_re = re.compile(r'\<(\S+)\>')
name_format = re.compile(r'(?<!typedef)\s+struct (\w+) {.*?;', re.S) name_format = re.compile(r'(?<!typedef)\s+struct (\w+) {.*?;', re.S)
name=name_format.findall(self.text) name=name_format.findall(self.text)
info={} info={}
@ -214,8 +214,8 @@ class Config(object):
#Parser .config file,return list[offset,name,guid,value,help] #Parser .config file,return list[offset,name,guid,value,help]
def config_parser(self): def config_parser(self):
ids_re =re.compile('_ID:(\d+)',re.S) ids_re =re.compile(r'_ID:(\d+)',re.S)
id_re= re.compile('\s+') id_re= re.compile(r'\s+')
info = [] info = []
info_dict={} info_dict={}
with open(self.config, 'r') as text: with open(self.config, 'r') as text:
@ -435,7 +435,7 @@ class PATH(object):
def header(self,struct): def header(self,struct):
header={} header={}
head_re = re.compile('typedef.*} %s;[\n]+(.*)(?:typedef|formset)'%struct,re.M|re.S) head_re = re.compile(r'typedef.*} %s;[\n]+(.*)(?:typedef|formset)'%struct,re.M|re.S)
head_re2 = re.compile(r'#line[\s\d]+"(\S+h)"') head_re2 = re.compile(r'#line[\s\d]+"(\S+h)"')
for i in list(self.lstinf.keys()): for i in list(self.lstinf.keys()):
with open(i,'r') as lst: with open(i,'r') as lst:

View File

@ -528,7 +528,7 @@ class EfiSectionHeader(BinaryItem):
rMapEntry = re.compile('^(\w+)[ \(\w\)]* \(BaseAddress=([0-9a-fA-F]+), EntryPoint=([0-9a-fA-F]+), GUID=([0-9a-fA-F\-]+)') rMapEntry = re.compile(r'^(\w+)[ \(\w\)]* \(BaseAddress=([0-9a-fA-F]+), EntryPoint=([0-9a-fA-F]+), GUID=([0-9a-fA-F\-]+)')
class EfiFvMapFile(object): class EfiFvMapFile(object):
def __init__(self): def __init__(self):
self._mapentries = {} self._mapentries = {}

View File

@ -237,7 +237,7 @@ class CommitMessageCheck:
if sigtype == 'Cc' and len(sigs) == 0: if sigtype == 'Cc' and len(sigs) == 0:
self.error('No Cc: tags for maintainers/reviewers found!') self.error('No Cc: tags for maintainers/reviewers found!')
cve_re = re.compile('CVE-[0-9]{4}-[0-9]{5}[^0-9]') cve_re = re.compile(r'CVE-[0-9]{4}-[0-9]{5}[^0-9]')
def check_overall_format(self): def check_overall_format(self):
lines = self.msg.splitlines() lines = self.msg.splitlines()

View File

@ -54,7 +54,7 @@ gHexPattern = re.compile(r'0[xX]{}+'.format(_HexChar))
gHexPatternAll = re.compile(r'0[xX]{}+$'.format(_HexChar)) gHexPatternAll = re.compile(r'0[xX]{}+$'.format(_HexChar))
## Regular expressions for string identifier checking ## Regular expressions for string identifier checking
gIdentifierPattern = re.compile('^[a-zA-Z][a-zA-Z0-9_]*$', re.UNICODE) gIdentifierPattern = re.compile(r'^[a-zA-Z][a-zA-Z0-9_]*$', re.UNICODE)
## Regular expression for GUID c structure format ## Regular expression for GUID c structure format
_GuidCFormatPattern = r"{{\s*0[xX]{Hex}{{1,8}}\s*,\s*0[xX]{Hex}{{1,4}}\s*,\s*0[xX]{Hex}{{1,4}}" \ _GuidCFormatPattern = r"{{\s*0[xX]{Hex}{{1,8}}\s*,\s*0[xX]{Hex}{{1,4}}\s*,\s*0[xX]{Hex}{{1,4}}" \
r"\s*,\s*{{\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}" \ r"\s*,\s*{{\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}" \

View File

@ -1926,4 +1926,4 @@ def CopyDict(ori_dict):
# Remove the c/c++ comments: // and /* */ # Remove the c/c++ comments: // and /* */
# #
def RemoveCComments(ctext): def RemoveCComments(ctext):
return re.sub('//.*?\n|/\\*.*?\\*/', '\n', ctext, flags=re.S) return re.sub(r'//.*?\n|/\\*.*?\\*/', '\n', ctext, flags=re.S)

View File

@ -21,7 +21,7 @@ from CommonDataClass.Exceptions import *
from Common.LongFilePathSupport import OpenLongFilePath as open from Common.LongFilePathSupport import OpenLongFilePath as open
from Common.MultipleWorkspace import MultipleWorkspace as mws from Common.MultipleWorkspace import MultipleWorkspace as mws
gHexVerPatt = re.compile('0x[a-f0-9]{4}[a-f0-9]{4}$', re.IGNORECASE) gHexVerPatt = re.compile(r'0x[a-f0-9]{4}[a-f0-9]{4}$', re.IGNORECASE)
gHumanReadableVerPatt = re.compile(r'([1-9][0-9]*|0)\.[0-9]{1,2}$') gHumanReadableVerPatt = re.compile(r'([1-9][0-9]*|0)\.[0-9]{1,2}$')
## GetSplitValueList ## GetSplitValueList

View File

@ -1112,7 +1112,7 @@ class Check(object):
RecordSet = EccGlobalData.gDb.TblInf.Exec(SqlCommand) RecordSet = EccGlobalData.gDb.TblInf.Exec(SqlCommand)
for Record in RecordSet: for Record in RecordSet:
Path = Record[1] Path = Record[1]
Path = Path.upper().replace('\X64', '').replace('\IA32', '').replace('\EBC', '').replace('\IPF', '').replace('\ARM', '') Path = Path.upper().replace('\\X64', '').replace('\\IA32', '').replace('\\EBC', '').replace('\\IPF', '').replace('\\ARM', '')
if Path in InfPathList: if Path in InfPathList:
if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE, Record[2]): if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE, Record[2]):
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]) 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])

View File

@ -435,7 +435,7 @@ class Configuration(object):
# test that our dict and out class still match in contents. # test that our dict and out class still match in contents.
# #
if __name__ == '__main__': if __name__ == '__main__':
myconfig = Configuration("BaseTools\Source\Python\Ecc\config.ini") myconfig = Configuration("BaseTools\\Source\\Python\\Ecc\\config.ini")
for each in myconfig.__dict__: for each in myconfig.__dict__:
if each == "Filename": if each == "Filename":
continue continue

View File

@ -1841,14 +1841,14 @@ class DecParser(MetaFileParser):
if EccGlobalData.gConfig.UniCheckPCDInfo == '1' or EccGlobalData.gConfig.UniCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1': if EccGlobalData.gConfig.UniCheckPCDInfo == '1' or EccGlobalData.gConfig.UniCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1':
# check Description, Prompt information # check Description, Prompt information
PatternDesc = re.compile('##\s*([\x21-\x7E\s]*)', re.S) PatternDesc = re.compile(r'##\s*([\x21-\x7E\s]*)', re.S)
PatternPrompt = re.compile('#\s+@Prompt\s+([\x21-\x7E\s]*)', re.S) PatternPrompt = re.compile(r'#\s+@Prompt\s+([\x21-\x7E\s]*)', re.S)
Description = None Description = None
Prompt = None Prompt = None
# check @ValidRange, @ValidList and @Expression format valid # check @ValidRange, @ValidList and @Expression format valid
ErrorCodeValid = '0x0 <= %s <= 0xFFFFFFFF' ErrorCodeValid = '0x0 <= %s <= 0xFFFFFFFF'
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]+)' 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]+)'
PatternValidRng = re.compile('^' + '(NOT)?\s*' + PatternValidRangeIn + '$') PatternValidRng = re.compile(r'^' + r'(NOT)?\s*' + PatternValidRangeIn + '$')
for Comment in self._Comments: for Comment in self._Comments:
Comm = Comment[0].strip() Comm = Comment[0].strip()
if not Comm: if not Comm:
@ -2071,7 +2071,7 @@ class UniParser(object):
def CheckKeyValid(self, Key, Contents=None): def CheckKeyValid(self, Key, Contents=None):
if not Contents: if not Contents:
Contents = self.FileIn Contents = self.FileIn
KeyPattern = re.compile('#string\s+%s\s+.*?#language.*?".*?"' % Key, re.S) KeyPattern = re.compile(r'#string\s+%s\s+.*?#language.*?".*?"' % Key, re.S)
if KeyPattern.search(Contents): if KeyPattern.search(Contents):
return True return True
return False return False

View File

@ -43,7 +43,7 @@ def GetArrayPattern():
return p return p
def GetTypedefFuncPointerPattern(): def GetTypedefFuncPointerPattern():
p = re.compile('[_\w\s]*\([\w\s]*\*+\s*[_\w]+\s*\)\s*\(.*\)', re.DOTALL) p = re.compile(r'[_\w\s]*\([\w\s]*\*+\s*[_\w]+\s*\)\s*\(.*\)', re.DOTALL)
return p return p
def GetDB(): def GetDB():

View File

@ -11,7 +11,7 @@ from Common.LongFilePathSupport import OpenLongFilePath as open
gEFI_SOURCE = '' gEFI_SOURCE = ''
gEDK_SOURCE = '' gEDK_SOURCE = ''
gWORKSPACE = '' gWORKSPACE = ''
gSHELL_INF = 'Application\Shell' gSHELL_INF = 'Application\\Shell'
gMAKE_FILE = '' gMAKE_FILE = ''
gDSC_FILE = '' gDSC_FILE = ''
gFV_FILE = [] gFV_FILE = []

View File

@ -54,7 +54,7 @@ def GetArrayPattern():
# @return p: the pattern of function pointer # @return p: the pattern of function pointer
# #
def GetTypedefFuncPointerPattern(): def GetTypedefFuncPointerPattern():
p = re.compile('[_\w\s]*\([\w\s]*\*+\s*[_\w]+\s*\)\s*\(.*\)', re.DOTALL) p = re.compile(r'[_\w\s]*\([\w\s]*\*+\s*[_\w]+\s*\)\s*\(.*\)', re.DOTALL)
return p return p
## GetDB() method ## GetDB() method

View File

@ -238,7 +238,7 @@ def ParseDecPcdGenericComment (GenericComment, ContainerFile, TokenSpaceGuidCNam
# #
# To replace Macro # To replace Macro
# #
MACRO_PATTERN = '[\t\s]*\$\([A-Z][_A-Z0-9]*\)' MACRO_PATTERN = r'[\t\s]*\$\([A-Z][_A-Z0-9]*\)'
MatchedStrs = re.findall(MACRO_PATTERN, Comment) MatchedStrs = re.findall(MACRO_PATTERN, Comment)
for MatchedStr in MatchedStrs: for MatchedStr in MatchedStrs:
if MatchedStr: if MatchedStr:

View File

@ -66,13 +66,13 @@ class _ExprError(Exception):
## _ExprBase ## _ExprBase
# #
class _ExprBase: class _ExprBase:
HEX_PATTERN = '[\t\s]*0[xX][a-fA-F0-9]+' HEX_PATTERN = r'[\t\s]*0[xX][a-fA-F0-9]+'
INT_PATTERN = '[\t\s]*[0-9]+' INT_PATTERN = r'[\t\s]*[0-9]+'
MACRO_PATTERN = '[\t\s]*\$\(([A-Z][_A-Z0-9]*)\)' MACRO_PATTERN = r'[\t\s]*\$\(([A-Z][_A-Z0-9]*)\)'
PCD_PATTERN = \ PCD_PATTERN = \
'[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*' r'[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*'
QUOTED_PATTERN = '[\t\s]*L?"[^"]*"' QUOTED_PATTERN = r'[\t\s]*L?"[^"]*"'
BOOL_PATTERN = '[\t\s]*(true|True|TRUE|false|False|FALSE)' BOOL_PATTERN = r'[\t\s]*(true|True|TRUE|false|False|FALSE)'
def __init__(self, Token): def __init__(self, Token):
self.Token = Token self.Token = Token
self.Index = 0 self.Index = 0
@ -303,9 +303,9 @@ class _LogicalExpressionParser(_ExprBase):
## _ValidRangeExpressionParser ## _ValidRangeExpressionParser
# #
class _ValidRangeExpressionParser(_ExprBase): class _ValidRangeExpressionParser(_ExprBase):
INT_RANGE_PATTERN = '[\t\s]*[0-9]+[\t\s]*-[\t\s]*[0-9]+' INT_RANGE_PATTERN = r'[\t\s]*[0-9]+[\t\s]*-[\t\s]*[0-9]+'
HEX_RANGE_PATTERN = \ HEX_RANGE_PATTERN = \
'[\t\s]*0[xX][a-fA-F0-9]+[\t\s]*-[\t\s]*0[xX][a-fA-F0-9]+' r'[\t\s]*0[xX][a-fA-F0-9]+[\t\s]*-[\t\s]*0[xX][a-fA-F0-9]+'
def __init__(self, Token): def __init__(self, Token):
_ExprBase.__init__(self, Token) _ExprBase.__init__(self, Token)
self.Parens = 0 self.Parens = 0
@ -407,7 +407,7 @@ class _ValidRangeExpressionParser(_ExprBase):
## _ValidListExpressionParser ## _ValidListExpressionParser
# #
class _ValidListExpressionParser(_ExprBase): class _ValidListExpressionParser(_ExprBase):
VALID_LIST_PATTERN = '(0[xX][0-9a-fA-F]+|[0-9]+)([\t\s]*,[\t\s]*(0[xX][0-9a-fA-F]+|[0-9]+))*' VALID_LIST_PATTERN = r'(0[xX][0-9a-fA-F]+|[0-9]+)([\t\s]*,[\t\s]*(0[xX][0-9a-fA-F]+|[0-9]+))*'
def __init__(self, Token): def __init__(self, Token):
_ExprBase.__init__(self, Token) _ExprBase.__init__(self, Token)
self.NUM = 1 self.NUM = 1

View File

@ -69,11 +69,11 @@ def GuidStringToGuidStructureString(Guid):
def CheckGuidRegFormat(GuidValue): def CheckGuidRegFormat(GuidValue):
## Regular expression used to find out register format of GUID ## Regular expression used to find out register format of GUID
# #
RegFormatGuidPattern = re.compile("^\s*([0-9a-fA-F]){8}-" RegFormatGuidPattern = re.compile(r"^\s*([0-9a-fA-F]){8}-"
"([0-9a-fA-F]){4}-" r"([0-9a-fA-F]){4}-"
"([0-9a-fA-F]){4}-" r"([0-9a-fA-F]){4}-"
"([0-9a-fA-F]){4}-" r"([0-9a-fA-F]){4}-"
"([0-9a-fA-F]){12}\s*$") r"([0-9a-fA-F]){12}\s*$")
if RegFormatGuidPattern.match(GuidValue): if RegFormatGuidPattern.match(GuidValue):
return True return True
@ -837,8 +837,8 @@ def GetLibInstanceInfo(String, WorkSpace, LineNo):
ST.ERR_FILE_OPEN_FAILURE, ST.ERR_FILE_OPEN_FAILURE,
File=FullFileName) File=FullFileName)
ReFileGuidPattern = re.compile("^\s*FILE_GUID\s*=.*$") ReFileGuidPattern = re.compile(r"^\s*FILE_GUID\s*=.*$")
ReVerStringPattern = re.compile("^\s*VERSION_STRING\s*=.*$") ReVerStringPattern = re.compile(r"^\s*VERSION_STRING\s*=.*$")
FileLinesList = ProcessLineExtender(FileLinesList) FileLinesList = ProcessLineExtender(FileLinesList)
@ -978,7 +978,7 @@ def ValidateUNIFilePath(Path):
# #
# Check if the file name is valid according to the DEC and INF specification # Check if the file name is valid according to the DEC and INF specification
# #
Pattern = '[a-zA-Z0-9_][a-zA-Z0-9_\-\.]*' Pattern = r'[a-zA-Z0-9_][a-zA-Z0-9_\-\.]*'
FileName = Path.replace(Suffix, '') FileName = Path.replace(Suffix, '')
InvalidCh = re.sub(Pattern, '', FileName) InvalidCh = re.sub(Pattern, '', FileName)
if InvalidCh: if InvalidCh:

View File

@ -23,7 +23,7 @@ from Logger import StringTable as ST
# #
# Regular expression for matching macro used in DSC/DEC/INF file inclusion # Regular expression for matching macro used in DSC/DEC/INF file inclusion
# #
gMACRO_PATTERN = re.compile("\$\(([_A-Z][_A-Z0-9]*)\)", re.UNICODE) gMACRO_PATTERN = re.compile(r"\$\(([_A-Z][_A-Z0-9]*)\)", re.UNICODE)
## GetSplitValueList ## GetSplitValueList
# #
@ -167,7 +167,7 @@ def ReplaceMacro(String, MacroDefinitions=None, SelfReplacement=False, Line=None
if not Flag: if not Flag:
MacroUsed = gMACRO_PATTERN.findall(String) MacroUsed = gMACRO_PATTERN.findall(String)
else: else:
ReQuotedString = re.compile('\"') ReQuotedString = re.compile(r'\"')
QuotedStringList = ReQuotedString.split(String) QuotedStringList = ReQuotedString.split(String)
if len(QuotedStringList) >= 3: if len(QuotedStringList) >= 3:
HaveQuotedMacroFlag = True HaveQuotedMacroFlag = True

View File

@ -611,10 +611,10 @@ def ValidatePcdValueOnDatumType(Value, Type):
elif Type == 'UINT8' or Type == 'UINT16' or Type == 'UINT32' or Type == 'UINT64': elif Type == 'UINT8' or Type == 'UINT16' or Type == 'UINT32' or Type == 'UINT64':
ReIsValidUint8z = re.compile('^0[x|X][a-fA-F0-9]{2}$') ReIsValidUint8z = re.compile(r'^0[x|X][a-fA-F0-9]{2}$')
ReIsValidUint16z = re.compile('^0[x|X][a-fA-F0-9]{4}$') ReIsValidUint16z = re.compile(r'^0[x|X][a-fA-F0-9]{4}$')
ReIsValidUint32z = re.compile('^0[x|X][a-fA-F0-9]{8}$') ReIsValidUint32z = re.compile(r'^0[x|X][a-fA-F0-9]{8}$')
ReIsValidUint64z = re.compile('^0[x|X][a-fA-F0-9]{16}$') ReIsValidUint64z = re.compile(r'^0[x|X][a-fA-F0-9]{16}$')
if not ReIsValidUint8z.match(Value) and Type == 'UINT8': if not ReIsValidUint8z.match(Value) and Type == 'UINT8':
return False return False

View File

@ -25,10 +25,10 @@ from Library.ExpressionValidate import IsValidStringTest
from Library.Misc import CheckGuidRegFormat from Library.Misc import CheckGuidRegFormat
TOOL_NAME = 'DecParser' TOOL_NAME = 'DecParser'
VERSION_PATTERN = '[0-9]+(\.[0-9]+)?' VERSION_PATTERN = r'[0-9]+(\.[0-9]+)?'
CVAR_PATTERN = '[_a-zA-Z][a-zA-Z0-9_]*' CVAR_PATTERN = r'[_a-zA-Z][a-zA-Z0-9_]*'
PCD_TOKEN_PATTERN = '(0[xX]0*[a-fA-F0-9]{1,8})|([0-9]+)' PCD_TOKEN_PATTERN = r'(0[xX]0*[a-fA-F0-9]{1,8})|([0-9]+)'
MACRO_PATTERN = '[A-Z][_A-Z0-9]*' MACRO_PATTERN = r'[A-Z][_A-Z0-9]*'
## FileContent ## FileContent
# Class to hold DEC file information # Class to hold DEC file information

View File

@ -53,12 +53,12 @@ def GetLibInstanceInfo(String, WorkSpace, LineNo, CurrentInfFileName):
# #
# To deal with library instance specified by GUID and version # To deal with library instance specified by GUID and version
# #
RegFormatGuidPattern = re.compile("\s*([0-9a-fA-F]){8}-" RegFormatGuidPattern = re.compile(r"\s*([0-9a-fA-F]){8}-"
"([0-9a-fA-F]){4}-" r"([0-9a-fA-F]){4}-"
"([0-9a-fA-F]){4}-" r"([0-9a-fA-F]){4}-"
"([0-9a-fA-F]){4}-" r"([0-9a-fA-F]){4}-"
"([0-9a-fA-F]){12}\s*") r"([0-9a-fA-F]){12}\s*")
VersionPattern = re.compile('[\t\s]*\d+(\.\d+)?[\t\s]*') VersionPattern = re.compile(r'[\t\s]*\d+(\.\d+)?[\t\s]*')
GuidMatchedObj = RegFormatGuidPattern.search(String) GuidMatchedObj = RegFormatGuidPattern.search(String)
if String.upper().startswith('GUID') and GuidMatchedObj and 'Version' in String: if String.upper().startswith('GUID') and GuidMatchedObj and 'Version' in String:
@ -75,8 +75,8 @@ def GetLibInstanceInfo(String, WorkSpace, LineNo, CurrentInfFileName):
FileLinesList = GetFileLineContent(String, WorkSpace, LineNo, OriginalString) FileLinesList = GetFileLineContent(String, WorkSpace, LineNo, OriginalString)
ReFindFileGuidPattern = re.compile("^\s*FILE_GUID\s*=.*$") ReFindFileGuidPattern = re.compile(r"^\s*FILE_GUID\s*=.*$")
ReFindVerStringPattern = re.compile("^\s*VERSION_STRING\s*=.*$") ReFindVerStringPattern = re.compile(r"^\s*VERSION_STRING\s*=.*$")
for Line in FileLinesList: for Line in FileLinesList:
if ReFindFileGuidPattern.match(Line): if ReFindFileGuidPattern.match(Line):
@ -106,8 +106,8 @@ def GetPackageListInfo(FileNameString, WorkSpace, LineNo):
FileLinesList = GetFileLineContent(FileNameString, WorkSpace, LineNo, '') FileLinesList = GetFileLineContent(FileNameString, WorkSpace, LineNo, '')
RePackageHeader = re.compile('^\s*\[Packages.*\].*$') RePackageHeader = re.compile(r'^\s*\[Packages.*\].*$')
ReDefineHeader = re.compile('^\s*\[Defines].*$') ReDefineHeader = re.compile(r'^\s*\[Defines].*$')
PackageHederFlag = False PackageHederFlag = False
DefineHeaderFlag = False DefineHeaderFlag = False
@ -255,8 +255,8 @@ def GetGuidVerFormLibInstance(Guid, Version, WorkSpace, CurrentInfFileName):
FileLinesList = InfFileObj.readlines() FileLinesList = InfFileObj.readlines()
FileLinesList = ProcessLineExtender(FileLinesList) FileLinesList = ProcessLineExtender(FileLinesList)
ReFindFileGuidPattern = re.compile("^\s*FILE_GUID\s*=.*$") ReFindFileGuidPattern = re.compile(r"^\s*FILE_GUID\s*=.*$")
ReFindVerStringPattern = re.compile("^\s*VERSION_STRING\s*=.*$") ReFindVerStringPattern = re.compile(r"^\s*VERSION_STRING\s*=.*$")
for Line in FileLinesList: for Line in FileLinesList:
if ReFindFileGuidPattern.match(Line): if ReFindFileGuidPattern.match(Line):

View File

@ -40,7 +40,7 @@ def GetValidateArchList(LineContent):
TempArch = GetSplitValueList(TempArch, '(', 1)[0] TempArch = GetSplitValueList(TempArch, '(', 1)[0]
ArchList = re.split('\s+', TempArch) ArchList = re.split(r'\s+', TempArch)
NewArchList = [] NewArchList = []
for Arch in ArchList: for Arch in ArchList:
if IsValidArch(Arch): if IsValidArch(Arch):

View File

@ -109,7 +109,7 @@ def InfExpandMacro(Content, LineInfo, GlobalMacros=None, SectionMacros=None, Fla
return Content return Content
else: else:
for Macro in MacroUsed: for Macro in MacroUsed:
gQuotedMacro = re.compile(".*\".*\$\(%s\).*\".*"%(Macro)) gQuotedMacro = re.compile(r".*\".*\$\(%s\).*\".*"%(Macro))
if not gQuotedMacro.match(Content): if not gQuotedMacro.match(Content):
# #
# Still have MACROs can't be expanded. # Still have MACROs can't be expanded.
@ -130,8 +130,8 @@ def IsBinaryInf(FileLineList):
if not FileLineList: if not FileLineList:
return False return False
ReIsSourcesSection = re.compile("^\s*\[Sources.*\]\s.*$", re.IGNORECASE) ReIsSourcesSection = re.compile(r"^\s*\[Sources.*\]\s.*$", re.IGNORECASE)
ReIsBinarySection = re.compile("^\s*\[Binaries.*\]\s.*$", re.IGNORECASE) ReIsBinarySection = re.compile(r"^\s*\[Binaries.*\]\s.*$", re.IGNORECASE)
BinarySectionFoundFlag = False BinarySectionFoundFlag = False
for Line in FileLineList: for Line in FileLineList:
@ -155,7 +155,7 @@ def IsBinaryInf(FileLineList):
# @return Flag # @return Flag
# #
def IsLibInstanceInfo(String): def IsLibInstanceInfo(String):
ReIsLibInstance = re.compile("^\s*##\s*@LIB_INSTANCES\s*$") ReIsLibInstance = re.compile(r"^\s*##\s*@LIB_INSTANCES\s*$")
if ReIsLibInstance.match(String): if ReIsLibInstance.match(String):
return True return True
else: else:
@ -171,7 +171,7 @@ def IsLibInstanceInfo(String):
# @return Flag # @return Flag
# #
def IsAsBuildOptionInfo(String): def IsAsBuildOptionInfo(String):
ReIsAsBuildInstance = re.compile("^\s*##\s*@AsBuilt\s*$") ReIsAsBuildInstance = re.compile(r"^\s*##\s*@AsBuilt\s*$")
if ReIsAsBuildInstance.match(String): if ReIsAsBuildInstance.match(String):
return True return True
else: else:

View File

@ -747,12 +747,12 @@ class DecPomAlignment(PackageObject):
# #
# deal with "NOT EQ", "NOT LT", "NOT GT", "NOT LE", "NOT GE", "NOT NOT" # deal with "NOT EQ", "NOT LT", "NOT GT", "NOT LE", "NOT GE", "NOT NOT"
# #
NOTNOT_Pattern = '[\t\s]*NOT[\t\s]+NOT[\t\s]*' NOTNOT_Pattern = r'[\t\s]*NOT[\t\s]+NOT[\t\s]*'
NOTGE_Pattern = '[\t\s]*NOT[\t\s]+GE[\t\s]*' NOTGE_Pattern = r'[\t\s]*NOT[\t\s]+GE[\t\s]*'
NOTLE_Pattern = '[\t\s]*NOT[\t\s]+LE[\t\s]*' NOTLE_Pattern = r'[\t\s]*NOT[\t\s]+LE[\t\s]*'
NOTGT_Pattern = '[\t\s]*NOT[\t\s]+GT[\t\s]*' NOTGT_Pattern = r'[\t\s]*NOT[\t\s]+GT[\t\s]*'
NOTLT_Pattern = '[\t\s]*NOT[\t\s]+LT[\t\s]*' NOTLT_Pattern = r'[\t\s]*NOT[\t\s]+LT[\t\s]*'
NOTEQ_Pattern = '[\t\s]*NOT[\t\s]+EQ[\t\s]*' NOTEQ_Pattern = r'[\t\s]*NOT[\t\s]+EQ[\t\s]*'
ReplaceValue = re.compile(NOTNOT_Pattern).sub('', ReplaceValue) ReplaceValue = re.compile(NOTNOT_Pattern).sub('', ReplaceValue)
ReplaceValue = re.compile(NOTLT_Pattern).sub('x >= ', ReplaceValue) ReplaceValue = re.compile(NOTLT_Pattern).sub('x >= ', ReplaceValue)
ReplaceValue = re.compile(NOTGT_Pattern).sub('x <= ', ReplaceValue) ReplaceValue = re.compile(NOTGT_Pattern).sub('x <= ', ReplaceValue)
@ -785,7 +785,7 @@ class DecPomAlignment(PackageObject):
if ReplaceValue.find('!') >= 0 and ReplaceValue[ReplaceValue.index('!') + 1] != '=': if ReplaceValue.find('!') >= 0 and ReplaceValue[ReplaceValue.index('!') + 1] != '=':
ReplaceValue = ReplaceValue.replace('!', ' not ') ReplaceValue = ReplaceValue.replace('!', ' not ')
if '.' in ReplaceValue: if '.' in ReplaceValue:
Pattern = '[a-zA-Z0-9]{1,}\.[a-zA-Z0-9]{1,}' Pattern = r'[a-zA-Z0-9]{1,}\.[a-zA-Z0-9]{1,}'
MatchedList = re.findall(Pattern, ReplaceValue) MatchedList = re.findall(Pattern, ReplaceValue)
for MatchedItem in MatchedList: for MatchedItem in MatchedList:
if MatchedItem not in self.PcdDefaultValueDict: if MatchedItem not in self.PcdDefaultValueDict:
@ -814,7 +814,7 @@ class DecPomAlignment(PackageObject):
# #
# Delete the 'L' prefix of a quoted string, this operation is for eval() # Delete the 'L' prefix of a quoted string, this operation is for eval()
# #
QUOTED_PATTERN = '[\t\s]*L?"[^"]*"' QUOTED_PATTERN = r'[\t\s]*L?"[^"]*"'
QuotedMatchedObj = re.search(QUOTED_PATTERN, Expression) QuotedMatchedObj = re.search(QUOTED_PATTERN, Expression)
if QuotedMatchedObj: if QuotedMatchedObj:
MatchedStr = QuotedMatchedObj.group().strip() MatchedStr = QuotedMatchedObj.group().strip()
@ -847,7 +847,7 @@ class DecPomAlignment(PackageObject):
# #
# Delete the 'L' prefix of a quoted string, this operation is for eval() # Delete the 'L' prefix of a quoted string, this operation is for eval()
# #
QUOTED_PATTERN = '[\t\s]*L?"[^"]*"' QUOTED_PATTERN = r'[\t\s]*L?"[^"]*"'
QuotedMatchedObj = re.search(QUOTED_PATTERN, DefaultValue) QuotedMatchedObj = re.search(QUOTED_PATTERN, DefaultValue)
if QuotedMatchedObj: if QuotedMatchedObj:
MatchedStr = QuotedMatchedObj.group().strip() MatchedStr = QuotedMatchedObj.group().strip()

View File

@ -200,9 +200,9 @@ def ValidateRegValues(Key, Value):
('[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}' ('[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}'
'-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}', '-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}',
ST.ERR_GUID_VALUE % Value), ST.ERR_GUID_VALUE % Value),
'Version' : ('[0-9]+(\.[0-9]+)?', ST.ERR_VERSION_VALUE % \ 'Version' : (r'[0-9]+(\.[0-9]+)?', ST.ERR_VERSION_VALUE % \
(Key, Value)), (Key, Value)),
'XmlSpecification' : ('1\.1', ST.ERR_VERSION_XMLSPEC % Value) 'XmlSpecification' : (r'1\.1', ST.ERR_VERSION_XMLSPEC % Value)
} }
if Key not in ValidateMap: if Key not in ValidateMap:
return True, '' return True, ''

View File

@ -100,11 +100,11 @@ class PcdErrorXml(object):
def TransferValidRange2Expr(self, TokenSpaceGuidCName, CName, ValidRange): def TransferValidRange2Expr(self, TokenSpaceGuidCName, CName, ValidRange):
if self.Expression: if self.Expression:
pass pass
INT_RANGE_PATTERN1 = '[\t\s]*[0-9]+[\t\s]*-[\t\s]*[0-9]+' INT_RANGE_PATTERN1 = r'[\t\s]*[0-9]+[\t\s]*-[\t\s]*[0-9]+'
INT_RANGE_PATTERN2 = '[\t\s]*(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*' INT_RANGE_PATTERN2 = r'[\t\s]*(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*'
HEX_RANGE_PATTERN1 = \ HEX_RANGE_PATTERN1 = \
'[\t\s]*0[xX][a-fA-F0-9]+[\t\s]*-[\t\s]*0[xX][a-fA-F0-9]+' r'[\t\s]*0[xX][a-fA-F0-9]+[\t\s]*-[\t\s]*0[xX][a-fA-F0-9]+'
HEX_RANGE_PATTERN2 = '[\t\s]*(LT|GT|LE|GE|XOR|EQ)[\t\s]+0[xX][a-fA-F0-9]+[\t\s]*' HEX_RANGE_PATTERN2 = r'[\t\s]*(LT|GT|LE|GE|XOR|EQ)[\t\s]+0[xX][a-fA-F0-9]+[\t\s]*'
IntMatch1 = re.compile(INT_RANGE_PATTERN1) IntMatch1 = re.compile(INT_RANGE_PATTERN1)
IntMatch2 = re.compile(INT_RANGE_PATTERN2) IntMatch2 = re.compile(INT_RANGE_PATTERN2)
HexMatch1 = re.compile(HEX_RANGE_PATTERN1) HexMatch1 = re.compile(HEX_RANGE_PATTERN1)
@ -158,18 +158,18 @@ class PcdErrorXml(object):
pass pass
PCD_PATTERN = \ PCD_PATTERN = \
'[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*' r'[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*'
IntPattern1 = \ IntPattern1 = \
'[\t\s]*\([\t\s]*'+PCD_PATTERN+'[\t\s]+GE[\t\s]+\d+[\t\s]*\)[\t\s]+AND[\t\s]+\([\t\s]*'+\ r'[\t\s]*\([\t\s]*'+PCD_PATTERN+r'[\t\s]+GE[\t\s]+\d+[\t\s]*\)[\t\s]+AND[\t\s]+\([\t\s]*'+\
PCD_PATTERN+'[\t\s]+LE[\t\s]+\d+[\t\s]*\)' PCD_PATTERN+r'[\t\s]+LE[\t\s]+\d+[\t\s]*\)'
IntPattern1 = IntPattern1.replace(' ', '') IntPattern1 = IntPattern1.replace(' ', '')
IntPattern2 = '[\t\s]*'+PCD_PATTERN+'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*' IntPattern2 = r'[\t\s]*'+PCD_PATTERN+r'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*'
HexPattern1 = \ HexPattern1 = \
'[\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'[\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]*'+\
PCD_PATTERN+'[\t\s]+LE[\t\s]+0[xX][0-9a-fA-F]+[\t\s]*\)' PCD_PATTERN+r'[\t\s]+LE[\t\s]+0[xX][0-9a-fA-F]+[\t\s]*\)'
HexPattern1 = HexPattern1.replace(' ', '') HexPattern1 = HexPattern1.replace(' ', '')
HexPattern2 = '[\t\s]*'+PCD_PATTERN+'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+0[xX][0-9a-zA-Z]+[\t\s]*' 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]*'
# #
# Do the Hex1 conversion # Do the Hex1 conversion
@ -180,7 +180,7 @@ class PcdErrorXml(object):
# #
# To match items on both sides of '-' # To match items on both sides of '-'
# #
RangeItemList = re.compile('[\t\s]*0[xX][0-9a-fA-F]+[\t\s]*').findall(HexMatchedItem) RangeItemList = re.compile(r'[\t\s]*0[xX][0-9a-fA-F]+[\t\s]*').findall(HexMatchedItem)
if RangeItemList and len(RangeItemList) == 2: if RangeItemList and len(RangeItemList) == 2:
HexRangeDict[HexMatchedItem] = RangeItemList HexRangeDict[HexMatchedItem] = RangeItemList
@ -204,7 +204,7 @@ class PcdErrorXml(object):
# #
# To match items on both sides of '-' # To match items on both sides of '-'
# #
RangeItemList = re.compile('[\t\s]*\d+[\t\s]*').findall(MatchedItem) RangeItemList = re.compile(r'[\t\s]*\d+[\t\s]*').findall(MatchedItem)
if RangeItemList and len(RangeItemList) == 2: if RangeItemList and len(RangeItemList) == 2:
IntRangeDict[MatchedItem] = RangeItemList IntRangeDict[MatchedItem] = RangeItemList

View File

@ -281,33 +281,33 @@ class DistributionPackageXml(object):
# #
XmlContent = \ XmlContent = \
re.sub(r'[\s\r\n]*SupArchList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*COMMON' re.sub(r'[\s\r\n]*SupArchList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*COMMON'
'[\s\r\n]*"', '', XmlContent) r'[\s\r\n]*"', '', XmlContent)
XmlContent = \ XmlContent = \
re.sub(r'[\s\r\n]*SupArchList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*common' re.sub(r'[\s\r\n]*SupArchList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*common'
'[\s\r\n]*"', '', XmlContent) r'[\s\r\n]*"', '', XmlContent)
# #
# Remove <SupArchList> COMMON </SupArchList> # Remove <SupArchList> COMMON </SupArchList>
# #
XmlContent = \ XmlContent = \
re.sub(r'[\s\r\n]*<SupArchList>[\s\r\n]*COMMON[\s\r\n]*' re.sub(r'[\s\r\n]*<SupArchList>[\s\r\n]*COMMON[\s\r\n]*'
'</SupArchList>[\s\r\n]*', '', XmlContent) r'</SupArchList>[\s\r\n]*', '', XmlContent)
# #
# Remove <SupArchList> common </SupArchList> # Remove <SupArchList> common </SupArchList>
# #
XmlContent = \ XmlContent = \
re.sub(r'[\s\r\n]*<SupArchList>[\s\r\n]*' re.sub(r'[\s\r\n]*<SupArchList>[\s\r\n]*'
'common[\s\r\n]*</SupArchList>[\s\r\n]*', '', XmlContent) r'common[\s\r\n]*</SupArchList>[\s\r\n]*', '', XmlContent)
# #
# Remove SupModList="COMMON" or "common" # Remove SupModList="COMMON" or "common"
# #
XmlContent = \ XmlContent = \
re.sub(r'[\s\r\n]*SupModList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*COMMON' re.sub(r'[\s\r\n]*SupModList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*COMMON'
'[\s\r\n]*"', '', XmlContent) r'[\s\r\n]*"', '', XmlContent)
XmlContent = \ XmlContent = \
re.sub(r'[\s\r\n]*SupModList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*common' re.sub(r'[\s\r\n]*SupModList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*common'
'[\s\r\n]*"', '', XmlContent) r'[\s\r\n]*"', '', XmlContent)
return XmlContent return XmlContent