BaseTools/UPT: Porting UPT Tool from Python2 to Python3

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Yonghong Zhu 2018-09-04 10:39:47 +08:00
parent 9d7e1e56a7
commit 1b2e077260
25 changed files with 89 additions and 103 deletions

View File

@ -66,7 +66,7 @@ class RecoverMgr:
arc = self._tryhook(path) arc = self._tryhook(path)
if arc and os.path.isfile(path): if arc and os.path.isfile(path):
self._createzip() self._createzip()
self.zip.write(path, arc.encode('utf_8')) self.zip.write(path, arc)
sta = os.stat(path) sta = os.stat(path)
oldmode = stat.S_IMODE(sta.st_mode) oldmode = stat.S_IMODE(sta.st_mode)
self.rlist.append(_PathInfo(_CHMOD, path, oldmode)) self.rlist.append(_PathInfo(_CHMOD, path, oldmode))

View File

@ -44,7 +44,7 @@ class IpiDatabase(object):
Dir = os.path.dirname(DbPath) Dir = os.path.dirname(DbPath)
if not os.path.isdir(Dir): if not os.path.isdir(Dir):
os.mkdir(Dir) os.mkdir(Dir)
self.Conn = sqlite3.connect(unicode(DbPath), isolation_level='DEFERRED') self.Conn = sqlite3.connect(DbPath, isolation_level='DEFERRED')
self.Conn.execute("PRAGMA page_size=4096") self.Conn.execute("PRAGMA page_size=4096")
self.Conn.execute("PRAGMA synchronous=OFF") self.Conn.execute("PRAGMA synchronous=OFF")
self.Cur = self.Conn.cursor() self.Cur = self.Conn.cursor()

View File

@ -585,17 +585,17 @@ def GenPackageUNIEncodeFile(PackageObject, UniFileHeader = '', Encoding=TAB_ENCO
ContainerFile = GetUniFileName(os.path.dirname(PackageObject.GetFullPath()), PackageObject.GetBaseName()) ContainerFile = GetUniFileName(os.path.dirname(PackageObject.GetFullPath()), PackageObject.GetBaseName())
Content = UniFileHeader + '\r\n' Content = UniFileHeader + '\n'
Content += '\r\n' Content += '\n'
Content += FormatUniEntry('#string ' + TAB_DEC_PACKAGE_ABSTRACT, PackageObject.GetAbstract(), ContainerFile) + '\r\n' Content += FormatUniEntry('#string ' + TAB_DEC_PACKAGE_ABSTRACT, PackageObject.GetAbstract(), ContainerFile) + '\n'
Content += FormatUniEntry('#string ' + TAB_DEC_PACKAGE_DESCRIPTION, PackageObject.GetDescription(), ContainerFile) \ Content += FormatUniEntry('#string ' + TAB_DEC_PACKAGE_DESCRIPTION, PackageObject.GetDescription(), ContainerFile) \
+ '\r\n' + '\n'
Content += FormatUniEntry('#string ' + TAB_DEC_BINARY_ABSTRACT, BinaryAbstract, ContainerFile) + '\r\n' Content += FormatUniEntry('#string ' + TAB_DEC_BINARY_ABSTRACT, BinaryAbstract, ContainerFile) + '\n'
Content += FormatUniEntry('#string ' + TAB_DEC_BINARY_DESCRIPTION, BinaryDescription, ContainerFile) + '\r\n' Content += FormatUniEntry('#string ' + TAB_DEC_BINARY_DESCRIPTION, BinaryDescription, ContainerFile) + '\n'
PromptGenList = [] PromptGenList = []
HelpTextGenList = [] HelpTextGenList = []
@ -612,7 +612,7 @@ def GenPackageUNIEncodeFile(PackageObject, UniFileHeader = '', Encoding=TAB_ENCO
if (PcdPromptStrName, Lang) not in PromptGenList: if (PcdPromptStrName, Lang) not in PromptGenList:
TokenValueList.append((Lang, PromptStr)) TokenValueList.append((Lang, PromptStr))
PromptGenList.append((PcdPromptStrName, Lang)) PromptGenList.append((PcdPromptStrName, Lang))
PromptString = FormatUniEntry(PcdPromptStrName, TokenValueList, ContainerFile) + '\r\n' PromptString = FormatUniEntry(PcdPromptStrName, TokenValueList, ContainerFile) + '\n'
if PromptString not in Content: if PromptString not in Content:
Content += PromptString Content += PromptString
@ -628,7 +628,7 @@ def GenPackageUNIEncodeFile(PackageObject, UniFileHeader = '', Encoding=TAB_ENCO
if (PcdHelpStrName, Lang) not in HelpTextGenList: if (PcdHelpStrName, Lang) not in HelpTextGenList:
TokenValueList.append((Lang, HelpStr)) TokenValueList.append((Lang, HelpStr))
HelpTextGenList.append((PcdHelpStrName, Lang)) HelpTextGenList.append((PcdHelpStrName, Lang))
HelpTextString = FormatUniEntry(PcdHelpStrName, TokenValueList, ContainerFile) + '\r\n' HelpTextString = FormatUniEntry(PcdHelpStrName, TokenValueList, ContainerFile) + '\n'
if HelpTextString not in Content: if HelpTextString not in Content:
Content += HelpTextString Content += HelpTextString
@ -639,7 +639,7 @@ def GenPackageUNIEncodeFile(PackageObject, UniFileHeader = '', Encoding=TAB_ENCO
PcdErrStrName = '#string ' + TAB_STR_TOKENCNAME + TAB_UNDERLINE_SPLIT + Pcd.GetTokenSpaceGuidCName() \ PcdErrStrName = '#string ' + TAB_STR_TOKENCNAME + TAB_UNDERLINE_SPLIT + Pcd.GetTokenSpaceGuidCName() \
+ TAB_UNDERLINE_SPLIT + TAB_STR_TOKENERR \ + TAB_UNDERLINE_SPLIT + TAB_STR_TOKENERR \
+ TAB_UNDERLINE_SPLIT + ErrorNo[2:] + TAB_UNDERLINE_SPLIT + ErrorNo[2:]
PcdErrString = FormatUniEntry(PcdErrStrName, PcdError.GetErrorMessageList(), ContainerFile) + '\r\n' PcdErrString = FormatUniEntry(PcdErrStrName, PcdError.GetErrorMessageList(), ContainerFile) + '\n'
if PcdErrString not in Content: if PcdErrString not in Content:
Content += PcdErrString Content += PcdErrString

View File

@ -234,22 +234,22 @@ def GenModuleUNIEncodeFile(ModuleObject, UniFileHeader='', Encoding=DT.TAB_ENCOD
if not os.path.exists(os.path.dirname(ModuleObject.GetFullPath())): if not os.path.exists(os.path.dirname(ModuleObject.GetFullPath())):
os.makedirs(os.path.dirname(ModuleObject.GetFullPath())) os.makedirs(os.path.dirname(ModuleObject.GetFullPath()))
Content = UniFileHeader + '\r\n' Content = UniFileHeader + '\n'
Content += '\r\n' Content += '\n'
Content += FormatUniEntry('#string ' + DT.TAB_INF_ABSTRACT, ModuleObject.GetAbstract(), ContainerFile) + '\r\n' Content += FormatUniEntry('#string ' + DT.TAB_INF_ABSTRACT, ModuleObject.GetAbstract(), ContainerFile) + '\n'
Content += FormatUniEntry('#string ' + DT.TAB_INF_DESCRIPTION, ModuleObject.GetDescription(), ContainerFile) \ Content += FormatUniEntry('#string ' + DT.TAB_INF_DESCRIPTION, ModuleObject.GetDescription(), ContainerFile) \
+ '\r\n' + '\n'
BinaryAbstractString = FormatUniEntry('#string ' + DT.TAB_INF_BINARY_ABSTRACT, BinaryAbstract, ContainerFile) BinaryAbstractString = FormatUniEntry('#string ' + DT.TAB_INF_BINARY_ABSTRACT, BinaryAbstract, ContainerFile)
if BinaryAbstractString: if BinaryAbstractString:
Content += BinaryAbstractString + '\r\n' Content += BinaryAbstractString + '\n'
BinaryDescriptionString = FormatUniEntry('#string ' + DT.TAB_INF_BINARY_DESCRIPTION, BinaryDescription, \ BinaryDescriptionString = FormatUniEntry('#string ' + DT.TAB_INF_BINARY_DESCRIPTION, BinaryDescription, \
ContainerFile) ContainerFile)
if BinaryDescriptionString: if BinaryDescriptionString:
Content += BinaryDescriptionString + '\r\n' Content += BinaryDescriptionString + '\n'
if not os.path.exists(ContainerFile): if not os.path.exists(ContainerFile):
File = codecs.open(ContainerFile, 'wb', Encoding) File = codecs.open(ContainerFile, 'wb', Encoding)
@ -274,7 +274,7 @@ def GenDefines(ModuleObject):
if not DefinesDict: if not DefinesDict:
continue continue
for Statement in DefinesDict: for Statement in DefinesDict:
if Statement.split(DT.TAB_EQUAL_SPLIT) > 1: if len(Statement.split(DT.TAB_EQUAL_SPLIT)) > 1:
Statement = (u'%s ' % Statement.split(DT.TAB_EQUAL_SPLIT, 1)[0]).ljust(LeftOffset) \ Statement = (u'%s ' % Statement.split(DT.TAB_EQUAL_SPLIT, 1)[0]).ljust(LeftOffset) \
+ u'= %s' % Statement.split(DT.TAB_EQUAL_SPLIT, 1)[1].lstrip() + u'= %s' % Statement.split(DT.TAB_EQUAL_SPLIT, 1)[1].lstrip()
SortedArch = DT.TAB_ARCH_COMMON SortedArch = DT.TAB_ARCH_COMMON
@ -409,7 +409,7 @@ def GenLibraryClasses(ModuleObject):
Statement += '|' + FFE Statement += '|' + FFE
ModuleList = LibraryClass.GetSupModuleList() ModuleList = LibraryClass.GetSupModuleList()
ArchList = LibraryClass.GetSupArchList() ArchList = LibraryClass.GetSupArchList()
for Index in xrange(0, len(ArchList)): for Index in range(0, len(ArchList)):
ArchList[Index] = ConvertArchForInstall(ArchList[Index]) ArchList[Index] = ConvertArchForInstall(ArchList[Index])
ArchList.sort() ArchList.sort()
SortedArch = ' '.join(ArchList) SortedArch = ' '.join(ArchList)
@ -572,7 +572,7 @@ def GenUserExtensions(ModuleObject):
# if not Statement: # if not Statement:
# continue # continue
ArchList = UserExtension.GetSupArchList() ArchList = UserExtension.GetSupArchList()
for Index in xrange(0, len(ArchList)): for Index in range(0, len(ArchList)):
ArchList[Index] = ConvertArchForInstall(ArchList[Index]) ArchList[Index] = ConvertArchForInstall(ArchList[Index])
ArchList.sort() ArchList.sort()
KeyList = [] KeyList = []

View File

@ -124,50 +124,46 @@ def GenHeaderCommentSection(Abstract, Description, Copyright, License, IsBinaryH
# #
# Convert special character to (c), (r) and (tm). # Convert special character to (c), (r) and (tm).
# #
if isinstance(Abstract, unicode):
Abstract = ConvertSpecialUnicodes(Abstract)
if isinstance(Description, unicode):
Description = ConvertSpecialUnicodes(Description)
if IsBinaryHeader: if IsBinaryHeader:
Content += CommChar * 2 + TAB_SPACE_SPLIT + TAB_BINARY_HEADER_COMMENT + '\r\n' Content += CommChar * 2 + TAB_SPACE_SPLIT + TAB_BINARY_HEADER_COMMENT + '\n'
elif CommChar == TAB_COMMENT_EDK1_SPLIT: elif CommChar == TAB_COMMENT_EDK1_SPLIT:
Content += CommChar + TAB_SPACE_SPLIT + TAB_COMMENT_EDK1_START + TAB_STAR + TAB_SPACE_SPLIT +\ Content += CommChar + TAB_SPACE_SPLIT + TAB_COMMENT_EDK1_START + TAB_STAR + TAB_SPACE_SPLIT +\
TAB_HEADER_COMMENT + '\r\n' TAB_HEADER_COMMENT + '\n'
else: else:
Content += CommChar * 2 + TAB_SPACE_SPLIT + TAB_HEADER_COMMENT + '\r\n' Content += CommChar * 2 + TAB_SPACE_SPLIT + TAB_HEADER_COMMENT + '\n'
if Abstract: if Abstract:
Abstract = Abstract.rstrip('\r\n') Abstract = Abstract.rstrip('\n')
Content += CommChar + TAB_SPACE_SPLIT + ('\r\n' + CommChar + TAB_SPACE_SPLIT).join(GetSplitValueList\ Content += CommChar + TAB_SPACE_SPLIT + ('\n' + CommChar + TAB_SPACE_SPLIT).join(GetSplitValueList\
(Abstract, '\n')) (Abstract, '\n'))
Content += '\r\n' + CommChar + '\r\n' Content += '\n' + CommChar + '\n'
else: else:
Content += CommChar + '\r\n' Content += CommChar + '\n'
if Description: if Description:
Description = Description.rstrip('\r\n') Description = Description.rstrip('\n')
Content += CommChar + TAB_SPACE_SPLIT + ('\r\n' + CommChar + TAB_SPACE_SPLIT).join(GetSplitValueList\ Content += CommChar + TAB_SPACE_SPLIT + ('\n' + CommChar + TAB_SPACE_SPLIT).join(GetSplitValueList\
(Description, '\n')) (Description, '\n'))
Content += '\r\n' + CommChar + '\r\n' Content += '\n' + CommChar + '\n'
# #
# There is no '#\n' line to separate multiple copyright lines in code base # There is no '#\n' line to separate multiple copyright lines in code base
# #
if Copyright: if Copyright:
Copyright = Copyright.rstrip('\r\n') Copyright = Copyright.rstrip('\n')
Content += CommChar + TAB_SPACE_SPLIT + ('\r\n' + CommChar + TAB_SPACE_SPLIT).join\ Content += CommChar + TAB_SPACE_SPLIT + ('\n' + CommChar + TAB_SPACE_SPLIT).join\
(GetSplitValueList(Copyright, '\n')) (GetSplitValueList(Copyright, '\n'))
Content += '\r\n' + CommChar + '\r\n' Content += '\n' + CommChar + '\n'
if License: if License:
License = License.rstrip('\r\n') License = License.rstrip('\n')
Content += CommChar + TAB_SPACE_SPLIT + ('\r\n' + CommChar + TAB_SPACE_SPLIT).join(GetSplitValueList\ Content += CommChar + TAB_SPACE_SPLIT + ('\n' + CommChar + TAB_SPACE_SPLIT).join(GetSplitValueList\
(License, '\n')) (License, '\n'))
Content += '\r\n' + CommChar + '\r\n' Content += '\n' + CommChar + '\n'
if CommChar == TAB_COMMENT_EDK1_SPLIT: if CommChar == TAB_COMMENT_EDK1_SPLIT:
Content += CommChar + TAB_SPACE_SPLIT + TAB_STAR + TAB_COMMENT_EDK1_END + '\r\n' Content += CommChar + TAB_SPACE_SPLIT + TAB_STAR + TAB_COMMENT_EDK1_END + '\n'
else: else:
Content += CommChar * 2 + '\r\n' Content += CommChar * 2 + '\n'
return Content return Content

View File

@ -74,7 +74,7 @@ def ParseHeaderCommentSection(CommentList, FileName = None, IsBinaryHeader = Fal
# first find the last copyright line # first find the last copyright line
# #
Last = 0 Last = 0
for Index in xrange(len(CommentList)-1, 0, -1): for Index in range(len(CommentList)-1, 0, -1):
Line = CommentList[Index][0] Line = CommentList[Index][0]
if _IsCopyrightLine(Line): if _IsCopyrightLine(Line):
Last = Index Last = Index
@ -206,17 +206,14 @@ def ParsePcdErrorCode (Value = None, ContainerFile = None, LineNum = None):
Base = 16 Base = 16
else: else:
Base = 10 Base = 10
ErrorCode = long(Value, Base) ErrorCode = int(Value, Base)
if ErrorCode > PCD_ERR_CODE_MAX_SIZE or ErrorCode < 0: if ErrorCode > PCD_ERR_CODE_MAX_SIZE or ErrorCode < 0:
Logger.Error('Parser', Logger.Error('Parser',
FORMAT_NOT_SUPPORTED, FORMAT_NOT_SUPPORTED,
"The format %s of ErrorCode is not valid, should be UNIT32 type or long type" % Value, "The format %s of ErrorCode is not valid, should be UNIT32 type or long type" % Value,
File = ContainerFile, File = ContainerFile,
Line = LineNum) Line = LineNum)
# return hex(ErrorCode)
# To delete the tailing 'L'
#
return hex(ErrorCode)[:-1]
except ValueError as XStr: except ValueError as XStr:
if XStr: if XStr:
pass pass

View File

@ -14,7 +14,6 @@
''' '''
ExpressionValidate ExpressionValidate
''' '''
from __future__ import print_function
## ##
# Import Modules # Import Modules

View File

@ -32,7 +32,7 @@ from os import linesep
from os import walk from os import walk
from os import environ from os import environ
import re import re
from UserDict import IterableUserDict from collections import UserDict as IterableUserDict
import Logger.Log as Logger import Logger.Log as Logger
from Logger import StringTable as ST from Logger import StringTable as ST
@ -160,19 +160,23 @@ def RemoveDirectory(Directory, Recursively=False):
# or not # or not
# #
def SaveFileOnChange(File, Content, IsBinaryFile=True): def SaveFileOnChange(File, Content, IsBinaryFile=True):
if not IsBinaryFile:
Content = Content.replace("\n", linesep)
if os.path.exists(File): if os.path.exists(File):
try: try:
if Content == __FileHookOpen__(File, "rb").read(): if isinstance(Content, bytes):
return False if Content == __FileHookOpen__(File, "rb").read():
return False
else:
if Content == __FileHookOpen__(File, "r").read():
return False
except BaseException: except BaseException:
Logger.Error(None, ToolError.FILE_OPEN_FAILURE, ExtraData=File) Logger.Error(None, ToolError.FILE_OPEN_FAILURE, ExtraData=File)
CreateDirectory(os.path.dirname(File)) CreateDirectory(os.path.dirname(File))
try: try:
FileFd = __FileHookOpen__(File, "wb") if isinstance(Content, bytes):
FileFd = __FileHookOpen__(File, "wb")
else:
FileFd = __FileHookOpen__(File, "w")
FileFd.write(Content) FileFd.write(Content)
FileFd.close() FileFd.close()
except BaseException: except BaseException:
@ -437,7 +441,7 @@ class Sdict(IterableUserDict):
def CommonPath(PathList): def CommonPath(PathList):
Path1 = min(PathList).split(os.path.sep) Path1 = min(PathList).split(os.path.sep)
Path2 = max(PathList).split(os.path.sep) Path2 = max(PathList).split(os.path.sep)
for Index in xrange(min(len(Path1), len(Path2))): for Index in range(min(len(Path1), len(Path2))):
if Path1[Index] != Path2[Index]: if Path1[Index] != Path2[Index]:
return os.path.sep.join(Path1[:Index]) return os.path.sep.join(Path1[:Index])
return os.path.sep.join(Path1) return os.path.sep.join(Path1)
@ -890,7 +894,7 @@ def ProcessEdkComment(LineList):
if FindEdkBlockComment: if FindEdkBlockComment:
if FirstPos == -1: if FirstPos == -1:
FirstPos = StartPos FirstPos = StartPos
for Index in xrange(StartPos, EndPos+1): for Index in range(StartPos, EndPos+1):
LineList[Index] = '' LineList[Index] = ''
FindEdkBlockComment = False FindEdkBlockComment = False
elif Line.find("//") != -1 and not Line.startswith("#"): elif Line.find("//") != -1 and not Line.startswith("#"):
@ -957,7 +961,7 @@ def GetLibInstanceInfo(String, WorkSpace, LineNo):
FileLinesList = [] FileLinesList = []
try: try:
FInputfile = open(FullFileName, "rb", 0) FInputfile = open(FullFileName, "r")
try: try:
FileLinesList = FInputfile.readlines() FileLinesList = FInputfile.readlines()
except BaseException: except BaseException:

View File

@ -727,7 +727,7 @@ def IsValidUserId(UserId):
# #
def CheckUTF16FileHeader(File): def CheckUTF16FileHeader(File):
FileIn = open(File, 'rb').read(2) FileIn = open(File, 'rb').read(2)
if FileIn != '\xff\xfe': if FileIn != b'\xff\xfe':
return False return False
return True return True

View File

@ -16,7 +16,6 @@
''' '''
Parsing Parsing
''' '''
from __future__ import absolute_import
## ##
# Import Modules # Import Modules
@ -974,7 +973,7 @@ def GenSection(SectionName, SectionDict, SplitArch=True, NeedBlankLine=False):
ArchList = GetSplitValueList(SectionAttrs, DataType.TAB_COMMENT_SPLIT) ArchList = GetSplitValueList(SectionAttrs, DataType.TAB_COMMENT_SPLIT)
else: else:
ArchList = [SectionAttrs] ArchList = [SectionAttrs]
for Index in xrange(0, len(ArchList)): for Index in range(0, len(ArchList)):
ArchList[Index] = ConvertArchForInstall(ArchList[Index]) ArchList[Index] = ConvertArchForInstall(ArchList[Index])
Section = '[' + SectionName + '.' + (', ' + SectionName + '.').join(ArchList) + ']' Section = '[' + SectionName + '.' + (', ' + SectionName + '.').join(ArchList) + ']'
else: else:

View File

@ -20,7 +20,6 @@ StringUtils
# #
import re import re
import os.path import os.path
from string import strip
import Logger.Log as Logger import Logger.Log as Logger
import Library.DataType as DataType import Library.DataType as DataType
from Logger.ToolError import FORMAT_INVALID from Logger.ToolError import FORMAT_INVALID
@ -44,7 +43,7 @@ gMACRO_PATTERN = re.compile("\$\(([_A-Z][_A-Z0-9]*)\)", re.UNICODE)
# #
# #
def GetSplitValueList(String, SplitTag=DataType.TAB_VALUE_SPLIT, MaxSplit= -1): def GetSplitValueList(String, SplitTag=DataType.TAB_VALUE_SPLIT, MaxSplit= -1):
return map(lambda l: l.strip(), String.split(SplitTag, MaxSplit)) return list(map(lambda l: l.strip(), String.split(SplitTag, MaxSplit)))
## MergeArches ## MergeArches
# #
@ -435,7 +434,7 @@ def GetSingleValueOfKeyFromLines(Lines, Dictionary, CommentCharacter, KeySplitCh
# #
LineList[1] = CleanString(LineList[1], CommentCharacter) LineList[1] = CleanString(LineList[1], CommentCharacter)
if ValueSplitFlag: if ValueSplitFlag:
Value = map(strip, LineList[1].split(ValueSplitCharacter)) Value = map(lambda x: x.strip(), LineList[1].split(ValueSplitCharacter))
else: else:
Value = CleanString(LineList[1], CommentCharacter).splitlines() Value = CleanString(LineList[1], CommentCharacter).splitlines()
@ -502,7 +501,7 @@ def PreCheck(FileName, FileContent, SupSectionTag):
# #
# Regenerate FileContent # Regenerate FileContent
# #
NewFileContent = NewFileContent + Line + '\r\n' NewFileContent = NewFileContent + Line + '\n'
if IsFailed: if IsFailed:
Logger.Error("Parser", FORMAT_INVALID, Line=LineNo, File=FileName, RaiseError=Logger.IS_RAISE_ERROR) Logger.Error("Parser", FORMAT_INVALID, Line=LineNo, File=FileName, RaiseError=Logger.IS_RAISE_ERROR)
@ -938,14 +937,14 @@ def SplitPcdEntry(String):
def IsMatchArch(Arch1, Arch2): def IsMatchArch(Arch1, Arch2):
if 'COMMON' in Arch1 or 'COMMON' in Arch2: if 'COMMON' in Arch1 or 'COMMON' in Arch2:
return True return True
if isinstance(Arch1, basestring) and isinstance(Arch2, basestring): if isinstance(Arch1, str) and isinstance(Arch2, str):
if Arch1 == Arch2: if Arch1 == Arch2:
return True return True
if isinstance(Arch1, basestring) and isinstance(Arch2, list): if isinstance(Arch1, str) and isinstance(Arch2, list):
return Arch1 in Arch2 return Arch1 in Arch2
if isinstance(Arch2, basestring) and isinstance(Arch1, list): if isinstance(Arch2, str) and isinstance(Arch1, list):
return Arch2 in Arch1 return Arch2 in Arch1
if isinstance(Arch1, list) and isinstance(Arch2, list): if isinstance(Arch1, list) and isinstance(Arch2, list):

View File

@ -14,7 +14,6 @@
""" """
Collect all defined strings in multiple uni files Collect all defined strings in multiple uni files
""" """
from __future__ import print_function
## ##
# Import Modules # Import Modules
@ -247,9 +246,9 @@ def FormatUniEntry(StrTokenName, TokenValueList, ContainerFile):
for SubValue in ValueList: for SubValue in ValueList:
if SubValue.strip(): if SubValue.strip():
SubValueContent += \ SubValueContent += \
' ' * (PreFormatLength + len('#language en-US ')) + '\"%s\\n\"' % SubValue.strip() + '\r\n' ' ' * (PreFormatLength + len('#language en-US ')) + '\"%s\\n\"' % SubValue.strip() + '\n'
SubValueContent = SubValueContent[(PreFormatLength + len('#language en-US ')):SubValueContent.rfind('\\n')] \ SubValueContent = SubValueContent[(PreFormatLength + len('#language en-US ')):SubValueContent.rfind('\\n')] \
+ '\"' + '\r\n' + '\"' + '\n'
SubContent += ' '*PreFormatLength + '#language %-5s ' % Lang + SubValueContent SubContent += ' '*PreFormatLength + '#language %-5s ' % Lang + SubValueContent
if SubContent: if SubContent:
SubContent = StrTokenName + ' '*(PreFormatLength - len(StrTokenName)) + SubContent[PreFormatLength:] SubContent = StrTokenName + ' '*(PreFormatLength - len(StrTokenName)) + SubContent[PreFormatLength:]
@ -291,7 +290,7 @@ class StringDefClassObject(object):
def UpdateValue(self, Value = None): def UpdateValue(self, Value = None):
if Value is not None: if Value is not None:
if self.StringValue: if self.StringValue:
self.StringValue = self.StringValue + '\r\n' + Value self.StringValue = self.StringValue + '\n' + Value
else: else:
self.StringValue = Value self.StringValue = Value
self.StringValueByteList = UniToHexList(self.StringValue) self.StringValueByteList = UniToHexList(self.StringValue)
@ -465,7 +464,7 @@ class UniFileClassObject(object):
if not Line.startswith(DT.TAB_COMMENT_EDK1_SPLIT) and HeaderStart and not HeaderEnd: if not Line.startswith(DT.TAB_COMMENT_EDK1_SPLIT) and HeaderStart and not HeaderEnd:
HeaderEnd = True HeaderEnd = True
if Line.startswith(DT.TAB_COMMENT_EDK1_SPLIT) and HeaderStart and not HeaderEnd and FirstGenHeader: if Line.startswith(DT.TAB_COMMENT_EDK1_SPLIT) and HeaderStart and not HeaderEnd and FirstGenHeader:
self.UniFileHeader += Line + '\r\n' self.UniFileHeader += Line + '\n'
continue continue
# #
@ -511,11 +510,11 @@ class UniFileClassObject(object):
if FileIn[LineCount].strip().startswith('#language'): if FileIn[LineCount].strip().startswith('#language'):
Line = Line + FileIn[LineCount] Line = Line + FileIn[LineCount]
FileIn[LineCount-1] = Line FileIn[LineCount-1] = Line
FileIn[LineCount] = '\r\n' FileIn[LineCount] = '\n'
LineCount -= 1 LineCount -= 1
for Index in xrange (LineCount + 1, len (FileIn) - 1): for Index in range (LineCount + 1, len (FileIn) - 1):
if (Index == len(FileIn) -1): if (Index == len(FileIn) -1):
FileIn[Index] = '\r\n' FileIn[Index] = '\n'
else: else:
FileIn[Index] = FileIn[Index + 1] FileIn[Index] = FileIn[Index + 1]
continue continue
@ -867,12 +866,12 @@ class UniFileClassObject(object):
Value = Value + Lines[IndexJ].strip()[1:-1] Value = Value + Lines[IndexJ].strip()[1:-1]
CombineToken = False CombineToken = False
else: else:
Value = Value + Lines[IndexJ].strip()[1:-1] + '\r\n' Value = Value + Lines[IndexJ].strip()[1:-1] + '\n'
else: else:
IndexI = IndexJ IndexI = IndexJ
break break
if Value.endswith('\r\n'): if Value.endswith('\n'):
Value = Value[: Value.rfind('\r\n')] Value = Value[: Value.rfind('\n')]
Language = GetLanguageCode(Language, self.IsCompatibleMode, self.File) Language = GetLanguageCode(Language, self.IsCompatibleMode, self.File)
self.AddStringToList(Name, Language, Value) self.AddStringToList(Name, Language, Value)
continue continue

View File

@ -42,7 +42,7 @@ MSG_USAGE_STRING = _("\n"
MSG_VERSION_NUMBER = _("1.1") MSG_VERSION_NUMBER = _("1.1")
MSG_VERSION = _("UEFI Packaging Tool (UEFIPT) - Revision " + \ MSG_VERSION = _("UEFI Packaging Tool (UEFIPT) - Revision " + \
MSG_VERSION_NUMBER) MSG_VERSION_NUMBER)
MSG_COPYRIGHT = _("Copyright (c) 2011 - 2016 Intel Corporation All Rights Reserved.") MSG_COPYRIGHT = _("Copyright (c) 2011 - 2018 Intel Corporation All Rights Reserved.")
MSG_VERSION_COPYRIGHT = _("\n %s\n %s" % (MSG_VERSION, MSG_COPYRIGHT)) MSG_VERSION_COPYRIGHT = _("\n %s\n %s" % (MSG_VERSION, MSG_COPYRIGHT))
MSG_USAGE = _("%s [options]\n%s" % ("UPT", MSG_VERSION_COPYRIGHT)) MSG_USAGE = _("%s [options]\n%s" % ("UPT", MSG_VERSION_COPYRIGHT))
MSG_DESCRIPTION = _("The UEFIPT is used to create, " + \ MSG_DESCRIPTION = _("The UEFIPT is used to create, " + \

View File

@ -136,7 +136,7 @@ def Main(Options = None):
# strings in your desired encoding before passing them to # strings in your desired encoding before passing them to
# write(). # write().
# #
FromFile = os.path.normpath(FileObject.GetURI()).encode('utf_8') FromFile = os.path.normpath(FileObject.GetURI())
FileFullPath = mws.join(WorkspaceDir, FromFile) FileFullPath = mws.join(WorkspaceDir, FromFile)
if FileFullPath in RePkgDict: if FileFullPath in RePkgDict:
(DpGuid, DpVersion, DpName, Repackage) = RePkgDict[FileFullPath] (DpGuid, DpVersion, DpName, Repackage) = RePkgDict[FileFullPath]

View File

@ -620,11 +620,11 @@ class _DecPcd(_DecBase):
if not IsValidToken(PCD_TOKEN_PATTERN, Token): if not IsValidToken(PCD_TOKEN_PATTERN, Token):
self._LoggerError(ST.ERR_DECPARSE_PCD_TOKEN % Token) self._LoggerError(ST.ERR_DECPARSE_PCD_TOKEN % Token)
elif not Token.startswith('0x') and not Token.startswith('0X'): elif not Token.startswith('0x') and not Token.startswith('0X'):
if long(Token) > 4294967295: if int(Token) > 4294967295:
self._LoggerError(ST.ERR_DECPARSE_PCD_TOKEN_INT % Token) self._LoggerError(ST.ERR_DECPARSE_PCD_TOKEN_INT % Token)
Token = hex(long(Token))[:-1] Token = hex(int(Token))
IntToken = long(Token, 0) IntToken = int(Token, 0)
if (Guid, IntToken) in self.TokenMap: if (Guid, IntToken) in self.TokenMap:
if self.TokenMap[Guid, IntToken] != CName: if self.TokenMap[Guid, IntToken] != CName:
self._LoggerError(ST.ERR_DECPARSE_PCD_TOKEN_UNIQUE%(Token)) self._LoggerError(ST.ERR_DECPARSE_PCD_TOKEN_UNIQUE%(Token))
@ -752,7 +752,7 @@ class _DecUserExtension(_DecBase):
class Dec(_DecBase, _DecComments): class Dec(_DecBase, _DecComments):
def __init__(self, DecFile, Parse = True): def __init__(self, DecFile, Parse = True):
try: try:
Content = ConvertSpecialChar(open(DecFile, 'rb').readlines()) Content = ConvertSpecialChar(open(DecFile, 'r').readlines())
except BaseException: except BaseException:
Logger.Error(TOOL_NAME, FILE_OPEN_FAILURE, File=DecFile, Logger.Error(TOOL_NAME, FILE_OPEN_FAILURE, File=DecFile,
ExtraData=ST.ERR_DECPARSE_FILEOPEN % DecFile) ExtraData=ST.ERR_DECPARSE_FILEOPEN % DecFile)

View File

@ -151,7 +151,7 @@ def IsValidNumValUint8(Token):
else: else:
Base = 10 Base = 10
try: try:
TokenValue = long(Token, Base) TokenValue = int(Token, Base)
except BaseException: except BaseException:
Valid, Cause = IsValidLogicalExpr(Token, True) Valid, Cause = IsValidLogicalExpr(Token, True)
if Cause: if Cause:
@ -262,7 +262,7 @@ def IsValidPcdDatum(Type, Value):
Value = Value.lstrip('0') Value = Value.lstrip('0')
if not Value: if not Value:
return True, "" return True, ""
Value = long(Value, 0) Value = int(Value, 0)
TypeLenMap = { TypeLenMap = {
# #
# 0x00 - 0xff # 0x00 - 0xff

View File

@ -205,7 +205,7 @@ def GetFileLineContent(FileName, WorkSpace, LineNo, OriginalString):
try: try:
FullFileName = FullFileName.replace('\\', '/') FullFileName = FullFileName.replace('\\', '/')
Inputfile = open(FullFileName, "rb", 0) Inputfile = open(FullFileName, "r")
try: try:
FileLinesList = Inputfile.readlines() FileLinesList = Inputfile.readlines()
except BaseException: except BaseException:

View File

@ -51,7 +51,7 @@ def OpenInfFile(Filename):
FileLinesList = [] FileLinesList = []
try: try:
FInputfile = open(Filename, "rb", 0) FInputfile = open(Filename, "r")
try: try:
FileLinesList = FInputfile.readlines() FileLinesList = FInputfile.readlines()
except BaseException: except BaseException:
@ -86,7 +86,7 @@ class InfParser(InfSectionParser):
# #
# Call parent class construct function # Call parent class construct function
# #
super(InfParser, self).__init__() super().__init__()
self.WorkspaceDir = WorkspaceDir self.WorkspaceDir = WorkspaceDir
self.SupArchList = DT.ARCH_LIST self.SupArchList = DT.ARCH_LIST

View File

@ -206,7 +206,7 @@ class InfSectionParser(InfDefinSectionParser,
if FilePath in cls.MetaFiles: if FilePath in cls.MetaFiles:
return cls.MetaFiles[FilePath] return cls.MetaFiles[FilePath]
else: else:
ParserObject = super(InfSectionParser, cls).__new__(cls) ParserObject = super().__new__(cls)
cls.MetaFiles[FilePath] = ParserObject cls.MetaFiles[FilePath] = ParserObject
return ParserObject return ParserObject
@ -227,7 +227,7 @@ class InfSectionParser(InfDefinSectionParser,
self.InfBuildOptionSection = InfBuildOptionsObject() self.InfBuildOptionSection = InfBuildOptionsObject()
self.InfLibraryClassSection = InfLibraryClassObject() self.InfLibraryClassSection = InfLibraryClassObject()
self.InfPackageSection = InfPackageObject() self.InfPackageSection = InfPackageObject()
self.InfPcdSection = InfPcdObject(self.MetaFiles.keys()[0]) self.InfPcdSection = InfPcdObject(list(self.MetaFiles.keys())[0])
self.InfSourcesSection = InfSourcesObject() self.InfSourcesSection = InfSourcesObject()
self.InfUserExtensionSection = InfUserExtensionObject() self.InfUserExtensionSection = InfUserExtensionObject()
self.InfProtocolSection = InfProtocolObject() self.InfProtocolSection = InfProtocolObject()
@ -455,7 +455,7 @@ class InfSectionParser(InfDefinSectionParser,
Arch = Match.groups(1)[0].upper() Arch = Match.groups(1)[0].upper()
ArchList.append(Arch) ArchList.append(Arch)
CommentSoFar = '' CommentSoFar = ''
for Index in xrange(1, len(List)): for Index in range(1, len(List)):
Result = ParseComment(List[Index], DT.ALL_USAGE_TOKENS, TokenDict, [], False) Result = ParseComment(List[Index], DT.ALL_USAGE_TOKENS, TokenDict, [], False)
Usage = Result[0] Usage = Result[0]
Type = Result[1] Type = Result[1]

View File

@ -15,7 +15,6 @@
''' '''
DecPomAlignment DecPomAlignment
''' '''
from __future__ import print_function
## ##
# Import Modules # Import Modules

View File

@ -21,10 +21,6 @@ UPT
# #
import locale import locale
import sys import sys
encoding = locale.getdefaultlocale()[1]
if encoding:
reload(sys)
sys.setdefaultencoding(encoding)
from Core import FileHook from Core import FileHook
import os.path import os.path
from sys import platform from sys import platform

View File

@ -11,7 +11,6 @@
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
from __future__ import print_function
import os import os
import unittest import unittest

View File

@ -11,7 +11,6 @@
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
from __future__ import print_function
import os import os
#import Object.Parser.InfObject as InfObject #import Object.Parser.InfObject as InfObject
from Object.Parser.InfCommonObject import CurrentLine from Object.Parser.InfCommonObject import CurrentLine

View File

@ -326,7 +326,7 @@ def IniToXml(IniFile):
CurrentKey = '' CurrentKey = ''
PreMap = None PreMap = None
Map = None Map = None
FileContent = ConvertSpecialChar(open(IniFile, 'rb').readlines()) FileContent = ConvertSpecialChar(open(IniFile, 'r').readlines())
LastIndex = 0 LastIndex = 0
for Index in range(0, len(FileContent)): for Index in range(0, len(FileContent)):
LastIndex = Index LastIndex = Index

View File

@ -53,7 +53,7 @@ def ConvertVariableName(VariableName):
if SecondByte != 0: if SecondByte != 0:
return None return None
if FirstByte not in xrange(0x20, 0x7F): if FirstByte not in range(0x20, 0x7F):
return None return None
TransferedStr += ('%c')%FirstByte TransferedStr += ('%c')%FirstByte
Index = Index + 2 Index = Index + 2