* [PATCH v1 0/2] BaseTools: AutoGen code style compliance
@ 2018-03-15 0:20 Jaben Carsey
2018-03-15 0:20 ` [PATCH v1 1/2] BaseTools: Autogen - modify to use standard parent/child class relationships Jaben Carsey
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Jaben Carsey @ 2018-03-15 0:20 UTC (permalink / raw)
To: edk2-devel
update the object factory and child classes to use standard functions
update the file to use is None instead of == None
Jaben Carsey (2):
BaseTools: Autogen - modify to use standard parent/child class
relationships
BaseTools: AutoGen should use is None not == None
BaseTools/Source/Python/AutoGen/AutoGen.py | 231 +++++++++++---------
1 file changed, 123 insertions(+), 108 deletions(-)
--
2.16.2.windows.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v1 1/2] BaseTools: Autogen - modify to use standard parent/child class relationships
2018-03-15 0:20 [PATCH v1 0/2] BaseTools: AutoGen code style compliance Jaben Carsey
@ 2018-03-15 0:20 ` Jaben Carsey
2018-03-15 0:20 ` [PATCH v1 2/2] BaseTools: AutoGen should use is None not == None Jaben Carsey
2018-03-20 8:26 ` [PATCH v1 0/2] BaseTools: AutoGen code style compliance Zhu, Yonghong
2 siblings, 0 replies; 4+ messages in thread
From: Jaben Carsey @ 2018-03-15 0:20 UTC (permalink / raw)
To: edk2-devel; +Cc: Yonghong Zhu, Liming Gao
use __new__ and __init__ to create/manage/initialize objects in standard flow.
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
---
BaseTools/Source/Python/AutoGen/AutoGen.py | 93 ++++++++++++--------
1 file changed, 54 insertions(+), 39 deletions(-)
diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py
index 439e360955a3..5b09e0008ddd 100644
--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
@@ -159,8 +159,8 @@ ${tail_comments}
# This class just implements the cache mechanism of AutoGen objects.
#
class AutoGen(object):
- # database to maintain the objects of xxxAutoGen
- _CACHE_ = {} # (BuildTarget, ToolChain) : {ARCH : {platform file: AutoGen object}}}
+ # database to maintain the objects in each child class
+ __ObjectCache = {} # (BuildTarget, ToolChain, ARCH, platform file): AutoGen object
## Factory method
#
@@ -174,24 +174,19 @@ class AutoGen(object):
# @param *args The specific class related parameters
# @param **kwargs The specific class related dict parameters
#
- def __new__(Class, Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs):
+ def __new__(cls, Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs):
# check if the object has been created
- Key = (Target, Toolchain)
- if Key not in Class._CACHE_ or Arch not in Class._CACHE_[Key] \
- or MetaFile not in Class._CACHE_[Key][Arch]:
- AutoGenObject = super(AutoGen, Class).__new__(Class)
- # call real constructor
- if not AutoGenObject._Init(Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs):
- return None
- if Key not in Class._CACHE_:
- Class._CACHE_[Key] = {}
- if Arch not in Class._CACHE_[Key]:
- Class._CACHE_[Key][Arch] = {}
- Class._CACHE_[Key][Arch][MetaFile] = AutoGenObject
- else:
- AutoGenObject = Class._CACHE_[Key][Arch][MetaFile]
+ Key = (Target, Toolchain, Arch, MetaFile)
+ try:
+ # if it exists, just return it directly
+ return cls.__ObjectCache[Key]
+ except:
+ # it didnt exist. create it, cache it, then return it
+ cls.__ObjectCache[Key] = super(AutoGen, cls).__new__(cls)
+ return cls.__ObjectCache[Key]
- return AutoGenObject
+ def __init__ (self, Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs):
+ super(AutoGen, self).__init__(self, Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs)
## hash() operator
#
@@ -221,10 +216,16 @@ class AutoGen(object):
# architecture. This class will generate top level makefile.
#
class WorkspaceAutoGen(AutoGen):
- ## Real constructor of WorkspaceAutoGen
- #
- # This method behaves the same as __init__ except that it needs explicit invoke
- # (in super class's __new__ method)
+ # call super().__init__ then call the worker function with different parameter count
+ def __init__(self, Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs):
+ try:
+ self._Init
+ except:
+ super(WorkspaceAutoGen, self).__init__(Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs)
+ self._InitWorker(Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs)
+ self._Init = True
+
+ ## Initialize WorkspaceAutoGen
#
# @param WorkspaceDir Root directory of workspace
# @param ActivePlatform Meta-file of active platform
@@ -240,7 +241,7 @@ class WorkspaceAutoGen(AutoGen):
# @param Caps Capsule list to be generated
# @param SkuId SKU id from command line
#
- def _Init(self, WorkspaceDir, ActivePlatform, Target, Toolchain, ArchList, MetaFileDb,
+ def _InitWorker(self, WorkspaceDir, ActivePlatform, Target, Toolchain, ArchList, MetaFileDb,
BuildConfig, ToolDefinition, FlashDefinitionFile='', Fds=None, Fvs=None, Caps=None, SkuId='', UniFlag=None,
Progress=None, BuildModule=None):
if Fds is None:
@@ -1111,6 +1112,14 @@ class WorkspaceAutoGen(AutoGen):
# file in order to generate makefile for platform.
#
class PlatformAutoGen(AutoGen):
+ # call super().__init__ then call the worker function with different parameter count
+ def __init__(self, Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs):
+ try:
+ self._Init
+ except:
+ super(PlatformAutoGen, self).__init__(self, Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs)
+ self._InitWorker(Workspace, MetaFile, Target, Toolchain, Arch)
+ self._Init = True
#
# Used to store all PCDs for both PEI and DXE phase, in order to generate
# correct PCD database
@@ -1139,11 +1148,8 @@ class PlatformAutoGen(AutoGen):
"0x10001" : 2, # TARGET_*********_****_***********_ATTRIBUTE
"0x00001" : 1} # ******_*********_****_***********_ATTRIBUTE (Lowest)
- ## The real constructor of PlatformAutoGen
+ ## Initialize PlatformAutoGen
#
- # This method is not supposed to be called by users of PlatformAutoGen. It's
- # only used by factory method __new__() to do real initialization work for an
- # object of PlatformAutoGen
#
# @param Workspace WorkspaceAutoGen object
# @param PlatformFile Platform file (DSC file)
@@ -1151,7 +1157,7 @@ class PlatformAutoGen(AutoGen):
# @param Toolchain Name of tool chain
# @param Arch arch of the platform supports
#
- def _Init(self, Workspace, PlatformFile, Target, Toolchain, Arch):
+ def _InitWorker(self, Workspace, PlatformFile, Target, Toolchain, Arch):
EdkLogger.debug(EdkLogger.DEBUG_9, "AutoGen platform [%s] [%s]" % (PlatformFile, Arch))
GlobalData.gProcessingFile = "%s [%s, %s, %s]" % (PlatformFile, Arch, Toolchain, Target)
@@ -2776,15 +2782,29 @@ class PlatformAutoGen(AutoGen):
# to the [depex] section in module's inf file.
#
class ModuleAutoGen(AutoGen):
+ # call super().__init__ then call the worker function with different parameter count
+ def __init__(self, Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs):
+ try:
+ self._Init
+ except:
+ super(ModuleAutoGen, self).__init__(Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs)
+ self._InitWorker(Workspace, MetaFile, Target, Toolchain, Arch, *args)
+ self._Init = True
+
## Cache the timestamps of metafiles of every module in a class variable
#
TimeDict = {}
- ## The real constructor of ModuleAutoGen
- #
- # This method is not supposed to be called by users of ModuleAutoGen. It's
- # only used by factory method __new__() to do real initialization work for an
- # object of ModuleAutoGen
+ def __new__(cls, Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs):
+ obj = super(ModuleAutoGen, cls).__new__(cls, Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs)
+ # check if this module is employed by active platform
+ if not PlatformAutoGen(Workspace, args[0], Target, Toolchain, Arch).ValidModule(MetaFile):
+ EdkLogger.verbose("Module [%s] for [%s] is not employed by active platform\n" \
+ % (MetaFile, Arch))
+ return None
+ return obj
+
+ ## Initialize ModuleAutoGen
#
# @param Workspace EdkIIWorkspaceBuild object
# @param ModuleFile The path of module file
@@ -2793,7 +2813,7 @@ class ModuleAutoGen(AutoGen):
# @param Arch The arch the module supports
# @param PlatformFile Platform meta-file
#
- def _Init(self, Workspace, ModuleFile, Target, Toolchain, Arch, PlatformFile):
+ def _InitWorker(self, Workspace, ModuleFile, Target, Toolchain, Arch, PlatformFile):
EdkLogger.debug(EdkLogger.DEBUG_9, "AutoGen module [%s] [%s]" % (ModuleFile, Arch))
GlobalData.gProcessingFile = "%s [%s, %s, %s]" % (ModuleFile, Arch, Toolchain, Target)
@@ -2802,11 +2822,6 @@ class ModuleAutoGen(AutoGen):
self.MetaFile = ModuleFile
self.PlatformInfo = PlatformAutoGen(Workspace, PlatformFile, Target, Toolchain, Arch)
- # check if this module is employed by active platform
- if not self.PlatformInfo.ValidModule(self.MetaFile):
- EdkLogger.verbose("Module [%s] for [%s] is not employed by active platform\n" \
- % (self.MetaFile, Arch))
- return False
self.SourceDir = self.MetaFile.SubDir
self.SourceDir = mws.relpath(self.SourceDir, self.WorkspaceDir)
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v1 2/2] BaseTools: AutoGen should use is None not == None
2018-03-15 0:20 [PATCH v1 0/2] BaseTools: AutoGen code style compliance Jaben Carsey
2018-03-15 0:20 ` [PATCH v1 1/2] BaseTools: Autogen - modify to use standard parent/child class relationships Jaben Carsey
@ 2018-03-15 0:20 ` Jaben Carsey
2018-03-20 8:26 ` [PATCH v1 0/2] BaseTools: AutoGen code style compliance Zhu, Yonghong
2 siblings, 0 replies; 4+ messages in thread
From: Jaben Carsey @ 2018-03-15 0:20 UTC (permalink / raw)
To: edk2-devel; +Cc: Yonghong Zhu, Liming Gao
change to the style we document as in use
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
---
BaseTools/Source/Python/AutoGen/AutoGen.py | 138 ++++++++++----------
1 file changed, 69 insertions(+), 69 deletions(-)
diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py
index 5b09e0008ddd..2bea1adc5193 100644
--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
@@ -766,7 +766,7 @@ class WorkspaceAutoGen(AutoGen):
for Fv in Fdf.Profile.FvDict:
_GuidDict = {}
for FfsFile in Fdf.Profile.FvDict[Fv].FfsList:
- if FfsFile.InfFileName and FfsFile.NameGuid == None:
+ if FfsFile.InfFileName and FfsFile.NameGuid is None:
#
# Get INF file GUID
#
@@ -939,13 +939,13 @@ class WorkspaceAutoGen(AutoGen):
## Return the directory to store FV files
def _GetFvDir(self):
- if self._FvDir == None:
+ if self._FvDir is None:
self._FvDir = path.join(self.BuildDir, 'FV')
return self._FvDir
## Return the directory to store all intermediate and final files built
def _GetBuildDir(self):
- if self._BuildDir == None:
+ if self._BuildDir is None:
return self.AutoGenObjectList[0].BuildDir
## Return the build output directory platform specifies
@@ -973,7 +973,7 @@ class WorkspaceAutoGen(AutoGen):
# @retval string Makefile directory
#
def _GetMakeFileDir(self):
- if self._MakeFileDir == None:
+ if self._MakeFileDir is None:
self._MakeFileDir = self.BuildDir
return self._MakeFileDir
@@ -982,7 +982,7 @@ class WorkspaceAutoGen(AutoGen):
# @retval string Build command string
#
def _GetBuildCommand(self):
- if self._BuildCommand == None:
+ if self._BuildCommand is None:
# BuildCommand should be all the same. So just get one from platform AutoGen
self._BuildCommand = self.AutoGenObjectList[0].BuildCommand
return self._BuildCommand
@@ -1331,7 +1331,7 @@ class PlatformAutoGen(AutoGen):
for SkuName in Pcd.SkuInfoList:
Sku = Pcd.SkuInfoList[SkuName]
SkuId = Sku.SkuId
- if SkuId == None or SkuId == '':
+ if SkuId is None or SkuId == '':
continue
if len(Sku.VariableName) > 0:
VariableGuidStructure = Sku.VariableGuidValue
@@ -1642,7 +1642,7 @@ class PlatformAutoGen(AutoGen):
# if the offset of a VPD is *, then it need to be fixed up by third party tool.
if not NeedProcessVpdMapFile and Sku.VpdOffset == "*":
NeedProcessVpdMapFile = True
- if self.Platform.VpdToolGuid == None or self.Platform.VpdToolGuid == '':
+ if self.Platform.VpdToolGuid is None or self.Platform.VpdToolGuid == '':
EdkLogger.error("Build", FILE_NOT_FOUND, \
"Fail to find third-party BPDG tool to process VPD PCDs. BPDG Guid tool need to be defined in tools_def.txt and VPD_TOOL_GUID need to be provided in DSC file.")
@@ -1654,7 +1654,7 @@ class PlatformAutoGen(AutoGen):
for DscPcd in PlatformPcds:
DscPcdEntry = self._PlatformPcds[DscPcd]
if DscPcdEntry.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:
- if not (self.Platform.VpdToolGuid == None or self.Platform.VpdToolGuid == ''):
+ if not (self.Platform.VpdToolGuid is None or self.Platform.VpdToolGuid == ''):
FoundFlag = False
for VpdPcd in VpdFile._VpdArray.keys():
# This PCD has been referenced by module
@@ -1734,7 +1734,7 @@ class PlatformAutoGen(AutoGen):
# if the offset of a VPD is *, then it need to be fixed up by third party tool.
VpdSkuMap[DscPcd] = SkuValueMap
- if (self.Platform.FlashDefinition == None or self.Platform.FlashDefinition == '') and \
+ if (self.Platform.FlashDefinition is None or self.Platform.FlashDefinition == '') and \
VpdFile.GetCount() != 0:
EdkLogger.error("build", ATTRIBUTE_NOT_AVAILABLE,
"Fail to get FLASH_DEFINITION definition in DSC file %s which is required when DSC contains VPD PCD." % str(self.Platform.MetaFile))
@@ -1824,7 +1824,7 @@ class PlatformAutoGen(AutoGen):
## Return the platform build data object
def _GetPlatform(self):
- if self._Platform == None:
+ if self._Platform is None:
self._Platform = self.BuildDatabase[self.MetaFile, self.Arch, self.BuildTarget, self.ToolChain]
return self._Platform
@@ -1842,7 +1842,7 @@ class PlatformAutoGen(AutoGen):
## Return the FDF file name
def _GetFdfFile(self):
- if self._FdfFile == None:
+ if self._FdfFile is None:
if self.Workspace.FdfFile != "":
self._FdfFile= mws.join(self.WorkspaceDir, self.Workspace.FdfFile)
else:
@@ -1855,7 +1855,7 @@ class PlatformAutoGen(AutoGen):
## Return the directory to store all intermediate and final files built
def _GetBuildDir(self):
- if self._BuildDir == None:
+ if self._BuildDir is None:
if os.path.isabs(self.OutputDir):
self._BuildDir = path.join(
path.abspath(self.OutputDir),
@@ -1875,7 +1875,7 @@ class PlatformAutoGen(AutoGen):
# @retval string Makefile directory
#
def _GetMakeFileDir(self):
- if self._MakeFileDir == None:
+ if self._MakeFileDir is None:
self._MakeFileDir = path.join(self.BuildDir, self.Arch)
return self._MakeFileDir
@@ -1884,7 +1884,7 @@ class PlatformAutoGen(AutoGen):
# @retval string Build command string
#
def _GetBuildCommand(self):
- if self._BuildCommand == None:
+ if self._BuildCommand is None:
self._BuildCommand = []
if "MAKE" in self.ToolDefinition and "PATH" in self.ToolDefinition["MAKE"]:
self._BuildCommand += SplitOption(self.ToolDefinition["MAKE"]["PATH"])
@@ -1906,7 +1906,7 @@ class PlatformAutoGen(AutoGen):
# Get each tool defition for given tool chain from tools_def.txt and platform
#
def _GetToolDefinition(self):
- if self._ToolDefinitions == None:
+ if self._ToolDefinitions is None:
ToolDefinition = self.Workspace.ToolDef.ToolsDefTxtDictionary
if TAB_TOD_DEFINES_COMMAND_TYPE not in self.Workspace.ToolDef.ToolsDefTxtDatabase:
EdkLogger.error('build', RESOURCE_NOT_AVAILABLE, "No tools found in configuration",
@@ -1972,13 +1972,13 @@ class PlatformAutoGen(AutoGen):
## Return the paths of tools
def _GetToolDefFile(self):
- if self._ToolDefFile == None:
+ if self._ToolDefFile is None:
self._ToolDefFile = os.path.join(self.MakeFileDir, "TOOLS_DEF." + self.Arch)
return self._ToolDefFile
## Retrieve the toolchain family of given toolchain tag. Default to 'MSFT'.
def _GetToolChainFamily(self):
- if self._ToolChainFamily == None:
+ if self._ToolChainFamily is None:
ToolDefinition = self.Workspace.ToolDef.ToolsDefTxtDatabase
if TAB_TOD_DEFINES_FAMILY not in ToolDefinition \
or self.ToolChain not in ToolDefinition[TAB_TOD_DEFINES_FAMILY] \
@@ -1991,7 +1991,7 @@ class PlatformAutoGen(AutoGen):
return self._ToolChainFamily
def _GetBuildRuleFamily(self):
- if self._BuildRuleFamily == None:
+ if self._BuildRuleFamily is None:
ToolDefinition = self.Workspace.ToolDef.ToolsDefTxtDatabase
if TAB_TOD_DEFINES_BUILDRULEFAMILY not in ToolDefinition \
or self.ToolChain not in ToolDefinition[TAB_TOD_DEFINES_BUILDRULEFAMILY] \
@@ -2005,19 +2005,19 @@ class PlatformAutoGen(AutoGen):
## Return the build options specific for all modules in this platform
def _GetBuildOptions(self):
- if self._BuildOption == None:
+ if self._BuildOption is None:
self._BuildOption = self._ExpandBuildOption(self.Platform.BuildOptions)
return self._BuildOption
## Return the build options specific for EDK modules in this platform
def _GetEdkBuildOptions(self):
- if self._EdkBuildOption == None:
+ if self._EdkBuildOption is None:
self._EdkBuildOption = self._ExpandBuildOption(self.Platform.BuildOptions, EDK_NAME)
return self._EdkBuildOption
## Return the build options specific for EDKII modules in this platform
def _GetEdkIIBuildOptions(self):
- if self._EdkIIBuildOption == None:
+ if self._EdkIIBuildOption is None:
self._EdkIIBuildOption = self._ExpandBuildOption(self.Platform.BuildOptions, EDKII_NAME)
return self._EdkIIBuildOption
@@ -2026,7 +2026,7 @@ class PlatformAutoGen(AutoGen):
# @retval BuildRule object
#
def _GetBuildRule(self):
- if self._BuildRule == None:
+ if self._BuildRule is None:
BuildRuleFile = None
if TAB_TAT_DEFINES_BUILD_RULE_CONF in self.Workspace.TargetTxt.TargetTxtDictionary:
BuildRuleFile = self.Workspace.TargetTxt.TargetTxtDictionary[TAB_TAT_DEFINES_BUILD_RULE_CONF]
@@ -2046,7 +2046,7 @@ class PlatformAutoGen(AutoGen):
## Summarize the packages used by modules in this platform
def _GetPackageList(self):
- if self._PackageList == None:
+ if self._PackageList is None:
self._PackageList = set()
for La in self.LibraryAutoGenList:
self._PackageList.update(La.DependentPackageList)
@@ -2071,19 +2071,19 @@ class PlatformAutoGen(AutoGen):
## Get list of non-dynamic PCDs
def _GetNonDynamicPcdList(self):
- if self._NonDynamicPcdList == None:
+ if self._NonDynamicPcdList is None:
self.CollectPlatformDynamicPcds()
return self._NonDynamicPcdList
## Get list of dynamic PCDs
def _GetDynamicPcdList(self):
- if self._DynamicPcdList == None:
+ if self._DynamicPcdList is None:
self.CollectPlatformDynamicPcds()
return self._DynamicPcdList
## Generate Token Number for all PCD
def _GetPcdTokenNumbers(self):
- if self._PcdTokenNumber == None:
+ if self._PcdTokenNumber is None:
self._PcdTokenNumber = sdict()
TokenNumber = 1
#
@@ -2151,13 +2151,13 @@ class PlatformAutoGen(AutoGen):
## Summarize ModuleAutoGen objects of all modules to be built for this platform
def _GetModuleAutoGenList(self):
- if self._ModuleAutoGenList == None:
+ if self._ModuleAutoGenList is None:
self._GetAutoGenObjectList()
return self._ModuleAutoGenList
## Summarize ModuleAutoGen objects of all libraries to be built for this platform
def _GetLibraryAutoGenList(self):
- if self._LibraryAutoGenList == None:
+ if self._LibraryAutoGenList is None:
self._GetAutoGenObjectList()
return self._LibraryAutoGenList
@@ -2221,9 +2221,9 @@ class PlatformAutoGen(AutoGen):
LibraryPath = PlatformModule.LibraryClasses[LibraryClassName]
else:
LibraryPath = self.Platform.LibraryClasses[LibraryClassName, ModuleType]
- if LibraryPath == None or LibraryPath == "":
+ if LibraryPath is None or LibraryPath == "":
LibraryPath = M.LibraryClasses[LibraryClassName]
- if LibraryPath == None or LibraryPath == "":
+ if LibraryPath is None or LibraryPath == "":
EdkLogger.error("build", RESOURCE_NOT_AVAILABLE,
"Instance of library class [%s] is not found" % LibraryClassName,
File=self.MetaFile,
@@ -2233,7 +2233,7 @@ class PlatformAutoGen(AutoGen):
# for those forced library instance (NULL library), add a fake library class
if LibraryClassName.startswith("NULL"):
LibraryModule.LibraryClass.append(LibraryClassObject(LibraryClassName, [ModuleType]))
- elif LibraryModule.LibraryClass == None \
+ elif LibraryModule.LibraryClass is None \
or len(LibraryModule.LibraryClass) == 0 \
or (ModuleType != 'USER_DEFINED'
and ModuleType not in LibraryModule.LibraryClass[0].SupModList):
@@ -2249,7 +2249,7 @@ class PlatformAutoGen(AutoGen):
else:
LibraryModule = LibraryInstance[LibraryClassName]
- if LibraryModule == None:
+ if LibraryModule is None:
continue
if LibraryModule.ConstructorList != [] and LibraryModule not in Constructor:
@@ -2447,7 +2447,7 @@ class PlatformAutoGen(AutoGen):
Sku = PcdInModule.SkuInfoList[SkuId]
if Sku.VariableGuid == '': continue
Sku.VariableGuidValue = GuidValue(Sku.VariableGuid, self.PackageList, self.MetaFile.Path)
- if Sku.VariableGuidValue == None:
+ if Sku.VariableGuidValue is None:
PackageList = "\n\t".join([str(P) for P in self.PackageList])
EdkLogger.error(
'build',
@@ -2510,12 +2510,12 @@ class PlatformAutoGen(AutoGen):
M = LibraryConsumerList.pop()
for LibraryName in M.Libraries:
Library = self.Platform.LibraryClasses[LibraryName, ':dummy:']
- if Library == None:
+ if Library is None:
for Key in self.Platform.LibraryClasses.data.keys():
if LibraryName.upper() == Key.upper():
Library = self.Platform.LibraryClasses[Key, ':dummy:']
break
- if Library == None:
+ if Library is None:
EdkLogger.warn("build", "Library [%s] is not found" % LibraryName, File=str(M),
ExtraData="\t%s [%s]" % (str(Module), self.Arch))
continue
@@ -2570,7 +2570,7 @@ class PlatformAutoGen(AutoGen):
# Key[1] -- TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE
#
if (Key[0] == self.BuildRuleFamily and
- (ModuleStyle == None or len(Key) < 3 or (len(Key) > 2 and Key[2] == ModuleStyle))):
+ (ModuleStyle is None or len(Key) < 3 or (len(Key) > 2 and Key[2] == ModuleStyle))):
Target, ToolChain, Arch, CommandType, Attr = Key[1].split('_')
if Target == self.BuildTarget or Target == "*":
if ToolChain == self.ToolChain or ToolChain == "*":
@@ -2942,7 +2942,7 @@ class ModuleAutoGen(AutoGen):
# Macros could be used in build_rule.txt (also Makefile)
def _GetMacros(self):
- if self._Macro == None:
+ if self._Macro is None:
self._Macro = sdict()
self._Macro["WORKSPACE" ] = self.WorkspaceDir
self._Macro["MODULE_NAME" ] = self.Name
@@ -2982,7 +2982,7 @@ class ModuleAutoGen(AutoGen):
## Return the module build data object
def _GetModule(self):
- if self._Module == None:
+ if self._Module is None:
self._Module = self.Workspace.BuildDatabase[self.MetaFile, self.Arch, self.BuildTarget, self.ToolChain]
return self._Module
@@ -3038,7 +3038,7 @@ class ModuleAutoGen(AutoGen):
## Check if the module is library or not
def _IsLibrary(self):
- if self._LibraryFlag == None:
+ if self._LibraryFlag is None:
if self.Module.LibraryClass != None and self.Module.LibraryClass != []:
self._LibraryFlag = True
else:
@@ -3051,7 +3051,7 @@ class ModuleAutoGen(AutoGen):
## Return the directory to store intermediate files of the module
def _GetBuildDir(self):
- if self._BuildDir == None:
+ if self._BuildDir is None:
self._BuildDir = path.join(
self.PlatformInfo.BuildDir,
self.Arch,
@@ -3063,14 +3063,14 @@ class ModuleAutoGen(AutoGen):
## Return the directory to store the intermediate object files of the mdoule
def _GetOutputDir(self):
- if self._OutputDir == None:
+ if self._OutputDir is None:
self._OutputDir = path.join(self.BuildDir, "OUTPUT")
CreateDirectory(self._OutputDir)
return self._OutputDir
## Return the directory to store ffs file
def _GetFfsOutputDir(self):
- if self._FfsOutputDir == None:
+ if self._FfsOutputDir is None:
if GlobalData.gFdfParser != None:
self._FfsOutputDir = path.join(self.PlatformInfo.BuildDir, "FV", "Ffs", self.Guid + self.Name)
else:
@@ -3079,14 +3079,14 @@ class ModuleAutoGen(AutoGen):
## Return the directory to store auto-gened source files of the mdoule
def _GetDebugDir(self):
- if self._DebugDir == None:
+ if self._DebugDir is None:
self._DebugDir = path.join(self.BuildDir, "DEBUG")
CreateDirectory(self._DebugDir)
return self._DebugDir
## Return the path of custom file
def _GetCustomMakefile(self):
- if self._CustomMakefile == None:
+ if self._CustomMakefile is None:
self._CustomMakefile = {}
for Type in self.Module.CustomMakefile:
if Type in gMakeTypeMap:
@@ -3194,7 +3194,7 @@ class ModuleAutoGen(AutoGen):
# @retval list The token list of the dependency expression after parsed
#
def _GetDepexTokenList(self):
- if self._DepexList == None:
+ if self._DepexList is None:
self._DepexList = {}
if self.DxsFile or self.IsLibrary or TAB_DEPENDENCY_EXPRESSION_FILE in self.FileTypes:
return self._DepexList
@@ -3230,7 +3230,7 @@ class ModuleAutoGen(AutoGen):
# @retval list The token list of the dependency expression after parsed
#
def _GetDepexExpressionTokenList(self):
- if self._DepexExpressionList == None:
+ if self._DepexExpressionList is None:
self._DepexExpressionList = {}
if self.DxsFile or self.IsLibrary or TAB_DEPENDENCY_EXPRESSION_FILE in self.FileTypes:
return self._DepexExpressionList
@@ -3298,7 +3298,7 @@ class ModuleAutoGen(AutoGen):
# @retval dict The dict containing valid options
#
def _GetModuleBuildOption(self):
- if self._BuildOption == None:
+ if self._BuildOption is None:
self._BuildOption, self.BuildRuleOrder = self.PlatformInfo.ApplyBuildOption(self.Module)
if self.BuildRuleOrder:
self.BuildRuleOrder = ['.%s' % Ext for Ext in self.BuildRuleOrder.split()]
@@ -3309,7 +3309,7 @@ class ModuleAutoGen(AutoGen):
# @retval list The include path list
#
def _GetBuildOptionIncPathList(self):
- if self._BuildOptionIncPathList == None:
+ if self._BuildOptionIncPathList is None:
#
# Regular expression for finding Include Directories, the difference between MSFT and INTEL/GCC/RVCT
# is the former use /I , the Latter used -I to specify include directories
@@ -3370,7 +3370,7 @@ class ModuleAutoGen(AutoGen):
# $(CONF_DIRECTORY)/build_rule.txt and toolchain family.
#
def _GetSourceFileList(self):
- if self._SourceFileList == None:
+ if self._SourceFileList is None:
self._SourceFileList = []
for F in self.Module.Sources:
# match tool chain
@@ -3423,7 +3423,7 @@ class ModuleAutoGen(AutoGen):
## Return the list of unicode files
def _GetUnicodeFileList(self):
- if self._UnicodeFileList == None:
+ if self._UnicodeFileList is None:
if TAB_UNICODE_FILE in self.FileTypes:
self._UnicodeFileList = self.FileTypes[TAB_UNICODE_FILE]
else:
@@ -3432,7 +3432,7 @@ class ModuleAutoGen(AutoGen):
## Return the list of vfr files
def _GetVfrFileList(self):
- if self._VfrFileList == None:
+ if self._VfrFileList is None:
if TAB_VFR_FILE in self.FileTypes:
self._VfrFileList = self.FileTypes[TAB_VFR_FILE]
else:
@@ -3441,7 +3441,7 @@ class ModuleAutoGen(AutoGen):
## Return the list of Image Definition files
def _GetIdfFileList(self):
- if self._IdfFileList == None:
+ if self._IdfFileList is None:
if TAB_IMAGE_FILE in self.FileTypes:
self._IdfFileList = self.FileTypes[TAB_IMAGE_FILE]
else:
@@ -3455,7 +3455,7 @@ class ModuleAutoGen(AutoGen):
# @retval list The list of files which can be built later
#
def _GetBinaryFiles(self):
- if self._BinaryFileList == None:
+ if self._BinaryFileList is None:
self._BinaryFileList = []
for F in self.Module.Binaries:
if F.Target not in ['COMMON', '*'] and F.Target != self.BuildTarget:
@@ -3465,7 +3465,7 @@ class ModuleAutoGen(AutoGen):
return self._BinaryFileList
def _GetBuildRules(self):
- if self._BuildRules == None:
+ if self._BuildRules is None:
BuildRules = {}
BuildRuleDatabase = self.PlatformInfo.BuildRule
for Type in BuildRuleDatabase.FileTypeList:
@@ -3492,7 +3492,7 @@ class ModuleAutoGen(AutoGen):
return self._BuildRules
def _ApplyBuildRule(self, File, FileType):
- if self._BuildTargets == None:
+ if self._BuildTargets is None:
self._IntroBuildTargetList = set()
self._FinalBuildTargetList = set()
self._BuildTargets = {}
@@ -3569,7 +3569,7 @@ class ModuleAutoGen(AutoGen):
FileType = TAB_UNKNOWN_FILE
def _GetTargets(self):
- if self._BuildTargets == None:
+ if self._BuildTargets is None:
self._IntroBuildTargetList = set()
self._FinalBuildTargetList = set()
self._BuildTargets = {}
@@ -3616,7 +3616,7 @@ class ModuleAutoGen(AutoGen):
if self.BuildType == 'UEFI_HII':
UniStringAutoGenC = False
IdfStringAutoGenC = False
- if self._AutoGenFileList == None:
+ if self._AutoGenFileList is None:
self._AutoGenFileList = {}
AutoGenC = TemplateString()
AutoGenH = TemplateString()
@@ -3661,7 +3661,7 @@ class ModuleAutoGen(AutoGen):
## Return the list of library modules explicitly or implicityly used by this module
def _GetLibraryList(self):
- if self._DependentLibraryList == None:
+ if self._DependentLibraryList is None:
# only merge library classes and PCD for non-library module
if self.IsLibrary:
self._DependentLibraryList = []
@@ -3683,7 +3683,7 @@ class ModuleAutoGen(AutoGen):
# @retval list The list of PCD
#
def _GetModulePcdList(self):
- if self._ModulePcdList == None:
+ if self._ModulePcdList is None:
# apply PCD settings from platform
self._ModulePcdList = self.PlatformInfo.ApplyPcdSetting(self.Module, self.Module.Pcds)
self.UpdateComments(self._PcdComments, self.Module.PcdComments)
@@ -3694,7 +3694,7 @@ class ModuleAutoGen(AutoGen):
# @retval list The list of PCD
#
def _GetLibraryPcdList(self):
- if self._LibraryPcdList == None:
+ if self._LibraryPcdList is None:
Pcds = sdict()
if not self.IsLibrary:
# get PCDs from dependent libraries
@@ -3716,7 +3716,7 @@ class ModuleAutoGen(AutoGen):
# @retval dict The mapping between GUID cname and its value
#
def _GetGuidList(self):
- if self._GuidList == None:
+ if self._GuidList is None:
self._GuidList = sdict()
self._GuidList.update(self.Module.Guids)
for Library in self.DependentLibraryList:
@@ -3726,7 +3726,7 @@ class ModuleAutoGen(AutoGen):
return self._GuidList
def GetGuidsUsedByPcd(self):
- if self._GuidsUsedByPcd == None:
+ if self._GuidsUsedByPcd is None:
self._GuidsUsedByPcd = sdict()
self._GuidsUsedByPcd.update(self.Module.GetGuidsUsedByPcd())
for Library in self.DependentLibraryList:
@@ -3737,7 +3737,7 @@ class ModuleAutoGen(AutoGen):
# @retval dict The mapping between protocol cname and its value
#
def _GetProtocolList(self):
- if self._ProtocolList == None:
+ if self._ProtocolList is None:
self._ProtocolList = sdict()
self._ProtocolList.update(self.Module.Protocols)
for Library in self.DependentLibraryList:
@@ -3751,7 +3751,7 @@ class ModuleAutoGen(AutoGen):
# @retval dict The mapping between PPI cname and its value
#
def _GetPpiList(self):
- if self._PpiList == None:
+ if self._PpiList is None:
self._PpiList = sdict()
self._PpiList.update(self.Module.Ppis)
for Library in self.DependentLibraryList:
@@ -3765,7 +3765,7 @@ class ModuleAutoGen(AutoGen):
# @retval list The list path
#
def _GetIncludePathList(self):
- if self._IncludePathList == None:
+ if self._IncludePathList is None:
self._IncludePathList = []
if self.AutoGenVersion < 0x00010005:
for Inc in self.Module.Includes:
@@ -3957,7 +3957,7 @@ class ModuleAutoGen(AutoGen):
return
# Skip the following code for modules with no source files
- if self.SourceFileList == None or self.SourceFileList == []:
+ if self.SourceFileList is None or self.SourceFileList == []:
return
# Skip the following code for modules without any binary files
@@ -4172,7 +4172,7 @@ class ModuleAutoGen(AutoGen):
HexFormat = '0x%016x'
PcdValue = HexFormat % int(Pcd.DefaultValue, 0)
else:
- if Pcd.MaxDatumSize == None or Pcd.MaxDatumSize == '':
+ if Pcd.MaxDatumSize is None or Pcd.MaxDatumSize == '':
EdkLogger.error("build", AUTOGEN_ERROR,
"Unknown [MaxDatumSize] of PCD [%s.%s]" % (Pcd.TokenSpaceGuidCName, TokenCName)
)
@@ -4452,7 +4452,7 @@ class ModuleAutoGen(AutoGen):
## Summarize the ModuleAutoGen objects of all libraries used by this module
def _GetLibraryAutoGenList(self):
- if self._LibraryAutoGenList == None:
+ if self._LibraryAutoGenList is None:
self._LibraryAutoGenList = []
for Library in self.DependentLibraryList:
La = ModuleAutoGen(
@@ -4540,7 +4540,7 @@ class ModuleAutoGen(AutoGen):
return True
def GetTimeStampPath(self):
- if self._TimeStampPath == None:
+ if self._TimeStampPath is None:
self._TimeStampPath = os.path.join(self.MakeFileDir, 'AutoGenTimeStamp')
return self._TimeStampPath
def CreateTimeStamp(self, Makefile):
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v1 0/2] BaseTools: AutoGen code style compliance
2018-03-15 0:20 [PATCH v1 0/2] BaseTools: AutoGen code style compliance Jaben Carsey
2018-03-15 0:20 ` [PATCH v1 1/2] BaseTools: Autogen - modify to use standard parent/child class relationships Jaben Carsey
2018-03-15 0:20 ` [PATCH v1 2/2] BaseTools: AutoGen should use is None not == None Jaben Carsey
@ 2018-03-20 8:26 ` Zhu, Yonghong
2 siblings, 0 replies; 4+ messages in thread
From: Zhu, Yonghong @ 2018-03-20 8:26 UTC (permalink / raw)
To: Carsey, Jaben, edk2-devel@lists.01.org
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
I will push this patch.
Best Regards,
Zhu Yonghong
-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Jaben Carsey
Sent: Thursday, March 15, 2018 8:20 AM
To: edk2-devel@lists.01.org
Subject: [edk2] [PATCH v1 0/2] BaseTools: AutoGen code style compliance
update the object factory and child classes to use standard functions update the file to use is None instead of == None
Jaben Carsey (2):
BaseTools: Autogen - modify to use standard parent/child class
relationships
BaseTools: AutoGen should use is None not == None
BaseTools/Source/Python/AutoGen/AutoGen.py | 231 +++++++++++---------
1 file changed, 123 insertions(+), 108 deletions(-)
--
2.16.2.windows.1
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-03-20 8:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-15 0:20 [PATCH v1 0/2] BaseTools: AutoGen code style compliance Jaben Carsey
2018-03-15 0:20 ` [PATCH v1 1/2] BaseTools: Autogen - modify to use standard parent/child class relationships Jaben Carsey
2018-03-15 0:20 ` [PATCH v1 2/2] BaseTools: AutoGen should use is None not == None Jaben Carsey
2018-03-20 8:26 ` [PATCH v1 0/2] BaseTools: AutoGen code style compliance Zhu, Yonghong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox