##\r
# Import Modules\r
#\r
+from __future__ import print_function\r
import Common.LongFilePathOs as os\r
import re\r
import StringIO\r
# Otherwise, False is returned\r
#\r
def IsToolInPath(tool):\r
- if os.environ.has_key('PATHEXT'):\r
+ if 'PATHEXT' in os.environ:\r
extns = os.environ['PATHEXT'].split(os.path.pathsep)\r
else:\r
extns = ('',)\r
\r
WorkspaceDir = os.path.normcase(os.path.normpath(os.environ["WORKSPACE"]))\r
if not os.path.exists(WorkspaceDir):\r
- EdkLogger.error("build", FILE_NOT_FOUND, "WORKSPACE doesn't exist", ExtraData="%s" % WorkspaceDir)\r
+ EdkLogger.error("build", FILE_NOT_FOUND, "WORKSPACE doesn't exist", ExtraData=WorkspaceDir)\r
elif ' ' in WorkspaceDir:\r
EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in WORKSPACE path",\r
ExtraData=WorkspaceDir)\r
if mws.PACKAGES_PATH:\r
for Path in mws.PACKAGES_PATH:\r
if not os.path.exists(Path):\r
- EdkLogger.error("build", FILE_NOT_FOUND, "One Path in PACKAGES_PATH doesn't exist", ExtraData="%s" % Path)\r
+ EdkLogger.error("build", FILE_NOT_FOUND, "One Path in PACKAGES_PATH doesn't exist", ExtraData=Path)\r
elif ' ' in Path:\r
EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in PACKAGES_PATH", ExtraData=Path)\r
\r
# @param Other The other BuildUnit object compared to\r
#\r
def __eq__(self, Other):\r
- return Other is not None and self.BuildObject == Other.BuildObject \\r
+ return Other and self.BuildObject == Other.BuildObject \\r
+ and Other.BuildObject \\r
and self.BuildObject.Arch == Other.BuildObject.Arch\r
\r
## hash() method\r
# while not BuildTask._ErrorFlag.isSet() and \\r
while len(BuildTask._RunningQueue) > 0:\r
EdkLogger.verbose("Waiting for thread ending...(%d)" % len(BuildTask._RunningQueue))\r
- EdkLogger.debug(EdkLogger.DEBUG_8, "Threads [%s]" % ", ".join([Th.getName() for Th in threading.enumerate()]))\r
+ EdkLogger.debug(EdkLogger.DEBUG_8, "Threads [%s]" % ", ".join(Th.getName() for Th in threading.enumerate()))\r
# avoid tense loop\r
time.sleep(0.1)\r
- except BaseException, X:\r
+ except BaseException as X:\r
#\r
# TRICK: hide the output of threads left runing, so that the user can\r
# catch the error message easily\r
try:\r
#os.rmdir(AutoGenObject.BuildDir)\r
RemoveDirectory(AutoGenObject.BuildDir, True)\r
- except WindowsError, X:\r
+ except WindowsError as X:\r
EdkLogger.error("build", FILE_DELETE_FAILURE, ExtraData=str(X))\r
return True\r
\r
try:\r
#os.rmdir(AutoGenObject.BuildDir)\r
RemoveDirectory(AutoGenObject.BuildDir, True)\r
- except WindowsError, X:\r
+ except WindowsError as X:\r
EdkLogger.error("build", FILE_DELETE_FAILURE, ExtraData=str(X))\r
return True\r
\r
GuidString = MatchGuid.group()\r
if GuidString.upper() in ModuleList:\r
Line = Line.replace(GuidString, ModuleList[GuidString.upper()].Name)\r
- MapBuffer.write('%s' % (Line))\r
+ MapBuffer.write(Line)\r
#\r
# Add the debug image full path.\r
#\r
toolsFile = os.path.join(FvDir, 'GuidedSectionTools.txt')\r
toolsFile = open(toolsFile, 'wt')\r
for guidedSectionTool in guidAttribs:\r
- print >> toolsFile, ' '.join(guidedSectionTool)\r
+ print(' '.join(guidedSectionTool), file=toolsFile)\r
toolsFile.close()\r
\r
## Returns the full path of the tool.\r
# All job done, no error found and no exception raised\r
#\r
BuildError = False\r
- except FatalError, X:\r
+ except FatalError as X:\r
if MyBuild is not None:\r
# for multi-thread build exits safely\r
MyBuild.Relinquish()\r
if Option is not None and Option.debug is not None:\r
EdkLogger.quiet("(Python %s on %s) " % (platform.python_version(), sys.platform) + traceback.format_exc())\r
ReturnCode = X.args[0]\r
- except Warning, X:\r
+ except Warning as X:\r
# error from Fdf parser\r
if MyBuild is not None:\r
# for multi-thread build exits safely\r