Line 203 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'map'
Line 203 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 189 in SiteDBJSON.cmsNametoList W0613 Unused argument 'file'
Line 213 in SiteDBJSON.ceToCMSName W0141 Used builtin function 'filter'
Line 213 in SiteDBJSON.ceToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 219 in SiteDBJSON.ceToCMSName W0141 Used builtin function 'filter'
Line 219 in SiteDBJSON.ceToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 228 in SiteDBJSON.seToCMSName W0141 Used builtin function 'filter'
Line 228 in SiteDBJSON.seToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 234 in SiteDBJSON.seToCMSName W0141 Used builtin function 'filter'
Line 234 in SiteDBJSON.seToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 244 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'filter'
Line 244 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 247 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'filter'
Line 247 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 248 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'map'
Line 248 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 259 in SiteDBJSON.PNNtoPSN W0141 Used builtin function 'filter'
Line 259 in SiteDBJSON.PNNtoPSN W0110 map/filter on lambda could be replaced by comprehension
Line 29 in SiteDBJSON R0904 Too many public methods (34/20)
Line 29 in SiteDBJSON R0921 Abstract class not referenced
plus 48 comments on code style

src/python/WMCore/Services/DBS/DBS3Reader.py got worse in pylint. Report follows:

Line 10 W0401 Wildcard import dbs.exceptions.dbsClientException
Line 32 in remapDBS3Keys W0622 Redefining built-in 'format'
Line 155 in DBS3Reader.listRuns W0106 Expression "[runs.extend(x['run_num']) for x in results]" is assigned to nothing
Line 582 in DBS3Reader.listFileBlockLocation E0602 Undefined variable 'fileBlockName'
Line 560 in DBS3Reader.listFileBlockLocation R0912 Too many branches (14/12)
Line 685 in DBS3Reader.getFiles W0106 Expression "[result.update(self.getFileBlock(x)) for x in blocks]" is assigned to nothing
Line 789 in DBS3Reader.checkDatasetPath R0201 Method could be a function
Line 796 in DBS3Reader.checkBlockName R0201 Method could be a function
Line 42 in DBS3Reader R0904 Too many public methods (28/20)
Line 13 W0611 Unused import emulatorHook
Line 16 W0611 Unused import cmsname
Line 10 W0614 Unused import exceptions from wildcard import
plus 104 comments on code style

src/python/WMCore/Storage/DeleteMgr.py got worse in pylint. Report follows:

Line 21 in DeleteMgr R0902 Too many instance attributes (9/7)
Line 139 in DeleteMgr.initialiseOverride W0612 Unused variable 'ex'
Line 232 in DeleteMgr.deleteLFN W0612 Unused variable 'seName'
Line 237 in DeleteMgr.deleteLFN W0612 Unused variable 'protocol'
Line 233 in DeleteMgr.deleteLFN W0612 Unused variable 'pnn'
Line 235 in DeleteMgr.deleteLFN W0612 Unused variable 'options'
Line 11 W0611 Unused import os
plus 21 comments on code style

Imports for Python3 compatability missing in new files. Please fix this:

New file src/python/WMCore/WMBS/MySQL/Locations/GetPNNtoPSNMapping.py does not use python 3 print function. Please add from __future__ import print_function.

New file src/python/WMCore/WMBS/MySQL/Locations/GetPNNtoPSNMapping.py does not use python 3 division. Please add from __future__ import division.

New file src/python/WMCore/WMBS/MySQL/Locations/GetPSNtoPNNMapping.py does not use python 3 print function. Please add from __future__ import print_function.

New file src/python/WMCore/WMBS/MySQL/Locations/GetPSNtoPNNMapping.py does not use python 3 division. Please add from __future__ import division.

Pre-python 2.6 constructs are introduced by this pull request. This must be fixed. Suggested patch follows:
--- src/python/WMCore/Services/DBS/DBSWriter.py (original)
+++ src/python/WMCore/Services/DBS/DBSWriter.py (refactored)
@@ -564,7 +564,7 @@
             # // Convert each file into a DBS File object
             #//
             pnn = None
-            if outFile.has_key("PNN"):
+            if "PNN" in outFile:
                 if outFile['PNN'] :
                     pnn = outFile['PNN']
                     logging.debug("PNN associated to file is: %s"%pnn)

Pre-python 2.6 idioms found in changed files. Please consider updating the code. Suggested patch follows:
--- src/python/WMComponent/DBS3Buffer/DBSBufferFile.py (original)
+++ src/python/WMComponent/DBS3Buffer/DBSBufferFile.py (refactored)
@@ -232,7 +232,7 @@

         Set one or more lfns as the child of this file.
         """
-        if type(lfns) != list:
+        if not isinstance(lfns, list):
             lfns = [lfns]

         existingTransaction = self.beginTransaction()
--- src/python/WMComponent/DBSBuffer/Database/Interface/DBSBufferFile.py (original)
+++ src/python/WMComponent/DBSBuffer/Database/Interface/DBSBufferFile.py (refactored)
@@ -225,7 +225,7 @@

         Set one or more lfns as the child of this file.
         """
-        if type(lfns) != list:
+        if not isinstance(lfns, list):
             lfns = [lfns]

         existingTransaction = self.beginTransaction()
--- src/python/WMComponent/DBSUpload/DBSInterface.py (original)
+++ src/python/WMComponent/DBSUpload/DBSInterface.py (refactored)
@@ -83,7 +83,7 @@

     tierList = dataTier.split("-")

-    if not type(algorithm) == list:
+    if not isinstance(algorithm, list):
         algorithm = [algorithm]

     processedDataset = DbsProcessedDataset(PrimaryDataset = primary,
@@ -680,7 +680,7 @@
         take just one.
         """

-        if type(blockNames) != list:
+        if not isinstance(blockNames, list):
             blockNames = [blockNames]

@@ -721,7 +721,7 @@
             logging.debug("Skipping migration due to doGlobalMigration tag.")
             return blocks

-        if type(blocks) != list:
+        if not isinstance(blocks, list):
             blocks = [blocks]

--- src/python/WMCore/DataStructs/File.py (original)
+++ src/python/WMCore/DataStructs/File.py (refactored)
@@ -98,9 +98,9 @@
         File is equal if it has the same name
         """
         eq = False
-        if type(rhs) == type(self):
+        if isinstance(rhs, type(self)):
             eq = self['lfn'] == rhs['lfn']
-        elif type(rhs) == type('string'):
+        elif isinstance(rhs, type('string')):
             eq = self['lfn'] == rhs
         return eq

@@ -131,7 +131,7 @@
                     "parents": []}

         for parent in self["parents"]:
-            if type(parent) == str:
+            if isinstance(parent, str):
                 # Then for some reason, we're passing strings
                 # Done specifically for ErrorHandler
                 fileDict['parents'].append(parent)
--- src/python/WMCore/FwkJobReport/Report.py (original)
+++ src/python/WMCore/FwkJobReport/Report.py (refactored)
@@ -85,7 +85,7 @@
     """
     runSection = fileSection.section_("runs")

-    if not type(runInfo) == Run:
+    if not isinstance(runInfo, Run):
         for singleRun in runInfo:
             setattr(fileSection.runs, str(singleRun.run), singleRun.lumis)
     else:
@@ -203,7 +203,7 @@
             jsonPerformance[reportSection] = getattr(perfSection, reportSection).dictionary_()
             for key in jsonPerformance[reportSection].keys():
                 val = jsonPerformance[reportSection][key]
-                if type(val) == float:
+                if isinstance(val, float):
                     if math.isinf(val) or math.isnan(val):
                         jsonPerformance[reportSection][key] = None

--- src/python/WMCore/Services/DBS/DBS3Reader.py (original)
+++ src/python/WMCore/Services/DBS/DBS3Reader.py (refactored)
@@ -29,7 +29,7 @@
                'block_name': 'BlockName', 'lumi_section_num': 'LumiSectionNumber'}

     mapping.update(others)
-    format = lambda x: str(x) if stringify and type(x) == unicode else x
+    format = lambda x: str(x) if stringify and isinstance(x, unicode) else x
     for name, newname in mapping.iteritems():
         if name in data:
             data[newname] = format(data[name])
--- src/python/WMCore/Services/PhEDEx/PhEDEx.py (original)
+++ src/python/WMCore/Services/PhEDEx/PhEDEx.py (refactored)
@@ -134,7 +134,7 @@

         Update a request approving/disapproving it.
         """
-        if type(nodes) == str:
+        if isinstance(nodes, str):
             nodes = [nodes]
         args = {}
         args['decision'] = decision.lower()
--- src/python/WMCore/WMBS/File.py (original)
+++ src/python/WMCore/WMBS/File.py (refactored)
@@ -31,7 +31,7 @@
         if locations == None:
             self.setdefault("newlocations", set())
         else:
-            if type(locations) == str:
+            if isinstance(locations, str):
                 self.setdefault("newlocations", set())
                 self['newlocations'].add(locations)
             else:
@@ -107,10 +107,9 @@

         def _getAncestorIDs(ids, level):
             action = self.daofactory(classname = "Files.GetParentIDsByID")
-            parentIDs = action.execute(ids, conn = self.getDBConn(),
-                                       transaction = self.existingTransaction())
-
-            parentIDs.sort()
+            parentIDs = sorted(action.execute(ids, conn = self.getDBConn(),
+                                       transaction = self.existingTransaction()))
+
             if level == 1 or len(parentIDs) == 0:
                 return parentIDs
             else:
@@ -149,10 +148,9 @@

         def _getDescendantIDs(ids, level):
             action = self.daofactory(classname = "Files.GetChildIDsByID")
-            childIDs = action.execute(ids, conn = self.getDBConn(),
-                                       transaction = self.existingTransaction())
-
-            childIDs.sort()
+            childIDs = sorted(action.execute(ids, conn = self.getDBConn(),
+                                       transaction = self.existingTransaction()))
+
             if level == 1 or len(childIDs) == 0:
                 return childIDs
             else:
@@ -470,10 +468,10 @@
         # parents should be set of wmbs files in WMBS File class
         self["parents"] = set()

-        if type(file["locations"]) == set:
+        if isinstance(file["locations"], set):
             s = file["locations"].copy()
             pnn = s.pop()
-        elif type(file["locations"]) == list:
+        elif isinstance(file["locations"], list):
             pnn = file["locations"][0]
         else:
             pnn = file["locations"]
--- src/python/WMCore/WMBS/MySQL/Jobs/LoadForErrorHandler.py (original)
+++ src/python/WMCore/WMBS/MySQL/Jobs/LoadForErrorHandler.py (refactored)
@@ -89,7 +89,7 @@
         the result.
         """

-        if type(jobID) == list:
+        if isinstance(jobID, list):
             if len(jobID) < 1:
                 # Nothing to do
                 return []
--- src/python/WMCore/WorkQueue/WMBSHelper.py (original)
+++ src/python/WMCore/WorkQueue/WMBSHelper.py (refactored)
@@ -633,7 +633,7 @@
                         locations = set(storageElements))

         for lumi in dbsFile['LumiList']:
-            if type(lumi['LumiSectionNumber']) == list:
+            if isinstance(lumi['LumiSectionNumber'], list):
                 run = Run(lumi['RunNumber'], *lumi['LumiSectionNumber'])
             else:
                 run = Run(lumi['RunNumber'], lumi['LumiSectionNumber'])
@@ -736,7 +736,7 @@

         results = []
         for f in files:
-            if type(f) == type("") or "LumiList" not in f:
+            if isinstance(f, type("")) or "LumiList" not in f:
                 results.append(f)
                 continue

--- src/python/WMCore/WorkQueue/WorkQueueBackend.py (original)
+++ src/python/WMCore/WorkQueue/WorkQueueBackend.py (refactored)
@@ -542,7 +542,7 @@
         """
         deleted = 0
         dbs = [self.db, self.inbox]
-        if type(workflowNames) != list:
+        if not isinstance(workflowNames, list):
             workflowNames = [workflowNames]

         if len(workflowNames) == 0:
--- test/python/WMComponent_t/JobAccountant_t/JobAccountant_t.py (original)
+++ test/python/WMComponent_t/JobAccountant_t/JobAccountant_t.py (refactored)
@@ -553,7 +553,7 @@
             assert dbsFile["datasetPath"] == datasetPath, \
                    "Error: dataset path in buffer is wrong."

-            if type(parentFileLFNs) == dict:
+            if isinstance(parentFileLFNs, dict):
                 parentFileLFNsCopy = copy.deepcopy(parentFileLFNs[fwkJobReportFile["lfn"]])
             else:
                 parentFileLFNsCopy = copy.deepcopy(parentFileLFNs)
--- test/python/WMComponent_t/JobSubmitter_t/JobSubmitter_t.py (original)
+++ test/python/WMComponent_t/JobSubmitter_t/JobSubmitter_t.py (refactored)
@@ -178,7 +178,7 @@
             #site = self.sites[0]
             testFile = File(lfn = "/singleLfn/%s/%s" % (name, n),
                             size = 1024, events = 10)
-            if type(site) == list:
+            if isinstance(site, list):
                 for singleSite in site:
                     testFile.setLocation(singleSite)
             else:
--- test/python/WMCore_t/WMBS_t/File_t.py (original)
+++ test/python/WMCore_t/WMBS_t/File_t.py (refactored)
@@ -280,26 +280,26 @@
         assert testFileA == testFileC, \
                "ERROR: File load by ID didn't work"

-        assert type(testFileB["id"]) == int, \
+        assert isinstance(testFileB["id"], int), \
                "ERROR: File id is not an integer type."
-        assert type(testFileB["size"]) == int, \
+        assert isinstance(testFileB["size"], int), \
                "ERROR: File size is not an integer type."
-        assert type(testFileB["events"]) == int, \
+        assert isinstance(testFileB["events"], int), \
                "ERROR: File events is not an integer type."
-        assert type(testFileB["checksums"]) == dict, \
+        assert isinstance(testFileB["checksums"], dict), \
                "ERROR: File cksum is not a string type."
-        assert type(testFileB["first_event"]) == int, \
+        assert isinstance(testFileB["first_event"], int), \
                "ERROR: File first_event is not an integer type."

-        assert type(testFileC["id"]) == int, \
+        assert isinstance(testFileC["id"], int), \
                "ERROR: File id is not an integer type."
-        assert type(testFileC["size"]) == int, \
+        assert isinstance(testFileC["size"], int), \
                "ERROR: File size is not an integer type."
-        assert type(testFileC["events"]) == int, \
+        assert isinstance(testFileC["events"], int), \
                "ERROR: File events is not an integer type."
-        assert type(testFileC["checksums"]) == dict, \
+        assert isinstance(testFileC["checksums"], dict), \
                "ERROR: File cksum is not an string type."
-        assert type(testFileC["first_event"]) == int, \
+        assert isinstance(testFileC["first_event"], int), \
                "ERROR: File first_event is not an integer type."

         self.assertEqual(testFileC['checksums'], {'cksum': '101'})
--- test/python/WMCore_t/WMBS_t/Fileset_t.py (original)
+++ test/python/WMCore_t/WMBS_t/Fileset_t.py (refactored)
@@ -159,10 +159,10 @@
         testFilesetC = Fileset(id = testFilesetA.id)
         testFilesetC.load()

-        assert type(testFilesetB.id) == int, \
+        assert isinstance(testFilesetB.id, int), \
                "ERROR: Fileset id is not an int."

-        assert type(testFilesetC.id) == int, \
+        assert isinstance(testFilesetC.id, int), \
                "ERROR: Fileset id is not an int."

         assert testFilesetB.id == testFilesetA.id, \
--- test/python/WMCore_t/WMBS_t/JobGroup_t.py (original)
+++ test/python/WMCore_t/WMBS_t/JobGroup_t.py (refactored)
@@ -308,22 +308,22 @@
         testJobGroupC = JobGroup(uid = testJobGroupA.uid)
         testJobGroupC.load()

-        assert type(testJobGroupB.id) == int, \
+        assert isinstance(testJobGroupB.id, int), \
                "ERROR: Job group id is not an int."

-        assert type(testJobGroupC.id) == int, \
+        assert isinstance(testJobGroupC.id, int), \
                "ERROR: Job group id is not an int."

-        assert type(testJobGroupB.subscription["id"]) == int, \
+        assert isinstance(testJobGroupB.subscription["id"], int), \
                "ERROR: Job group subscription id is not an int."

-        assert type(testJobGroupC.subscription["id"]) == int, \
+        assert isinstance(testJobGroupC.subscription["id"], int), \
                "ERROR: Job group subscription id is not an int."

-        assert type(testJobGroupB.output.id) == int, \
+        assert isinstance(testJobGroupB.output.id, int), \
                "ERROR: Job group output id is not an int."

-        assert type(testJobGroupC.output.id) == int, \
+        assert isinstance(testJobGroupC.output.id, int), \
                "ERROR: Job group output id is not an int."

         assert testJobGroupB.uid == testJobGroupA.uid, \
--- test/python/WMCore_t/WMBS_t/Subscription_t.py (original)
+++ test/python/WMCore_t/WMBS_t/Subscription_t.py (refactored)
@@ -814,22 +814,22 @@
         testSubscriptionB.load()
         testSubscriptionC.load()

-        assert type(testSubscriptionB["id"]) == int, \
+        assert isinstance(testSubscriptionB["id"], int), \
                "ERROR: Subscription id is not an int."

-        assert type(testSubscriptionC["id"]) == int, \
+        assert isinstance(testSubscriptionC["id"], int), \
                "ERROR: Subscription id is not an int."

-        assert type(testSubscriptionB["workflow"].id) == int, \
+        assert isinstance(testSubscriptionB["workflow"].id, int), \
                "ERROR: Subscription workflow id is not an int."

-        assert type(testSubscriptionC["workflow"].id) == int, \
+        assert isinstance(testSubscriptionC["workflow"].id, int), \
                "ERROR: Subscription workflow id is not an int."

-        assert type(testSubscriptionB["fileset"].id) == int, \
+        assert isinstance(testSubscriptionB["fileset"].id, int), \
                "ERROR: Subscription fileset id is not an int."

-        assert type(testSubscriptionC["fileset"].id) == int, \
+        assert isinstance(testSubscriptionC["fileset"].id, int), \
                "ERROR: Subscription fileset id is not an int."

         assert testWorkflow.id == testSubscriptionB["workflow"].id, \

Unit test changes for pull request 5989:

WMCore_t.WorkQueue_t.Policy_t.Start_t.MonteCarlo_t.MonteCarloTestCase:testContinuousSplittingSupport was added. Status is success
WMCore_t.WMBS_t.JobSplitting_t.MinFileBased_t.FileBasedTest:testE_MoreFilesClosed changed from success to error
WMCore_t.WorkQueue_t.Policy_t.Start_t.MonteCarlo_t.MonteCarloTestCase:testMultiTaskProcessingWorkload was added. Status is success
WMCore_t.Services_t.SiteDB_t.SiteDB_t.SiteDBTest:testPhEDExNodetocmsName was deleted. Prior status was success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListBlockParents changed from success to error
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testMergeSuccessNoLumi changed from success to failure
WMCore_t.WMSpec_t.Steps_t.Executors_t.StageOut_t.StageOutTest:testExecutorDoesntDetonate changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testSetLocation changed from success to failure
WMCore_t.WorkQueue_t.Policy_t.Start_t.Dataset_t.DatasetTestCase:testTier1ReRecoWorkload changed from error to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test50EventMultipleFileSplit changed from success to failure
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testInsertT0 changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testGetBulkLocations changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test50EventSplit changed from success to failure
WMCore_t.WMSpec_t.Steps_t.Executors_t.LogArch_t.LogArchiveTest:testUnitTestBackend changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testPersist changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:testMCEventSplitOver32bit changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testSetLocationOrder changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testLoadData changed from success to error
WMComponent_t.JobCreator_t.JobCreator_t.JobCreatorTest:testE_TestNonProxySplitting changed from success to error
WMCore_t.WorkQueue_t.Policy_t.Start_t.Dataset_t.DatasetTestCase:testDataDirectiveFromQueue changed from error to success
WMCore_t.WMBS_t.File_t.FileTest:test_SetLocationsForWorkQueue changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testLocationsConstructor changed from success to failure
WMComponent_t.JobCreator_t.JobCreator_t.JobCreatorTest:testA_VerySimpleTest changed from success to error
WMCore_t.WMBS_t.Fileset_t.FilesetTest:testAddToWMBSInBulk changed from success to failure
WMCore_t.WMSpec_t.Steps_t.Executors_t.LogArch_t.LogArchiveTest:testExecutorDoesntDetonate changed from success to error
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testParentlessMergeSuccess changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.LumiBased_t.LumiBasedTest:testF_RunWhitelist changed from success to failure
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testJobKilling changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test100EventMultipleSite changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.MinFileBased_t.FileBasedTest:testA_ExactFiles changed from success to error
WMCore_t.WMBS_t.Locations_t.LocationsTest:testGetSiteInfo changed from success to error
nose.failure.Failure:runTest was deleted. Prior status was error
WMCore_t.WMBS_t.Fileset_t.FilesetTest:testAddBulkByLFN changed from success to failure
WMCore_t.WorkQueue_t.Policy_t.Start_t.Dataset_t.DatasetTestCase:testMultiTaskProcessingWorkload changed from error to failure
WMCore_t.WMBS_t.JobSplitting_t.LumiBased_t.LumiBasedTest:testB_NoRunNoFileSplitting changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testMergedSkim changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.MinFileBased_t.FileBasedTest:testD_MoreFilesOpen changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test100EventMultipleFileSplit changed from success to failure
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testInsertAllSEs changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testDataStructsFile changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testDuplicateJobReports changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.LumiBased_t.LumiBasedTest:testE_getParents changed from success to failure
WMCore_t.WorkQueue_t.Policy_t.Start_t.MonteCarlo_t.MonteCarloTestCase:testExtremeSplits was added. Status is success
WMCore_t.WMBS_t.JobSplitting_t.EventAwareLumiBased_t.EventAwareLumiBasedTest:testA_FileSplitNoHardLimit changed from success to failure
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testRetryCount changed from success to error
WMCore_t.WMSpec_t.Steps_t.Executors_t.LogArch_t.LogArchiveTest:testUnitTestBackendNew changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testSetLocationByLFN changed from success to failure
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testChangeSiteState changed from error to success
WMCore_t.WMBS_t.JobSplitting_t.FixedDelay_t.FixedDelayTest:testClosed changed from success to failure
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testRecordInCouch changed from success to error
WMCore_t.WorkQueue_t.Policy_t.Start_t.MonteCarlo_t.MonteCarloTestCase:testInvalidSpecs was added. Status is success
WMCore_t.WorkQueue_t.Policy_t.Start_t.MonteCarlo_t.MonteCarloTestCase:testShiftedStartSplitting was added. Status is failure
WMCore_t.WMBS_t.JobSplitting_t.ParentlessMergeBySize_t.ParentlessMergeBySizeTest:testLocationMerging changed from success to failure
WMCore_t.WorkQueue_t.Policy_t.Start_t.Dataset_t.DatasetTestCase:testWhiteBlackLists changed from error to failure
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testFWJRInputFileTruncation changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testGetInfo changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test_addParents changed from success to failure
WMCore_t.WMBS_t.Fileset_t.FilesetTest:testBulkAddDAO changed from success to failure
WMCore_t.WorkQueue_t.Policy_t.Start_t.MonteCarlo_t.MonteCarloTestCase:testLHEProductionWorkload was added. Status is failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test150EventMultipleFileSplit changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testMergeSuccessSkippedFiles changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testSplitJobs changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:testMoreEvents changed from success to failure
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testInsertAllSEs2 changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventAwareLumiBased_t.EventAwareLumiBasedTest:testC_HardLimitSplitting changed from success to failure
WMCore_t.WMBS_t.Fileset_t.FilesetTest:testFileCreate changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testCreateWithLocation changed from success to failure
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testUpdateLocation changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testJobSummary changed from success to error
WMCore_t.WorkQueue_t.Policy_t.Start_t.MonteCarlo_t.MonteCarloTestCase:testBasicProductionWorkload was added. Status is success
WMCore_t.WMBS_t.JobSplitting_t.FixedDelay_t.FixedDelayTest:testClosedSomeAcquired changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.MinFileBased_t.FileBasedTest:testC_LessFilesClosed changed from success to error
WMCore_t.WMSpec_t.Steps_t.Executors_t.StageOut_t.StageOutTest:testUnitTestBackend changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testSetLocationTransaction changed from success to failure
WMCore_t.WMBS_t.JobGroup_t.JobGroupTest:testGetLocationsForJobs changed from success to failure
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testIndexConflict changed from success to error
WMCore_t.WMSpec_t.Steps_t.Executors_t.StageOut_t.StageOutTest:testUnitTestBackendNew changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.EventAwareLumiBased_t.EventAwareLumiBasedTest:testD_HardLimitSplittingOnly changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:testExactEvents changed from success to failure
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testUpdateFailedDoc changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testJobSerialization changed from success to error
WMCore_t.WorkQueue_t.Policy_t.Start_t.MonteCarlo_t.MonteCarloTestCase:testMultiMergeProductionWorkload was added. Status is success
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test99EventSplit changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:test4GMerge changed from error to failure
WMCore_t.WMBS_t.JobSplitting_t.MinFileBased_t.FileBasedTest:testB_LessFilesOpen changed from success to error
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testListSiteInfo changed from success to error
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testMergeSuccess changed from success to failure

Beginning pylint and unit tests.
See https://cmssdt.cern.ch/jenkins/job/DMWM-PR-test/416/ for details

Beginning pylint and unit tests.
See https://cmssdt.cern.ch/jenkins/job/DMWM-PR-test/417/ for details

@alexanderrichards most of the suggested patch stuff (isinstnace) is not on you and I would suggest NOT changing that. This branch is already a major change and to conflate it with possible type problems could really muddle things.
The only parts you have to change are the first two: future imports on NEW files and the one has_key -> in

@ericvaandering thanks eric, I wasn't looking forward to it coming back with more of those syntax changes ;-). I'll remove the last commit then with the exception of the NEW files future imports and the has_key which I notice is changed in the master upstream but as it's a modified line in my patch this needs to be carried forward.

Summary of pylint changes for pull request 5989:

Score for src/python/WMCore/Storage/StageOutMgr.py decreased from 9.55 to 9.53
Warnings for src/python/WMCore/Storage/StageOutMgr.py increased from 5 to 6
Score for src/python/WMCore/WorkQueue/Policy/Start/StartPolicyInterface.py decreased from 9.93 to 9.86
Warnings for src/python/WMCore/WorkQueue/Policy/Start/StartPolicyInterface.py increased from 1 to 2
Score for test/python/WMCore_t/Services_t/SiteDB_t/SiteDB_t.py decreased from 9.84 to 9.82
Score for src/python/WMCore/Storage/StageInMgr.py decreased from 9.88 to 9.83
Warnings for src/python/WMCore/Storage/StageInMgr.py increased from 2 to 3
Score for src/python/WMCore/WorkQueue/Policy/Start/Dataset.py decreased from 9.81 to 9.72
Warnings for src/python/WMCore/WorkQueue/Policy/Start/Dataset.py increased from 2 to 3
Warnings for src/python/WMCore/Storage/FileManager.py increased from 15 to 16
Score for src/python/WMQuality/Emulators/SiteDBClient/SiteDB.py decreased from 4.59 to 4.42
Score for test/data/ReqMgr/RequestQuery.py decreased from 9.45 to 9.14
Errors for test/data/ReqMgr/RequestQuery.py increased from 0 to 1
Score for test/python/WMCore_t/WMBS_t/File_t.py decreased from 9.94 to 9.80
Errors for test/python/WMCore_t/WMBS_t/File_t.py increased from 0 to 2
Score for src/python/WMCore/Services/DBS/DBS3Reader.py decreased from 9.76 to 9.61
Errors for src/python/WMCore/Services/DBS/DBS3Reader.py increased from 0 to 1
Warnings for src/python/WMCore/Services/DBS/DBS3Reader.py increased from 6 to 7
Score for src/python/WMCore/Storage/DeleteMgr.py decreased from 9.71 to 9.68
Warnings for src/python/WMCore/Storage/DeleteMgr.py increased from 5 to 6

src/python/WMCore/Storage/StageOutMgr.py got worse in pylint. Report follows:

Line 23 in StageOutMgr R0902 Too many instance attributes (10/7)
Line 211 in StageOutMgr.call W0703 Catching too general exception Exception
Line 236 in StageOutMgr.call W0703 Catching too general exception Exception
Line 240 in StageOutMgr.call E0702 Raising NoneType while only classes, instances or string are allowed
Line 288 in StageOutMgr.localStageOut W0612 Unused variable 'seName'
Line 289 in StageOutMgr.localStageOut W0612 Unused variable 'pnn'
Line 20 W0611 Unused import WMCore
Line 11 W0611 Unused import os
plus 26 comments on code style

src/python/WMCore/WorkQueue/Policy/Start/StartPolicyInterface.py got worse in pylint. Report follows:

Line 17 in StartPolicyInterface R0902 Too many instance attributes (12/7)
Line 41 in StartPolicyInterface.validateCommon R0912 Too many branches (14/12)
Line 132 in StartPolicyInterface.call W0201 Attribute 'mask' defined outside init
Line 10 W0611 Unused import sitesFromStorageEelements
Line 17 in StartPolicyInterface R0921 Abstract class not referenced
plus 7 comments on code style

test/python/WMCore_t/Services_t/SiteDB_t/SiteDB_t.py got worse in pylint. Report follows:

Line 13 in SiteDBTest R0904 Too many public methods (24/20)
Line 11 W0611 Unused import attr
plus 3 comments on code style

src/python/WMCore/Storage/StageInMgr.py got worse in pylint. Report follows:

Line 143 in StageInMgr.initialiseOverride W0612 Unused variable 'ex'
Line 232 in StageInMgr.localStageIn W0612 Unused variable 'seName'
Line 233 in StageInMgr.localStageIn W0612 Unused variable 'pnn'
plus 18 comments on code style

src/python/WMCore/Services/DBS/DBSWriter.py fails the pylint check. Report follows:

Line 12 W0622 Redefining built-in 'Exception'
Line 12 W0401 Wildcard import DBSAPI.dbsException
Line 13 W0401 Wildcard import DBSAPI.dbsStorageElement
Line 14 W0401 Wildcard import DBSAPI.dbsApiException
Line 50 in _CreateDatasetOperator.call E1101 Instance of '_CreateDatasetOperator' has no 'getOutputDatasetsWithPSet' member
Line 56 in _CreateDatasetOperator.call W0703 Catching too general exception Exception
Line 56 in _CreateDatasetOperator.call W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 68 in _CreateDatasetOperator.call W0612 Unused variable 'processed'
Line 36 in _CreateDatasetOperator R0903 Too few public methods (0/2)
Line 87 in _CreateMergeDatasetOperator.call W0212 Access to a protected member _OutputDatasets of a client class
Line 110 in _CreateMergeDatasetOperator.call W1201 Specify string format arguments as logging function parameters
Line 111 in _CreateMergeDatasetOperator.call W1201 Specify string format arguments as logging function parameters
Line 112 in _CreateMergeDatasetOperator.call W1201 Specify string format arguments as logging function parameters
Line 73 in _CreateMergeDatasetOperator R0903 Too few public methods (0/2)
Line 130 in _remapBlockParentage.dropNode W1201 Specify string format arguments as logging function parameters
Line 131 in _remapBlockParentage.dropNode W1201 Specify string format arguments as logging function parameters
Line 212 in DBSWriter.init W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 230 in DBSWriter.createDatasets W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 366 in DBSWriter.insertFilesForDBSBuffer W0622 Redefining built-in 'file'
Line 237 in DBSWriter.insertFilesForDBSBuffer R0913 Too many arguments (10/7)
Line 237 in DBSWriter.insertFilesForDBSBuffer R0914 Too many local variables (35/30)
Line 285 in DBSWriter.insertFilesForDBSBuffer W1201 Specify string format arguments as logging function parameters
Line 330 in DBSWriter.insertFilesForDBSBuffer W1201 Specify string format arguments as logging function parameters
Line 356 in DBSWriter.insertFilesForDBSBuffer W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 395 in DBSWriter.insertFilesForDBSBuffer W1201 Specify string format arguments as logging function parameters
Line 410 in DBSWriter.insertFilesForDBSBuffer W1201 Specify string format arguments as logging function parameters
Line 346 in DBSWriter.insertFilesForDBSBuffer W0612 Unused variable 'blockList'
Line 238 in DBSWriter.insertFilesForDBSBuffer W0613 Unused argument 'jobType'
Line 344 in DBSWriter.insertFilesForDBSBuffer W0612 Unused variable 'sumFiles'
Line 345 in DBSWriter.insertFilesForDBSBuffer W0612 Unused variable 'tmpFiles'
Line 343 in DBSWriter.insertFilesForDBSBuffer W0612 Unused variable 'sumSize'
Line 238 in DBSWriter.insertFilesForDBSBuffer W0613 Unused argument 'insertDetectorData'
Line 237 in DBSWriter.insertFilesForDBSBuffer R0912 Too many branches (22/12)
Line 624 in DBSWriter.insertFiles W0622 Redefining built-in 'hash'
Line 570 in DBSWriter.insertFiles W1201 Specify string format arguments as logging function parameters
Line 594 in DBSWriter.insertFiles W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 664 in DBSWriter.insertFiles W1201 Specify string format arguments as logging function parameters
Line 685 in DBSWriter.insertFiles W1201 Specify string format arguments as logging function parameters
Line 534 in DBSWriter.insertFiles R0912 Too many branches (19/12)
Line 691 in DBSWriter.manageFileBlock W0102 Dangerous default value [] as argument
Line 691 in DBSWriter.manageFileBlock W0102 Dangerous default value [] as argument
Line 691 in DBSWriter.manageFileBlock R0913 Too many arguments (8/7)
Line 734 in DBSWriter.manageFileBlock W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 751 in DBSWriter.manageFileBlock W1201 Specify string format arguments as logging function parameters
Line 753 in DBSWriter.manageFileBlock W1201 Specify string format arguments as logging function parameters
Line 824 in DBSWriter.manageFileBlock W1201 Specify string format arguments as logging function parameters
Line 826 in DBSWriter.manageFileBlock W1201 Specify string format arguments as logging function parameters
Line 819 in DBSWriter.manageFileBlock W0612 Unused variable 'algo'
Line 691 in DBSWriter.manageFileBlock R0912 Too many branches (18/12)
Line 883 in DBSWriter.migrateDatasetBlocks E1101 Instance of 'DbsApi' has no 'listDatasetContents' member
Line 884 in DBSWriter.migrateDatasetBlocks W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 953 in DBSWriter.importDatasetWithExistingParents E1101 Instance of 'DbsApi' has no 'listDatasetContents' member
Line 956 in DBSWriter.importDatasetWithExistingParents W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 908 in DBSWriter.importDatasetWithExistingParents W0613 Unused argument 'targetDBS'
Line 1035 in DBSWriter.importDataset W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 1100 in DBSWriter.importDatasetWithoutParentage W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 1120 in DBSWriter.getOutputDatasetsWithPSet E0213 Method should have "self" as first argument
Line 1133 in DBSWriter.getOutputDatasetsWithPSet E1101 Instance of 'DBSWriter' has no '_OutputDatasets' member
Line 1136 in DBSWriter.getOutputDatasetsWithPSet E1101 Instance of 'DBSWriter' has no 'application' member
Line 1137 in DBSWriter.getOutputDatasetsWithPSet E1101 Instance of 'DBSWriter' has no 'application' member
Line 1138 in DBSWriter.getOutputDatasetsWithPSet E1101 Instance of 'DBSWriter' has no 'application' member
Line 1145 in DBSWriter.getOutputDatasetsWithPSet W0703 Catching too general exception Exception
Line 1142 in DBSWriter.getOutputDatasetsWithPSet E1101 Instance of 'DBSWriter' has no 'cfgInterface' member
Line 1145 in DBSWriter.getOutputDatasetsWithPSet W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 1150 in DBSWriter.getOutputDatasetsWithPSet E0602 Undefined variable '_sortDatasets'
Line 1145 in DBSWriter.getOutputDatasetsWithPSet W0612 Unused variable 'ex'
Line 1189 in DatasetInfo.str E1101 Instance of 'DatasetInfo' has no 'save' member
Line 13 W0614 Unused import isListType from wildcard import
Line 34 W0611 Unused import base64
Line 12 W0614 Unused import InvalidArgument from wildcard import
Line 13 W0614 Unused import isStringType from wildcard import
Line 14 W0614 Unused import DbsDatabaseError from wildcard import
Line 12 W0614 Unused import ex from wildcard import
Line 12 W0614 Unused import MethodNotImplemented from wildcard import
Line 13 W0614 Unused import isLongType from wildcard import
Line 12 W0614 Unused import DataNotInitialized from wildcard import
Line 13 W0614 Unused import isDictType from wildcard import
Line 14 W0614 Unused import DbsBadRequest from wildcard import
Line 14 W0614 Unused import DbsExecutionError from wildcard import
Line 14 W0614 Unused import DbsConnectionError from wildcard import
Line 14 W0614 Unused import DbsNoObject from wildcard import
Line 13 W0614 Unused import DbsStorageElement from wildcard import
Line 13 W0614 Unused import verifyDatasetPathName from wildcard import
Line 27 W0611 Unused import DbsFileBlock
Line 14 W0614 Unused import DbsToolError from wildcard import
Line 14 W0614 Unused import InvalidDatasetPathName from wildcard import
Line 13 W0614 Unused import ValidationTable from wildcard import
Line 14 W0614 Unused import DbsConfigurationError from wildcard import
Line 14 W0614 Unused import DbsObjectExists from wildcard import
Line 14 W0614 Unused import DbsBadData from wildcard import
Line 14 W0614 Unused import DbsProxyNotFound from wildcard import
Line 13 W0614 Unused import string from wildcard import
Line 13 W0614 Unused import isIntType from wildcard import
Line 13 W0614 Unused import dbsException from wildcard import
Line 14 W0614 Unused import DbsApiException from wildcard import
Line 13 W0614 Unused import re from wildcard import
Line 13 W0614 Unused import isFloatType from wildcard import
Line 13 W0614 Unused import types from wildcard import
Line 13 W0614 Unused import ALLOWED_DATASET_REGEX_ from wildcard import
Line 14 W0614 Unused import DbsBadXMLData from wildcard import
Line 14 W0614 Unused import DbsBadResponse from wildcard import
Line 26 W0611 Unused import get_path
Line 13 W0614 Unused import ALLOWED_NAME_CHARS_ from wildcard import
Line 14 W0614 Unused import InvalidDataTier from wildcard import
Line 13 W0614 Unused import DbsBase from wildcard import
plus 168 comments on code style

src/python/WMCore/WMRuntime/Scripts/SetupCMSSWPset.py fails the pylint check. Report follows:

Line 628 W0311 Bad indentation. Found 16 spaces, expected 12
Line 184 in SetupCMSSWPset.createProcess E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 191 in SetupCMSSWPset.createProcess W0703 Catching too general exception Exception
Line 199 in SetupCMSSWPset.createProcess W0703 Catching too general exception Exception
Line 208 in SetupCMSSWPset.createProcess W0703 Catching too general exception Exception
Line 226 in SetupCMSSWPset.loadPSet W0212 Access to a protected member _internal_name of a client class
Line 226 in SetupCMSSWPset.loadPSet E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 291 in SetupCMSSWPset.handleSeeding E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 297 in SetupCMSSWPset.handleSeeding W0212 Access to a protected member _internal_name of a client class
Line 316 in SetupCMSSWPset.handlePerformanceSettings E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 339 in SetupCMSSWPset.handleChainedProcessing E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 340 in SetupCMSSWPset.handleChainedProcessing E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 359 in SetupCMSSWPset.handleChainedProcessing E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 417 in SetupCMSSWPset._processPileupMixingModules E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 435 in SetupCMSSWPset._processPileupMixingModules E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 439 in SetupCMSSWPset._processPileupMixingModules E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 516 in SetupCMSSWPset.handleDQMFileSaver E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 520 in SetupCMSSWPset.handleDQMFileSaver E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 521 in SetupCMSSWPset.handleDQMFileSaver E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 545 in SetupCMSSWPset.handleRepackSettings E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 546 in SetupCMSSWPset.handleRepackSettings E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 587 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 589 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 590 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 591 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 618 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 619 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 630 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 632 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'applyPSetTweak' member
Line 635 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 641 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 642 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 646 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 651 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 655 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 658 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 662 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 678 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 680 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 683 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 685 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 688 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 689 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 691 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 693 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 694 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 577 in SetupCMSSWPset.call R0912 Too many branches (23/12)
Line 190 in SetupCMSSWPset.createProcess W0201 Attribute 'process' defined outside init
Line 198 in SetupCMSSWPset.createProcess W0201 Attribute 'process' defined outside init
Line 207 in SetupCMSSWPset.createProcess W0201 Attribute 'process' defined outside init
Line 230 in SetupCMSSWPset.loadPSet W0201 Attribute 'process' defined outside init
Line 584 in SetupCMSSWPset.call W0201 Attribute 'process' defined outside init
Line 10 W0611 Unused import types
Line 19 W0611 Unused import makeTweak
Line 18 W0611 Unused import WMStep
Line 157 in SetupCMSSWPset R0923 Interface not implemented
plus 18 comments on code style

src/python/WMCore/WorkQueue/Policy/Start/Dataset.py got worse in pylint. Report follows:

Line 16 in Dataset W0223 Method 'modifyPolicyForWorkAddition' is abstract in class 'StartPolicyInterface' but is not overridden
Line 16 in Dataset W0223 Method 'newDataAvailable' is abstract in class 'StartPolicyInterface' but is not overridden
Line 82 in Dataset.validBlocks R0912 Too many branches (19/12)
Line 13 W0611 Unused import sitesFromStorageEelements
Line 16 in Dataset R0923 Interface not implemented
plus 17 comments on code style

src/python/WMCore/Storage/FileManager.py got worse in pylint. Report follows:

Line 344 W0511 FIXME add checksum stuff
Line 27 in FileManager R0902 Too many instance attributes (12/7)
Line 131 in FileManager.stageFile E0702 Raising NoneType while only classes, instances or string are allowed
Line 164 in FileManager.deleteLFN W1201 Specify string format arguments as logging function parameters
Line 184 in FileManager.deleteLFN W0703 Catching too general exception Exception
Line 197 in FileManager.deleteLFN E0702 Raising NoneType while only classes, instances or string are allowed
Line 335 in FileManager._doTransfer W1201 Specify string format arguments as logging function parameters
Line 359 in FileManager._doTransfer W0703 Catching too general exception Exception
Line 318 in FileManager._doTransfer W0612 Unused variable 'pnn'
Line 387 in FileManager.cleanSuccessfulStageOuts E1101 Instance of 'FileManager' has no 'info' member
Line 92 in FileManager.stageFile W0201 Attribute 'firstException' defined outside init
Line 178 in FileManager.deleteLFN W0201 Attribute 'firstException' defined outside init
Line 189 in FileManager.deleteLFN W0201 Attribute 'firstException' defined outside init
Line 353 in FileManager._doTransfer W0201 Attribute 'firstException' defined outside init
Line 366 in FileManager._doTransfer W0201 Attribute 'firstException' defined outside init
Line 449 in DeleteMgr E0102 class already defined line 19
Line 14 W0611 Unused import WMException
Line 19 W0611 Unused import DeleteMgr
Line 23 W0611 Unused import WMCore
Line 18 W0611 Unused import StageOutInitError
Line 10 W0611 Unused import os
plus 91 comments on code style

src/python/WMQuality/Emulators/SiteDBClient/SiteDB.py fails the pylint check. Report follows:

Line 70 in SiteDBJSON.init W0102 Dangerous default value {} as argument
Line 75 in SiteDBJSON._people W0141 Used builtin function 'filter'
Line 75 in SiteDBJSON._people W0110 map/filter on lambda could be replaced by comprehension
Line 73 in SiteDBJSON._people W0613 Unused argument 'clearCache'
Line 81 in SiteDBJSON._sitenames W0141 Used builtin function 'filter'
Line 81 in SiteDBJSON._sitenames W0110 map/filter on lambda could be replaced by comprehension
Line 79 in SiteDBJSON._sitenames W0613 Unused argument 'clearCache'
Line 85 in SiteDBJSON._siteresources W0613 Unused argument 'clearCache'
Line 88 in SiteDBJSON._dataProcessing W0613 Unused argument 'clearCache'
Line 97 in SiteDBJSON.dnUserName W0141 Used builtin function 'filter'
Line 97 in SiteDBJSON.dnUserName W0110 map/filter on lambda could be replaced by comprehension
Line 100 in SiteDBJSON.dnUserName W0141 Used builtin function 'filter'
Line 100 in SiteDBJSON.dnUserName W0110 map/filter on lambda could be replaced by comprehension
Line 125 in SiteDBJSON.getAllCENames W0141 Used builtin function 'filter'
Line 125 in SiteDBJSON.getAllCENames W0110 map/filter on lambda could be replaced by comprehension
Line 126 in SiteDBJSON.getAllCENames W0141 Used builtin function 'map'
Line 126 in SiteDBJSON.getAllCENames W0110 map/filter on lambda could be replaced by comprehension
Line 137 in SiteDBJSON.getAllSENames W0141 Used builtin function 'filter'
Line 137 in SiteDBJSON.getAllSENames W0110 map/filter on lambda could be replaced by comprehension
Line 138 in SiteDBJSON.getAllSENames W0141 Used builtin function 'map'
Line 138 in SiteDBJSON.getAllSENames W0110 map/filter on lambda could be replaced by comprehension
Line 149 in SiteDBJSON.getAllCMSNames W0141 Used builtin function 'filter'
Line 149 in SiteDBJSON.getAllCMSNames W0110 map/filter on lambda could be replaced by comprehension
Line 150 in SiteDBJSON.getAllCMSNames W0141 Used builtin function 'map'
Line 150 in SiteDBJSON.getAllCMSNames W0110 map/filter on lambda could be replaced by comprehension
Line 153 in SiteDBJSON.cmsNametoList W0622 Redefining built-in 'file'
Line 162 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'filter'
Line 162 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 164 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'map'
Line 164 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 165 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'filter'
Line 165 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 166 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'filter'
Line 166 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 167 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'map'
Line 167 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 153 in SiteDBJSON.cmsNametoList W0613 Unused argument 'file'
Line 177 in SiteDBJSON.ceToCMSName W0141 Used builtin function 'filter'
Line 177 in SiteDBJSON.ceToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 183 in SiteDBJSON.ceToCMSName W0141 Used builtin function 'filter'
Line 183 in SiteDBJSON.ceToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 191 in SiteDBJSON.seToCMSName W0141 Used builtin function 'filter'
Line 191 in SiteDBJSON.seToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 197 in SiteDBJSON.seToCMSName W0141 Used builtin function 'filter'
Line 197 in SiteDBJSON.seToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 206 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'filter'
Line 206 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 209 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'filter'
Line 209 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 210 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'map'
Line 210 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 220 in SiteDBJSON.PNNtoPSN W0141 Used builtin function 'filter'
Line 220 in SiteDBJSON.PNNtoPSN W0110 map/filter on lambda could be replaced by comprehension
Line 9 in SiteDBJSON R0921 Abstract class not referenced
plus 62 comments on code style

test/data/ReqMgr/RequestQuery.py got worse in pylint. Report follows:

Line 17 W0702 No exception type(s) specified
Line 39 in RequestQuery.getScramArchByCMSSW R0201 Method could be a function
Line 75 in RequestQuery.getDatasetOriginSites W0612 Unused variable 'sites'
Line 134 in RequestQuery.getLabelByValueDict R0201 Method could be a function
Line 146 in RequestQuery.getValueByLabelDict R0201 Method could be a function
Line 174 in RequestQuery.createRequestJSON E1101 Instance of 'RequestQuery' has no 'phedex' member
Line 186 in RequestQuery.createRequestJSON W0612 Unused variable 'release_id'
Line 206 in RequestQuery.createRequestJSON W0612 Unused variable 'group_squad'
Line 179 in RequestQuery.createRequestJSON W0612 Unused variable 'input_primary_dataset'
Line 278 in RequestQuery.writeJSONFile W0104 Statement seems to have no effect
Line 299 in RequestQuery.printReport W0621 Redefining name 'json' from outer scope (line 16)
Line 292 in RequestQuery.printReport R0201 Method could be a function
Line 174 in RequestQuery.createRequestJSON W0201 Attribute 'nodeMappings' defined outside init
Line 9 W0611 Unused import re
Line 9 W0611 Unused import traceback
plus 119 comments on code style

test/python/WMCore_t/WMBS_t/File_t.py got worse in pylint. Report follows:

Line 59 in FileTest.testCreateDeleteExists R0201 Method could be a function
Line 84 in FileTest.testCreateTransaction R0201 Method could be a function
Line 114 in FileTest.testDeleteTransaction R0201 Method could be a function
Line 150 in FileTest.testGetInfo R0201 Method could be a function
Line 211 in FileTest.testGetParentLFNs R0201 Method could be a function
Line 310 in FileTest.testLoadData R0201 Method could be a function
Line 352 in FileTest.testAddChild R0201 Method could be a function
Line 389 in FileTest.testAddChildTransaction R0201 Method could be a function
Line 445 in FileTest.testCreateWithLocation R0201 Method could be a function
Line 473 in FileTest.testSetLocation R0201 Method could be a function
Line 503 in FileTest.testSetLocationTransaction R0201 Method could be a function
Line 552 in FileTest.testLocationsConstructor R0201 Method could be a function
Line 622 in FileTest.testAddRunSet R0201 Method could be a function
Line 641 in FileTest.testGetAncestorLFNs R0201 Method could be a function
Line 759 in FileTest.testBulkParentage R0201 Method could be a function
Line 843 in FileTest.testDataStructsFile E1123 Unexpected keyword argument 'se' in method call
Line 843 in FileTest.testDataStructsFile E1120 No value for argument 'pnn' in method call
Line 826 in FileTest.testDataStructsFile W0612 Unused variable 'myThread'
Line 1130 in FileTest.testCreateWithParent R0201 Method could be a function
Line 1192 in FileTest.testAddToFileset W0622 Redefining built-in 'file'
Line 1239 in FileTest.testAddDupsToFileset W0622 Redefining built-in 'file'
Line 1294 in FileTest.testAddDupsToFilesetBulk W0622 Redefining built-in 'file'
Line 23 in FileTest R0904 Too many public methods (44/20)
plus 593 comments on code style

src/python/WMCore/Services/SiteDB/SiteDB.py fails the pylint check. Report follows:

Line 35 in SiteDBJSON.init W0102 Dangerous default value {} as argument
Line 40 in SiteDBJSON.getJSON W0622 Redefining built-in 'file'
Line 40 in SiteDBJSON.getJSON W0102 Dangerous default value {} as argument
Line 70 in SiteDBJSON.getJSON E0602 Undefined variable 'args'
Line 75 in SiteDBJSON._people W0622 Redefining built-in 'file'
Line 83 in SiteDBJSON._sitenames W0622 Redefining built-in 'file'
Line 86 in SiteDBJSON._sitenames W0141 Used builtin function 'filter'
Line 86 in SiteDBJSON._sitenames W0110 map/filter on lambda could be replaced by comprehension
Line 90 in SiteDBJSON._siteresources W0622 Redefining built-in 'file'
Line 89 in SiteDBJSON._siteresources W0613 Unused argument 'clearCache'
Line 94 in SiteDBJSON._dataProcessing W0622 Redefining built-in 'file'
Line 97 in SiteDBJSON._dataProcessing W0141 Used builtin function 'filter'
Line 97 in SiteDBJSON._dataProcessing W0110 map/filter on lambda could be replaced by comprehension
Line 106 in SiteDBJSON.dnUserName W0141 Used builtin function 'filter'
Line 106 in SiteDBJSON.dnUserName W0110 map/filter on lambda could be replaced by comprehension
Line 109 in SiteDBJSON.dnUserName W0141 Used builtin function 'filter'
Line 109 in SiteDBJSON.dnUserName W0110 map/filter on lambda could be replaced by comprehension
Line 119 in SiteDBJSON.userNameDn W0141 Used builtin function 'filter'
Line 119 in SiteDBJSON.userNameDn W0110 map/filter on lambda could be replaced by comprehension
Line 122 in SiteDBJSON.userNameDn W0141 Used builtin function 'filter'
Line 122 in SiteDBJSON.userNameDn W0110 map/filter on lambda could be replaced by comprehension
Line 147 in SiteDBJSON.getAllCENames W0141 Used builtin function 'filter'
Line 147 in SiteDBJSON.getAllCENames W0110 map/filter on lambda could be replaced by comprehension
Line 148 in SiteDBJSON.getAllCENames W0141 Used builtin function 'map'
Line 148 in SiteDBJSON.getAllCENames W0110 map/filter on lambda could be replaced by comprehension
Line 159 in SiteDBJSON.getAllSENames W0141 Used builtin function 'filter'
Line 159 in SiteDBJSON.getAllSENames W0110 map/filter on lambda could be replaced by comprehension
Line 160 in SiteDBJSON.getAllSENames W0141 Used builtin function 'map'
Line 160 in SiteDBJSON.getAllSENames W0110 map/filter on lambda could be replaced by comprehension
Line 171 in SiteDBJSON.getAllCMSNames W0141 Used builtin function 'filter'
Line 171 in SiteDBJSON.getAllCMSNames W0110 map/filter on lambda could be replaced by comprehension
Line 172 in SiteDBJSON.getAllCMSNames W0141 Used builtin function 'map'
Line 172 in SiteDBJSON.getAllCMSNames W0110 map/filter on lambda could be replaced by comprehension
Line 183 in SiteDBJSON.getAllPhEDExNodeNames W0141 Used builtin function 'filter'
Line 183 in SiteDBJSON.getAllPhEDExNodeNames W0110 map/filter on lambda could be replaced by comprehension
Line 184 in SiteDBJSON.getAllPhEDExNodeNames W0141 Used builtin function 'map'
Line 184 in SiteDBJSON.getAllPhEDExNodeNames W0110 map/filter on lambda could be replaced by comprehension
Line 186 in SiteDBJSON.getAllPhEDExNodeNames W0141 Used builtin function 'filter'
Line 186 in SiteDBJSON.getAllPhEDExNodeNames W0110 map/filter on lambda could be replaced by comprehension
Line 189 in SiteDBJSON.cmsNametoList W0622 Redefining built-in 'file'
Line 198 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'filter'
Line 198 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 200 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'map'
Line 200 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 201 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'filter'
Line 201 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 202 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'filter'
Line 202 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 203 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'map'
Line 203 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 189 in SiteDBJSON.cmsNametoList W0613 Unused argument 'file'
Line 213 in SiteDBJSON.ceToCMSName W0141 Used builtin function 'filter'
Line 213 in SiteDBJSON.ceToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 219 in SiteDBJSON.ceToCMSName W0141 Used builtin function 'filter'
Line 219 in SiteDBJSON.ceToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 228 in SiteDBJSON.seToCMSName W0141 Used builtin function 'filter'
Line 228 in SiteDBJSON.seToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 234 in SiteDBJSON.seToCMSName W0141 Used builtin function 'filter'
Line 234 in SiteDBJSON.seToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 244 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'filter'
Line 244 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 247 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'filter'
Line 247 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 248 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'map'
Line 248 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 259 in SiteDBJSON.PNNtoPSN W0141 Used builtin function 'filter'
Line 259 in SiteDBJSON.PNNtoPSN W0110 map/filter on lambda could be replaced by comprehension
Line 29 in SiteDBJSON R0904 Too many public methods (34/20)
Line 29 in SiteDBJSON R0921 Abstract class not referenced
plus 48 comments on code style

src/python/WMCore/Services/DBS/DBS3Reader.py got worse in pylint. Report follows:

Line 10 W0401 Wildcard import dbs.exceptions.dbsClientException
Line 32 in remapDBS3Keys W0622 Redefining built-in 'format'
Line 155 in DBS3Reader.listRuns W0106 Expression "[runs.extend(x['run_num']) for x in results]" is assigned to nothing
Line 582 in DBS3Reader.listFileBlockLocation E0602 Undefined variable 'fileBlockName'
Line 560 in DBS3Reader.listFileBlockLocation R0912 Too many branches (14/12)
Line 685 in DBS3Reader.getFiles W0106 Expression "[result.update(self.getFileBlock(x)) for x in blocks]" is assigned to nothing
Line 789 in DBS3Reader.checkDatasetPath R0201 Method could be a function
Line 796 in DBS3Reader.checkBlockName R0201 Method could be a function
Line 42 in DBS3Reader R0904 Too many public methods (28/20)
Line 13 W0611 Unused import emulatorHook
Line 16 W0611 Unused import cmsname
Line 10 W0614 Unused import exceptions from wildcard import
plus 104 comments on code style

src/python/WMCore/Storage/DeleteMgr.py got worse in pylint. Report follows:

Line 21 in DeleteMgr R0902 Too many instance attributes (9/7)
Line 139 in DeleteMgr.initialiseOverride W0612 Unused variable 'ex'
Line 232 in DeleteMgr.deleteLFN W0612 Unused variable 'seName'
Line 237 in DeleteMgr.deleteLFN W0612 Unused variable 'protocol'
Line 233 in DeleteMgr.deleteLFN W0612 Unused variable 'pnn'
Line 235 in DeleteMgr.deleteLFN W0612 Unused variable 'options'
Line 11 W0611 Unused import os
plus 21 comments on code style

Unit test changes for pull request 5989:

WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:test4GMerge changed from error to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testMergeSuccess changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testMergeSuccessNoLumi changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testMergeSuccessSkippedFiles changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testMergedSkim changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testParentlessMergeSuccess changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testSplitJobs changed from success to failure
WMComponent_t.JobCreator_t.JobCreator_t.JobCreatorTest:testA_VerySimpleTest changed from success to error
WMComponent_t.JobCreator_t.JobCreator_t.JobCreatorTest:testE_TestNonProxySplitting changed from success to error
WMComponent_t.JobSubmitter_t.JobSubmitterCaching_t.JobSubmitterCachingTest:testCaching changed from success to error
WMComponent_t.JobSubmitter_t.JobSubmitter_t.JobSubmitterTest:testA_BasicTest changed from success to error
WMComponent_t.JobSubmitter_t.JobSubmitter_t.JobSubmitterTest:testB_thresholdTest changed from success to error
WMComponent_t.JobSubmitter_t.JobSubmitter_t.JobSubmitterTest:testC_prioritization changed from success to error
WMComponent_t.JobSubmitter_t.JobSubmitter_t.JobSubmitterTest:testD_WhiteListBlackList changed from failure to error
WMComponent_t.JobSubmitter_t.JobSubmitter_t.JobSubmitterTest:testE_SiteModesTest changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testDuplicateJobReports changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testFWJRInputFileTruncation changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testIndexConflict changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testJobKilling changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testJobSerialization changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testJobSummary changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testPersist changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testRecordInCouch changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testRetryCount changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testUpdateFailedDoc changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testUpdateLocation changed from success to error
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testInsertAllSEs changed from success to failure
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testInsertAllSEs2 changed from success to failure
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testInsertT0 changed from success to error
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testListSiteInfo changed from success to error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListBlockParents changed from success to error
WMCore_t.Services_t.SiteDB_t.SiteDB_t.SiteDBTest:testPhEDExNodetocmsName was deleted. Prior status was success
WMCore_t.WMBS_t.File_t.FileTest:testCreateWithLocation changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testDataStructsFile changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testGetBulkLocations changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testGetInfo changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testLoadData changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testLocationsConstructor changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testSetLocation changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testSetLocationByLFN changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testSetLocationOrder changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testSetLocationTransaction changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:test_SetLocationsForWorkQueue changed from success to failure
WMCore_t.WMBS_t.Fileset_t.FilesetTest:testAddBulkByLFN changed from success to failure
WMCore_t.WMBS_t.Fileset_t.FilesetTest:testAddToWMBSInBulk changed from success to failure
WMCore_t.WMBS_t.Fileset_t.FilesetTest:testBulkAddDAO changed from success to failure
WMCore_t.WMBS_t.Fileset_t.FilesetTest:testFileCreate changed from success to failure
WMCore_t.WMBS_t.JobGroup_t.JobGroupTest:testGetLocationsForJobs changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventAwareLumiBased_t.EventAwareLumiBasedTest:testA_FileSplitNoHardLimit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventAwareLumiBased_t.EventAwareLumiBasedTest:testC_HardLimitSplitting changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventAwareLumiBased_t.EventAwareLumiBasedTest:testD_HardLimitSplittingOnly changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test100EventMultipleFileSplit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test100EventMultipleSite changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test150EventMultipleFileSplit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test50EventMultipleFileSplit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test50EventSplit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test99EventSplit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:testExactEvents changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:testMCEventSplitOver32bit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:testMoreEvents changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test_addParents changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.FixedDelay_t.FixedDelayTest:testClosed changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.FixedDelay_t.FixedDelayTest:testClosedSomeAcquired changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.LumiBased_t.LumiBasedTest:testA_FileSplitting changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.LumiBased_t.LumiBasedTest:testB_NoRunNoFileSplitting changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.LumiBased_t.LumiBasedTest:testE_getParents changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.LumiBased_t.LumiBasedTest:testF_RunWhitelist changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.MinFileBased_t.FileBasedTest:testA_ExactFiles changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.MinFileBased_t.FileBasedTest:testB_LessFilesOpen changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.MinFileBased_t.FileBasedTest:testC_LessFilesClosed changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.MinFileBased_t.FileBasedTest:testD_MoreFilesOpen changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.MinFileBased_t.FileBasedTest:testE_MoreFilesClosed changed from success to error
WMCore_t.WMBS_t.JobSplitting_t.ParentlessMergeBySize_t.ParentlessMergeBySizeTest:testLocationMerging changed from success to failure
WMCore_t.WMBS_t.Locations_t.LocationsTest:testGetSiteInfo changed from success to error
WMCore_t.WMSpec_t.Steps_t.Executors_t.LogArch_t.LogArchiveTest:testExecutorDoesntDetonate changed from success to error
WMCore_t.WMSpec_t.Steps_t.Executors_t.LogArch_t.LogArchiveTest:testUnitTestBackend changed from success to error
WMCore_t.WMSpec_t.Steps_t.Executors_t.LogArch_t.LogArchiveTest:testUnitTestBackendNew changed from success to error
WMCore_t.WMSpec_t.Steps_t.Executors_t.StageOut_t.StageOutTest:testExecutorDoesntDetonate changed from success to error
WMCore_t.WMSpec_t.Steps_t.Executors_t.StageOut_t.StageOutTest:testUnitTestBackend changed from success to error
WMCore_t.WMSpec_t.Steps_t.Executors_t.StageOut_t.StageOutTest:testUnitTestBackendNew changed from success to error
WMCore_t.WorkQueue_t.Policy_t.Start_t.Dataset_t.DatasetTestCase:testDataDirectiveFromQueue changed from error to success
WMCore_t.WorkQueue_t.Policy_t.Start_t.Dataset_t.DatasetTestCase:testMultiTaskProcessingWorkload changed from error to failure
WMCore_t.WorkQueue_t.Policy_t.Start_t.Dataset_t.DatasetTestCase:testTier1ReRecoWorkload changed from error to failure
WMCore_t.WorkQueue_t.Policy_t.Start_t.Dataset_t.DatasetTestCase:testWhiteBlackLists changed from error to failure

Beginning pylint and unit tests.
See https://cmssdt.cern.ch/jenkins/job/DMWM-PR-test/445/ for details

Summary of pylint changes for pull request 5989:

Score for src/python/WMCore/Storage/StageOutMgr.py decreased from 9.55 to 9.53
Warnings for src/python/WMCore/Storage/StageOutMgr.py increased from 5 to 6
Score for src/python/WMCore/WorkQueue/Policy/Start/StartPolicyInterface.py decreased from 9.93 to 9.86
Warnings for src/python/WMCore/WorkQueue/Policy/Start/StartPolicyInterface.py increased from 1 to 2
Score for test/python/WMCore_t/Services_t/SiteDB_t/SiteDB_t.py decreased from 9.84 to 9.82
Score for src/python/WMCore/Storage/StageInMgr.py decreased from 9.88 to 9.83
Warnings for src/python/WMCore/Storage/StageInMgr.py increased from 2 to 3
Score for src/python/WMCore/WorkQueue/Policy/Start/Dataset.py decreased from 9.81 to 9.72
Warnings for src/python/WMCore/WorkQueue/Policy/Start/Dataset.py increased from 2 to 3
Warnings for src/python/WMCore/Storage/FileManager.py increased from 15 to 16
Score for src/python/WMQuality/Emulators/SiteDBClient/SiteDB.py decreased from 4.59 to 4.42
Score for test/data/ReqMgr/RequestQuery.py decreased from 9.45 to 9.14
Errors for test/data/ReqMgr/RequestQuery.py increased from 0 to 1
Score for test/python/WMCore_t/WMBS_t/File_t.py decreased from 9.94 to 9.80
Errors for test/python/WMCore_t/WMBS_t/File_t.py increased from 0 to 2
Score for src/python/WMCore/Services/DBS/DBS3Reader.py decreased from 9.76 to 9.61
Errors for src/python/WMCore/Services/DBS/DBS3Reader.py increased from 0 to 1
Warnings for src/python/WMCore/Services/DBS/DBS3Reader.py increased from 6 to 7
Score for src/python/WMCore/Storage/DeleteMgr.py decreased from 9.71 to 9.68
Warnings for src/python/WMCore/Storage/DeleteMgr.py increased from 5 to 6

src/python/WMCore/Storage/StageOutMgr.py got worse in pylint. Report follows:

Line 23 in StageOutMgr R0902 Too many instance attributes (10/7)
Line 211 in StageOutMgr.call W0703 Catching too general exception Exception
Line 236 in StageOutMgr.call W0703 Catching too general exception Exception
Line 240 in StageOutMgr.call E0702 Raising NoneType while only classes, instances or string are allowed
Line 288 in StageOutMgr.localStageOut W0612 Unused variable 'seName'
Line 289 in StageOutMgr.localStageOut W0612 Unused variable 'pnn'
Line 20 W0611 Unused import WMCore
Line 11 W0611 Unused import os
plus 26 comments on code style

src/python/WMCore/WorkQueue/Policy/Start/StartPolicyInterface.py got worse in pylint. Report follows:

Line 17 in StartPolicyInterface R0902 Too many instance attributes (12/7)
Line 41 in StartPolicyInterface.validateCommon R0912 Too many branches (14/12)
Line 132 in StartPolicyInterface.call W0201 Attribute 'mask' defined outside init
Line 10 W0611 Unused import sitesFromStorageEelements
Line 17 in StartPolicyInterface R0921 Abstract class not referenced
plus 7 comments on code style

test/python/WMCore_t/Services_t/SiteDB_t/SiteDB_t.py got worse in pylint. Report follows:

Line 13 in SiteDBTest R0904 Too many public methods (24/20)
Line 11 W0611 Unused import attr
plus 3 comments on code style

src/python/WMCore/Storage/StageInMgr.py got worse in pylint. Report follows:

Line 143 in StageInMgr.initialiseOverride W0612 Unused variable 'ex'
Line 232 in StageInMgr.localStageIn W0612 Unused variable 'seName'
Line 233 in StageInMgr.localStageIn W0612 Unused variable 'pnn'
plus 18 comments on code style

src/python/WMCore/Services/DBS/DBSWriter.py fails the pylint check. Report follows:

Line 12 W0622 Redefining built-in 'Exception'
Line 12 W0401 Wildcard import DBSAPI.dbsException
Line 13 W0401 Wildcard import DBSAPI.dbsStorageElement
Line 14 W0401 Wildcard import DBSAPI.dbsApiException
Line 50 in _CreateDatasetOperator.call E1101 Instance of '_CreateDatasetOperator' has no 'getOutputDatasetsWithPSet' member
Line 56 in _CreateDatasetOperator.call W0703 Catching too general exception Exception
Line 56 in _CreateDatasetOperator.call W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 68 in _CreateDatasetOperator.call W0612 Unused variable 'processed'
Line 36 in _CreateDatasetOperator R0903 Too few public methods (0/2)
Line 87 in _CreateMergeDatasetOperator.call W0212 Access to a protected member _OutputDatasets of a client class
Line 110 in _CreateMergeDatasetOperator.call W1201 Specify string format arguments as logging function parameters
Line 111 in _CreateMergeDatasetOperator.call W1201 Specify string format arguments as logging function parameters
Line 112 in _CreateMergeDatasetOperator.call W1201 Specify string format arguments as logging function parameters
Line 73 in _CreateMergeDatasetOperator R0903 Too few public methods (0/2)
Line 130 in _remapBlockParentage.dropNode W1201 Specify string format arguments as logging function parameters
Line 131 in _remapBlockParentage.dropNode W1201 Specify string format arguments as logging function parameters
Line 212 in DBSWriter.init W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 230 in DBSWriter.createDatasets W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 366 in DBSWriter.insertFilesForDBSBuffer W0622 Redefining built-in 'file'
Line 237 in DBSWriter.insertFilesForDBSBuffer R0913 Too many arguments (10/7)
Line 237 in DBSWriter.insertFilesForDBSBuffer R0914 Too many local variables (35/30)
Line 285 in DBSWriter.insertFilesForDBSBuffer W1201 Specify string format arguments as logging function parameters
Line 330 in DBSWriter.insertFilesForDBSBuffer W1201 Specify string format arguments as logging function parameters
Line 356 in DBSWriter.insertFilesForDBSBuffer W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 395 in DBSWriter.insertFilesForDBSBuffer W1201 Specify string format arguments as logging function parameters
Line 410 in DBSWriter.insertFilesForDBSBuffer W1201 Specify string format arguments as logging function parameters
Line 346 in DBSWriter.insertFilesForDBSBuffer W0612 Unused variable 'blockList'
Line 238 in DBSWriter.insertFilesForDBSBuffer W0613 Unused argument 'jobType'
Line 344 in DBSWriter.insertFilesForDBSBuffer W0612 Unused variable 'sumFiles'
Line 345 in DBSWriter.insertFilesForDBSBuffer W0612 Unused variable 'tmpFiles'
Line 343 in DBSWriter.insertFilesForDBSBuffer W0612 Unused variable 'sumSize'
Line 238 in DBSWriter.insertFilesForDBSBuffer W0613 Unused argument 'insertDetectorData'
Line 237 in DBSWriter.insertFilesForDBSBuffer R0912 Too many branches (22/12)
Line 624 in DBSWriter.insertFiles W0622 Redefining built-in 'hash'
Line 570 in DBSWriter.insertFiles W1201 Specify string format arguments as logging function parameters
Line 594 in DBSWriter.insertFiles W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 664 in DBSWriter.insertFiles W1201 Specify string format arguments as logging function parameters
Line 685 in DBSWriter.insertFiles W1201 Specify string format arguments as logging function parameters
Line 534 in DBSWriter.insertFiles R0912 Too many branches (19/12)
Line 691 in DBSWriter.manageFileBlock W0102 Dangerous default value [] as argument
Line 691 in DBSWriter.manageFileBlock W0102 Dangerous default value [] as argument
Line 691 in DBSWriter.manageFileBlock R0913 Too many arguments (8/7)
Line 734 in DBSWriter.manageFileBlock W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 751 in DBSWriter.manageFileBlock W1201 Specify string format arguments as logging function parameters
Line 753 in DBSWriter.manageFileBlock W1201 Specify string format arguments as logging function parameters
Line 824 in DBSWriter.manageFileBlock W1201 Specify string format arguments as logging function parameters
Line 826 in DBSWriter.manageFileBlock W1201 Specify string format arguments as logging function parameters
Line 819 in DBSWriter.manageFileBlock W0612 Unused variable 'algo'
Line 691 in DBSWriter.manageFileBlock R0912 Too many branches (18/12)
Line 883 in DBSWriter.migrateDatasetBlocks E1101 Instance of 'DbsApi' has no 'listDatasetContents' member
Line 884 in DBSWriter.migrateDatasetBlocks W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 953 in DBSWriter.importDatasetWithExistingParents E1101 Instance of 'DbsApi' has no 'listDatasetContents' member
Line 956 in DBSWriter.importDatasetWithExistingParents W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 908 in DBSWriter.importDatasetWithExistingParents W0613 Unused argument 'targetDBS'
Line 1035 in DBSWriter.importDataset W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 1100 in DBSWriter.importDatasetWithoutParentage W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 1120 in DBSWriter.getOutputDatasetsWithPSet E0213 Method should have "self" as first argument
Line 1133 in DBSWriter.getOutputDatasetsWithPSet E1101 Instance of 'DBSWriter' has no '_OutputDatasets' member
Line 1136 in DBSWriter.getOutputDatasetsWithPSet E1101 Instance of 'DBSWriter' has no 'application' member
Line 1137 in DBSWriter.getOutputDatasetsWithPSet E1101 Instance of 'DBSWriter' has no 'application' member
Line 1138 in DBSWriter.getOutputDatasetsWithPSet E1101 Instance of 'DBSWriter' has no 'application' member
Line 1145 in DBSWriter.getOutputDatasetsWithPSet W0703 Catching too general exception Exception
Line 1142 in DBSWriter.getOutputDatasetsWithPSet E1101 Instance of 'DBSWriter' has no 'cfgInterface' member
Line 1145 in DBSWriter.getOutputDatasetsWithPSet W0623 Redefining name 'ex' from outer scope (line 12) in exception handler
Line 1150 in DBSWriter.getOutputDatasetsWithPSet E0602 Undefined variable '_sortDatasets'
Line 1145 in DBSWriter.getOutputDatasetsWithPSet W0612 Unused variable 'ex'
Line 1189 in DatasetInfo.str E1101 Instance of 'DatasetInfo' has no 'save' member
Line 13 W0614 Unused import isListType from wildcard import
Line 34 W0611 Unused import base64
Line 12 W0614 Unused import InvalidArgument from wildcard import
Line 13 W0614 Unused import isStringType from wildcard import
Line 14 W0614 Unused import DbsDatabaseError from wildcard import
Line 12 W0614 Unused import ex from wildcard import
Line 12 W0614 Unused import MethodNotImplemented from wildcard import
Line 13 W0614 Unused import isLongType from wildcard import
Line 12 W0614 Unused import DataNotInitialized from wildcard import
Line 13 W0614 Unused import isDictType from wildcard import
Line 14 W0614 Unused import DbsBadRequest from wildcard import
Line 14 W0614 Unused import DbsExecutionError from wildcard import
Line 14 W0614 Unused import DbsConnectionError from wildcard import
Line 14 W0614 Unused import DbsNoObject from wildcard import
Line 13 W0614 Unused import DbsStorageElement from wildcard import
Line 13 W0614 Unused import verifyDatasetPathName from wildcard import
Line 27 W0611 Unused import DbsFileBlock
Line 14 W0614 Unused import DbsToolError from wildcard import
Line 14 W0614 Unused import InvalidDatasetPathName from wildcard import
Line 13 W0614 Unused import ValidationTable from wildcard import
Line 14 W0614 Unused import DbsConfigurationError from wildcard import
Line 14 W0614 Unused import DbsObjectExists from wildcard import
Line 14 W0614 Unused import DbsBadData from wildcard import
Line 14 W0614 Unused import DbsProxyNotFound from wildcard import
Line 13 W0614 Unused import string from wildcard import
Line 13 W0614 Unused import isIntType from wildcard import
Line 13 W0614 Unused import dbsException from wildcard import
Line 14 W0614 Unused import DbsApiException from wildcard import
Line 13 W0614 Unused import re from wildcard import
Line 13 W0614 Unused import isFloatType from wildcard import
Line 13 W0614 Unused import types from wildcard import
Line 13 W0614 Unused import ALLOWED_DATASET_REGEX_ from wildcard import
Line 14 W0614 Unused import DbsBadXMLData from wildcard import
Line 14 W0614 Unused import DbsBadResponse from wildcard import
Line 26 W0611 Unused import get_path
Line 13 W0614 Unused import ALLOWED_NAME_CHARS_ from wildcard import
Line 14 W0614 Unused import InvalidDataTier from wildcard import
Line 13 W0614 Unused import DbsBase from wildcard import
plus 168 comments on code style

src/python/WMCore/WMRuntime/Scripts/SetupCMSSWPset.py fails the pylint check. Report follows:

Line 628 W0311 Bad indentation. Found 16 spaces, expected 12
Line 184 in SetupCMSSWPset.createProcess E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 191 in SetupCMSSWPset.createProcess W0703 Catching too general exception Exception
Line 199 in SetupCMSSWPset.createProcess W0703 Catching too general exception Exception
Line 208 in SetupCMSSWPset.createProcess W0703 Catching too general exception Exception
Line 226 in SetupCMSSWPset.loadPSet W0212 Access to a protected member _internal_name of a client class
Line 226 in SetupCMSSWPset.loadPSet E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 291 in SetupCMSSWPset.handleSeeding E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 297 in SetupCMSSWPset.handleSeeding W0212 Access to a protected member _internal_name of a client class
Line 316 in SetupCMSSWPset.handlePerformanceSettings E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 339 in SetupCMSSWPset.handleChainedProcessing E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 340 in SetupCMSSWPset.handleChainedProcessing E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 359 in SetupCMSSWPset.handleChainedProcessing E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 417 in SetupCMSSWPset._processPileupMixingModules E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 435 in SetupCMSSWPset._processPileupMixingModules E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 439 in SetupCMSSWPset._processPileupMixingModules E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 516 in SetupCMSSWPset.handleDQMFileSaver E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 520 in SetupCMSSWPset.handleDQMFileSaver E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 521 in SetupCMSSWPset.handleDQMFileSaver E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 545 in SetupCMSSWPset.handleRepackSettings E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 546 in SetupCMSSWPset.handleRepackSettings E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 587 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 589 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 590 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 591 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 618 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 619 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 630 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 632 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'applyPSetTweak' member
Line 635 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 641 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 642 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 646 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 651 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 655 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 658 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'job' member
Line 662 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 678 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 680 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 683 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 685 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 688 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 689 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 691 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 693 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 694 in SetupCMSSWPset.call E1101 Instance of 'SetupCMSSWPset' has no 'step' member
Line 577 in SetupCMSSWPset.call R0912 Too many branches (23/12)
Line 190 in SetupCMSSWPset.createProcess W0201 Attribute 'process' defined outside init
Line 198 in SetupCMSSWPset.createProcess W0201 Attribute 'process' defined outside init
Line 207 in SetupCMSSWPset.createProcess W0201 Attribute 'process' defined outside init
Line 230 in SetupCMSSWPset.loadPSet W0201 Attribute 'process' defined outside init
Line 584 in SetupCMSSWPset.call W0201 Attribute 'process' defined outside init
Line 10 W0611 Unused import types
Line 19 W0611 Unused import makeTweak
Line 18 W0611 Unused import WMStep
Line 157 in SetupCMSSWPset R0923 Interface not implemented
plus 18 comments on code style

src/python/WMCore/WorkQueue/Policy/Start/Dataset.py got worse in pylint. Report follows:

Line 16 in Dataset W0223 Method 'modifyPolicyForWorkAddition' is abstract in class 'StartPolicyInterface' but is not overridden
Line 16 in Dataset W0223 Method 'newDataAvailable' is abstract in class 'StartPolicyInterface' but is not overridden
Line 82 in Dataset.validBlocks R0912 Too many branches (19/12)
Line 13 W0611 Unused import sitesFromStorageEelements
Line 16 in Dataset R0923 Interface not implemented
plus 17 comments on code style

src/python/WMCore/Storage/FileManager.py got worse in pylint. Report follows:

Line 344 W0511 FIXME add checksum stuff
Line 27 in FileManager R0902 Too many instance attributes (12/7)
Line 131 in FileManager.stageFile E0702 Raising NoneType while only classes, instances or string are allowed
Line 164 in FileManager.deleteLFN W1201 Specify string format arguments as logging function parameters
Line 184 in FileManager.deleteLFN W0703 Catching too general exception Exception
Line 197 in FileManager.deleteLFN E0702 Raising NoneType while only classes, instances or string are allowed
Line 335 in FileManager._doTransfer W1201 Specify string format arguments as logging function parameters
Line 359 in FileManager._doTransfer W0703 Catching too general exception Exception
Line 318 in FileManager._doTransfer W0612 Unused variable 'pnn'
Line 387 in FileManager.cleanSuccessfulStageOuts E1101 Instance of 'FileManager' has no 'info' member
Line 92 in FileManager.stageFile W0201 Attribute 'firstException' defined outside init
Line 178 in FileManager.deleteLFN W0201 Attribute 'firstException' defined outside init
Line 189 in FileManager.deleteLFN W0201 Attribute 'firstException' defined outside init
Line 353 in FileManager._doTransfer W0201 Attribute 'firstException' defined outside init
Line 366 in FileManager._doTransfer W0201 Attribute 'firstException' defined outside init
Line 449 in DeleteMgr E0102 class already defined line 19
Line 14 W0611 Unused import WMException
Line 19 W0611 Unused import DeleteMgr
Line 23 W0611 Unused import WMCore
Line 18 W0611 Unused import StageOutInitError
Line 10 W0611 Unused import os
plus 91 comments on code style

src/python/WMQuality/Emulators/SiteDBClient/SiteDB.py fails the pylint check. Report follows:

Line 70 in SiteDBJSON.init W0102 Dangerous default value {} as argument
Line 75 in SiteDBJSON._people W0141 Used builtin function 'filter'
Line 75 in SiteDBJSON._people W0110 map/filter on lambda could be replaced by comprehension
Line 73 in SiteDBJSON._people W0613 Unused argument 'clearCache'
Line 81 in SiteDBJSON._sitenames W0141 Used builtin function 'filter'
Line 81 in SiteDBJSON._sitenames W0110 map/filter on lambda could be replaced by comprehension
Line 79 in SiteDBJSON._sitenames W0613 Unused argument 'clearCache'
Line 85 in SiteDBJSON._siteresources W0613 Unused argument 'clearCache'
Line 88 in SiteDBJSON._dataProcessing W0613 Unused argument 'clearCache'
Line 97 in SiteDBJSON.dnUserName W0141 Used builtin function 'filter'
Line 97 in SiteDBJSON.dnUserName W0110 map/filter on lambda could be replaced by comprehension
Line 100 in SiteDBJSON.dnUserName W0141 Used builtin function 'filter'
Line 100 in SiteDBJSON.dnUserName W0110 map/filter on lambda could be replaced by comprehension
Line 125 in SiteDBJSON.getAllCENames W0141 Used builtin function 'filter'
Line 125 in SiteDBJSON.getAllCENames W0110 map/filter on lambda could be replaced by comprehension
Line 126 in SiteDBJSON.getAllCENames W0141 Used builtin function 'map'
Line 126 in SiteDBJSON.getAllCENames W0110 map/filter on lambda could be replaced by comprehension
Line 137 in SiteDBJSON.getAllSENames W0141 Used builtin function 'filter'
Line 137 in SiteDBJSON.getAllSENames W0110 map/filter on lambda could be replaced by comprehension
Line 138 in SiteDBJSON.getAllSENames W0141 Used builtin function 'map'
Line 138 in SiteDBJSON.getAllSENames W0110 map/filter on lambda could be replaced by comprehension
Line 149 in SiteDBJSON.getAllCMSNames W0141 Used builtin function 'filter'
Line 149 in SiteDBJSON.getAllCMSNames W0110 map/filter on lambda could be replaced by comprehension
Line 150 in SiteDBJSON.getAllCMSNames W0141 Used builtin function 'map'
Line 150 in SiteDBJSON.getAllCMSNames W0110 map/filter on lambda could be replaced by comprehension
Line 153 in SiteDBJSON.cmsNametoList W0622 Redefining built-in 'file'
Line 162 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'filter'
Line 162 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 164 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'map'
Line 164 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 165 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'filter'
Line 165 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 166 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'filter'
Line 166 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 167 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'map'
Line 167 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 153 in SiteDBJSON.cmsNametoList W0613 Unused argument 'file'
Line 177 in SiteDBJSON.ceToCMSName W0141 Used builtin function 'filter'
Line 177 in SiteDBJSON.ceToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 183 in SiteDBJSON.ceToCMSName W0141 Used builtin function 'filter'
Line 183 in SiteDBJSON.ceToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 191 in SiteDBJSON.seToCMSName W0141 Used builtin function 'filter'
Line 191 in SiteDBJSON.seToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 197 in SiteDBJSON.seToCMSName W0141 Used builtin function 'filter'
Line 197 in SiteDBJSON.seToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 206 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'filter'
Line 206 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 209 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'filter'
Line 209 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 210 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'map'
Line 210 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 220 in SiteDBJSON.PNNtoPSN W0141 Used builtin function 'filter'
Line 220 in SiteDBJSON.PNNtoPSN W0110 map/filter on lambda could be replaced by comprehension
Line 9 in SiteDBJSON R0921 Abstract class not referenced
plus 62 comments on code style

test/data/ReqMgr/RequestQuery.py got worse in pylint. Report follows:

Line 17 W0702 No exception type(s) specified
Line 39 in RequestQuery.getScramArchByCMSSW R0201 Method could be a function
Line 75 in RequestQuery.getDatasetOriginSites W0612 Unused variable 'sites'
Line 134 in RequestQuery.getLabelByValueDict R0201 Method could be a function
Line 146 in RequestQuery.getValueByLabelDict R0201 Method could be a function
Line 174 in RequestQuery.createRequestJSON E1101 Instance of 'RequestQuery' has no 'phedex' member
Line 186 in RequestQuery.createRequestJSON W0612 Unused variable 'release_id'
Line 206 in RequestQuery.createRequestJSON W0612 Unused variable 'group_squad'
Line 179 in RequestQuery.createRequestJSON W0612 Unused variable 'input_primary_dataset'
Line 278 in RequestQuery.writeJSONFile W0104 Statement seems to have no effect
Line 299 in RequestQuery.printReport W0621 Redefining name 'json' from outer scope (line 16)
Line 292 in RequestQuery.printReport R0201 Method could be a function
Line 174 in RequestQuery.createRequestJSON W0201 Attribute 'nodeMappings' defined outside init
Line 9 W0611 Unused import re
Line 9 W0611 Unused import traceback
plus 119 comments on code style

test/python/WMCore_t/WMBS_t/File_t.py got worse in pylint. Report follows:

Line 59 in FileTest.testCreateDeleteExists R0201 Method could be a function
Line 84 in FileTest.testCreateTransaction R0201 Method could be a function
Line 114 in FileTest.testDeleteTransaction R0201 Method could be a function
Line 150 in FileTest.testGetInfo R0201 Method could be a function
Line 211 in FileTest.testGetParentLFNs R0201 Method could be a function
Line 310 in FileTest.testLoadData R0201 Method could be a function
Line 352 in FileTest.testAddChild R0201 Method could be a function
Line 389 in FileTest.testAddChildTransaction R0201 Method could be a function
Line 445 in FileTest.testCreateWithLocation R0201 Method could be a function
Line 473 in FileTest.testSetLocation R0201 Method could be a function
Line 503 in FileTest.testSetLocationTransaction R0201 Method could be a function
Line 552 in FileTest.testLocationsConstructor R0201 Method could be a function
Line 622 in FileTest.testAddRunSet R0201 Method could be a function
Line 641 in FileTest.testGetAncestorLFNs R0201 Method could be a function
Line 759 in FileTest.testBulkParentage R0201 Method could be a function
Line 843 in FileTest.testDataStructsFile E1123 Unexpected keyword argument 'se' in method call
Line 843 in FileTest.testDataStructsFile E1120 No value for argument 'pnn' in method call
Line 826 in FileTest.testDataStructsFile W0612 Unused variable 'myThread'
Line 1130 in FileTest.testCreateWithParent R0201 Method could be a function
Line 1192 in FileTest.testAddToFileset W0622 Redefining built-in 'file'
Line 1239 in FileTest.testAddDupsToFileset W0622 Redefining built-in 'file'
Line 1294 in FileTest.testAddDupsToFilesetBulk W0622 Redefining built-in 'file'
Line 23 in FileTest R0904 Too many public methods (44/20)
plus 593 comments on code style

src/python/WMCore/Services/SiteDB/SiteDB.py fails the pylint check. Report follows:

Line 35 in SiteDBJSON.init W0102 Dangerous default value {} as argument
Line 40 in SiteDBJSON.getJSON W0622 Redefining built-in 'file'
Line 40 in SiteDBJSON.getJSON W0102 Dangerous default value {} as argument
Line 70 in SiteDBJSON.getJSON E0602 Undefined variable 'args'
Line 75 in SiteDBJSON._people W0622 Redefining built-in 'file'
Line 83 in SiteDBJSON._sitenames W0622 Redefining built-in 'file'
Line 86 in SiteDBJSON._sitenames W0141 Used builtin function 'filter'
Line 86 in SiteDBJSON._sitenames W0110 map/filter on lambda could be replaced by comprehension
Line 90 in SiteDBJSON._siteresources W0622 Redefining built-in 'file'
Line 89 in SiteDBJSON._siteresources W0613 Unused argument 'clearCache'
Line 94 in SiteDBJSON._dataProcessing W0622 Redefining built-in 'file'
Line 97 in SiteDBJSON._dataProcessing W0141 Used builtin function 'filter'
Line 97 in SiteDBJSON._dataProcessing W0110 map/filter on lambda could be replaced by comprehension
Line 106 in SiteDBJSON.dnUserName W0141 Used builtin function 'filter'
Line 106 in SiteDBJSON.dnUserName W0110 map/filter on lambda could be replaced by comprehension
Line 109 in SiteDBJSON.dnUserName W0141 Used builtin function 'filter'
Line 109 in SiteDBJSON.dnUserName W0110 map/filter on lambda could be replaced by comprehension
Line 119 in SiteDBJSON.userNameDn W0141 Used builtin function 'filter'
Line 119 in SiteDBJSON.userNameDn W0110 map/filter on lambda could be replaced by comprehension
Line 122 in SiteDBJSON.userNameDn W0141 Used builtin function 'filter'
Line 122 in SiteDBJSON.userNameDn W0110 map/filter on lambda could be replaced by comprehension
Line 147 in SiteDBJSON.getAllCENames W0141 Used builtin function 'filter'
Line 147 in SiteDBJSON.getAllCENames W0110 map/filter on lambda could be replaced by comprehension
Line 148 in SiteDBJSON.getAllCENames W0141 Used builtin function 'map'
Line 148 in SiteDBJSON.getAllCENames W0110 map/filter on lambda could be replaced by comprehension
Line 159 in SiteDBJSON.getAllSENames W0141 Used builtin function 'filter'
Line 159 in SiteDBJSON.getAllSENames W0110 map/filter on lambda could be replaced by comprehension
Line 160 in SiteDBJSON.getAllSENames W0141 Used builtin function 'map'
Line 160 in SiteDBJSON.getAllSENames W0110 map/filter on lambda could be replaced by comprehension
Line 171 in SiteDBJSON.getAllCMSNames W0141 Used builtin function 'filter'
Line 171 in SiteDBJSON.getAllCMSNames W0110 map/filter on lambda could be replaced by comprehension
Line 172 in SiteDBJSON.getAllCMSNames W0141 Used builtin function 'map'
Line 172 in SiteDBJSON.getAllCMSNames W0110 map/filter on lambda could be replaced by comprehension
Line 183 in SiteDBJSON.getAllPhEDExNodeNames W0141 Used builtin function 'filter'
Line 183 in SiteDBJSON.getAllPhEDExNodeNames W0110 map/filter on lambda could be replaced by comprehension
Line 184 in SiteDBJSON.getAllPhEDExNodeNames W0141 Used builtin function 'map'
Line 184 in SiteDBJSON.getAllPhEDExNodeNames W0110 map/filter on lambda could be replaced by comprehension
Line 186 in SiteDBJSON.getAllPhEDExNodeNames W0141 Used builtin function 'filter'
Line 186 in SiteDBJSON.getAllPhEDExNodeNames W0110 map/filter on lambda could be replaced by comprehension
Line 189 in SiteDBJSON.cmsNametoList W0622 Redefining built-in 'file'
Line 198 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'filter'
Line 198 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 200 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'map'
Line 200 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 201 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'filter'
Line 201 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 202 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'filter'
Line 202 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 203 in SiteDBJSON.cmsNametoList W0141 Used builtin function 'map'
Line 203 in SiteDBJSON.cmsNametoList W0110 map/filter on lambda could be replaced by comprehension
Line 189 in SiteDBJSON.cmsNametoList W0613 Unused argument 'file'
Line 213 in SiteDBJSON.ceToCMSName W0141 Used builtin function 'filter'
Line 213 in SiteDBJSON.ceToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 219 in SiteDBJSON.ceToCMSName W0141 Used builtin function 'filter'
Line 219 in SiteDBJSON.ceToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 228 in SiteDBJSON.seToCMSName W0141 Used builtin function 'filter'
Line 228 in SiteDBJSON.seToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 234 in SiteDBJSON.seToCMSName W0141 Used builtin function 'filter'
Line 234 in SiteDBJSON.seToCMSName W0110 map/filter on lambda could be replaced by comprehension
Line 244 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'filter'
Line 244 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 247 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'filter'
Line 247 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 248 in SiteDBJSON.cmsNametoPhEDExNode W0141 Used builtin function 'map'
Line 248 in SiteDBJSON.cmsNametoPhEDExNode W0110 map/filter on lambda could be replaced by comprehension
Line 259 in SiteDBJSON.PNNtoPSN W0141 Used builtin function 'filter'
Line 259 in SiteDBJSON.PNNtoPSN W0110 map/filter on lambda could be replaced by comprehension
Line 29 in SiteDBJSON R0904 Too many public methods (34/20)
Line 29 in SiteDBJSON R0921 Abstract class not referenced
plus 48 comments on code style

src/python/WMCore/Services/DBS/DBS3Reader.py got worse in pylint. Report follows:

Line 10 W0401 Wildcard import dbs.exceptions.dbsClientException
Line 32 in remapDBS3Keys W0622 Redefining built-in 'format'
Line 155 in DBS3Reader.listRuns W0106 Expression "[runs.extend(x['run_num']) for x in results]" is assigned to nothing
Line 582 in DBS3Reader.listFileBlockLocation E0602 Undefined variable 'fileBlockName'
Line 560 in DBS3Reader.listFileBlockLocation R0912 Too many branches (14/12)
Line 685 in DBS3Reader.getFiles W0106 Expression "[result.update(self.getFileBlock(x)) for x in blocks]" is assigned to nothing
Line 789 in DBS3Reader.checkDatasetPath R0201 Method could be a function
Line 796 in DBS3Reader.checkBlockName R0201 Method could be a function
Line 42 in DBS3Reader R0904 Too many public methods (28/20)
Line 13 W0611 Unused import emulatorHook
Line 16 W0611 Unused import cmsname
Line 10 W0614 Unused import exceptions from wildcard import
plus 104 comments on code style

src/python/WMCore/Storage/DeleteMgr.py got worse in pylint. Report follows:

Line 21 in DeleteMgr R0902 Too many instance attributes (9/7)
Line 139 in DeleteMgr.initialiseOverride W0612 Unused variable 'ex'
Line 232 in DeleteMgr.deleteLFN W0612 Unused variable 'seName'
Line 237 in DeleteMgr.deleteLFN W0612 Unused variable 'protocol'
Line 233 in DeleteMgr.deleteLFN W0612 Unused variable 'pnn'
Line 235 in DeleteMgr.deleteLFN W0612 Unused variable 'options'
Line 11 W0611 Unused import os
plus 21 comments on code style

Pre-python 2.6 idioms found in changed files. Please consider updating the code. Suggested patch follows:
--- src/python/WMComponent/DBS3Buffer/DBSBufferFile.py (original)
+++ src/python/WMComponent/DBS3Buffer/DBSBufferFile.py (refactored)
@@ -232,7 +232,7 @@

         Set one or more lfns as the child of this file.
         """
-        if type(lfns) != list:
+        if not isinstance(lfns, list):
             lfns = [lfns]

         existingTransaction = self.beginTransaction()
--- src/python/WMComponent/DBSBuffer/Database/Interface/DBSBufferFile.py (original)
+++ src/python/WMComponent/DBSBuffer/Database/Interface/DBSBufferFile.py (refactored)
@@ -225,7 +225,7 @@

         Set one or more lfns as the child of this file.
         """
-        if type(lfns) != list:
+        if not isinstance(lfns, list):
             lfns = [lfns]

         existingTransaction = self.beginTransaction()
--- src/python/WMComponent/DBSUpload/DBSInterface.py (original)
+++ src/python/WMComponent/DBSUpload/DBSInterface.py (refactored)
@@ -83,7 +83,7 @@

     tierList = dataTier.split("-")

-    if not type(algorithm) == list:
+    if not isinstance(algorithm, list):
         algorithm = [algorithm]

     processedDataset = DbsProcessedDataset(PrimaryDataset = primary,
@@ -680,7 +680,7 @@
         take just one.
         """

-        if type(blockNames) != list:
+        if not isinstance(blockNames, list):
             blockNames = [blockNames]

@@ -721,7 +721,7 @@
             logging.debug("Skipping migration due to doGlobalMigration tag.")
             return blocks

-        if type(blocks) != list:
+        if not isinstance(blocks, list):
             blocks = [blocks]

--- src/python/WMCore/DataStructs/File.py (original)
+++ src/python/WMCore/DataStructs/File.py (refactored)
@@ -98,9 +98,9 @@
         File is equal if it has the same name
         """
         eq = False
-        if type(rhs) == type(self):
+        if isinstance(rhs, type(self)):
             eq = self['lfn'] == rhs['lfn']
-        elif type(rhs) == type('string'):
+        elif isinstance(rhs, type('string')):
             eq = self['lfn'] == rhs
         return eq

@@ -131,7 +131,7 @@
                     "parents": []}

         for parent in self["parents"]:
-            if type(parent) == str:
+            if isinstance(parent, str):
                 # Then for some reason, we're passing strings
                 # Done specifically for ErrorHandler
                 fileDict['parents'].append(parent)
--- src/python/WMCore/FwkJobReport/Report.py (original)
+++ src/python/WMCore/FwkJobReport/Report.py (refactored)
@@ -85,7 +85,7 @@
     """
     runSection = fileSection.section_("runs")

-    if not type(runInfo) == Run:
+    if not isinstance(runInfo, Run):
         for singleRun in runInfo:
             setattr(fileSection.runs, str(singleRun.run), singleRun.lumis)
     else:
@@ -203,7 +203,7 @@
             jsonPerformance[reportSection] = getattr(perfSection, reportSection).dictionary_()
             for key in jsonPerformance[reportSection].keys():
                 val = jsonPerformance[reportSection][key]
-                if type(val) == float:
+                if isinstance(val, float):
                     if math.isinf(val) or math.isnan(val):
                         jsonPerformance[reportSection][key] = None

--- src/python/WMCore/Services/DBS/DBS3Reader.py (original)
+++ src/python/WMCore/Services/DBS/DBS3Reader.py (refactored)
@@ -29,7 +29,7 @@
                'block_name': 'BlockName', 'lumi_section_num': 'LumiSectionNumber'}

     mapping.update(others)
-    format = lambda x: str(x) if stringify and type(x) == unicode else x
+    format = lambda x: str(x) if stringify and isinstance(x, unicode) else x
     for name, newname in mapping.iteritems():
         if name in data:
             data[newname] = format(data[name])
--- src/python/WMCore/Services/PhEDEx/PhEDEx.py (original)
+++ src/python/WMCore/Services/PhEDEx/PhEDEx.py (refactored)
@@ -134,7 +134,7 @@

         Update a request approving/disapproving it.
         """
-        if type(nodes) == str:
+        if isinstance(nodes, str):
             nodes = [nodes]
         args = {}
         args['decision'] = decision.lower()
--- src/python/WMCore/WMBS/File.py (original)
+++ src/python/WMCore/WMBS/File.py (refactored)
@@ -31,7 +31,7 @@
         if locations == None:
             self.setdefault("newlocations", set())
         else:
-            if type(locations) == str:
+            if isinstance(locations, str):
                 self.setdefault("newlocations", set())
                 self['newlocations'].add(locations)
             else:
@@ -107,10 +107,9 @@

         def _getAncestorIDs(ids, level):
             action = self.daofactory(classname = "Files.GetParentIDsByID")
-            parentIDs = action.execute(ids, conn = self.getDBConn(),
-                                       transaction = self.existingTransaction())
-
-            parentIDs.sort()
+            parentIDs = sorted(action.execute(ids, conn = self.getDBConn(),
+                                       transaction = self.existingTransaction()))
+
             if level == 1 or len(parentIDs) == 0:
                 return parentIDs
             else:
@@ -149,10 +148,9 @@

         def _getDescendantIDs(ids, level):
             action = self.daofactory(classname = "Files.GetChildIDsByID")
-            childIDs = action.execute(ids, conn = self.getDBConn(),
-                                       transaction = self.existingTransaction())
-
-            childIDs.sort()
+            childIDs = sorted(action.execute(ids, conn = self.getDBConn(),
+                                       transaction = self.existingTransaction()))
+
             if level == 1 or len(childIDs) == 0:
                 return childIDs
             else:
@@ -470,10 +468,10 @@
         # parents should be set of wmbs files in WMBS File class
         self["parents"] = set()

-        if type(file["locations"]) == set:
+        if isinstance(file["locations"], set):
             s = file["locations"].copy()
             pnn = s.pop()
-        elif type(file["locations"]) == list:
+        elif isinstance(file["locations"], list):
             pnn = file["locations"][0]
         else:
             pnn = file["locations"]
--- src/python/WMCore/WMBS/MySQL/Jobs/LoadForErrorHandler.py (original)
+++ src/python/WMCore/WMBS/MySQL/Jobs/LoadForErrorHandler.py (refactored)
@@ -89,7 +89,7 @@
         the result.
         """

-        if type(jobID) == list:
+        if isinstance(jobID, list):
             if len(jobID) < 1:
                 # Nothing to do
                 return []
--- src/python/WMCore/WorkQueue/WMBSHelper.py (original)
+++ src/python/WMCore/WorkQueue/WMBSHelper.py (refactored)
@@ -633,7 +633,7 @@
                         locations = set(storageElements))

         for lumi in dbsFile['LumiList']:
-            if type(lumi['LumiSectionNumber']) == list:
+            if isinstance(lumi['LumiSectionNumber'], list):
                 run = Run(lumi['RunNumber'], *lumi['LumiSectionNumber'])
             else:
                 run = Run(lumi['RunNumber'], lumi['LumiSectionNumber'])
@@ -736,7 +736,7 @@

         results = []
         for f in files:
-            if type(f) == type("") or "LumiList" not in f:
+            if isinstance(f, type("")) or "LumiList" not in f:
                 results.append(f)
                 continue

--- src/python/WMCore/WorkQueue/WorkQueueBackend.py (original)
+++ src/python/WMCore/WorkQueue/WorkQueueBackend.py (refactored)
@@ -542,7 +542,7 @@
         """
         deleted = 0
         dbs = [self.db, self.inbox]
-        if type(workflowNames) != list:
+        if not isinstance(workflowNames, list):
             workflowNames = [workflowNames]

         if len(workflowNames) == 0:
--- test/python/WMComponent_t/JobAccountant_t/JobAccountant_t.py (original)
+++ test/python/WMComponent_t/JobAccountant_t/JobAccountant_t.py (refactored)
@@ -553,7 +553,7 @@
             assert dbsFile["datasetPath"] == datasetPath, \
                    "Error: dataset path in buffer is wrong."

-            if type(parentFileLFNs) == dict:
+            if isinstance(parentFileLFNs, dict):
                 parentFileLFNsCopy = copy.deepcopy(parentFileLFNs[fwkJobReportFile["lfn"]])
             else:
                 parentFileLFNsCopy = copy.deepcopy(parentFileLFNs)
--- test/python/WMComponent_t/JobSubmitter_t/JobSubmitter_t.py (original)
+++ test/python/WMComponent_t/JobSubmitter_t/JobSubmitter_t.py (refactored)
@@ -178,7 +178,7 @@
             #site = self.sites[0]
             testFile = File(lfn = "/singleLfn/%s/%s" % (name, n),
                             size = 1024, events = 10)
-            if type(site) == list:
+            if isinstance(site, list):
                 for singleSite in site:
                     testFile.setLocation(singleSite)
             else:
--- test/python/WMCore_t/WMBS_t/File_t.py (original)
+++ test/python/WMCore_t/WMBS_t/File_t.py (refactored)
@@ -280,26 +280,26 @@
         assert testFileA == testFileC, \
                "ERROR: File load by ID didn't work"

-        assert type(testFileB["id"]) == int, \
+        assert isinstance(testFileB["id"], int), \
                "ERROR: File id is not an integer type."
-        assert type(testFileB["size"]) == int, \
+        assert isinstance(testFileB["size"], int), \
                "ERROR: File size is not an integer type."
-        assert type(testFileB["events"]) == int, \
+        assert isinstance(testFileB["events"], int), \
                "ERROR: File events is not an integer type."
-        assert type(testFileB["checksums"]) == dict, \
+        assert isinstance(testFileB["checksums"], dict), \
                "ERROR: File cksum is not a string type."
-        assert type(testFileB["first_event"]) == int, \
+        assert isinstance(testFileB["first_event"], int), \
                "ERROR: File first_event is not an integer type."

-        assert type(testFileC["id"]) == int, \
+        assert isinstance(testFileC["id"], int), \
                "ERROR: File id is not an integer type."
-        assert type(testFileC["size"]) == int, \
+        assert isinstance(testFileC["size"], int), \
                "ERROR: File size is not an integer type."
-        assert type(testFileC["events"]) == int, \
+        assert isinstance(testFileC["events"], int), \
                "ERROR: File events is not an integer type."
-        assert type(testFileC["checksums"]) == dict, \
+        assert isinstance(testFileC["checksums"], dict), \
                "ERROR: File cksum is not an string type."
-        assert type(testFileC["first_event"]) == int, \
+        assert isinstance(testFileC["first_event"], int), \
                "ERROR: File first_event is not an integer type."

         self.assertEqual(testFileC['checksums'], {'cksum': '101'})
--- test/python/WMCore_t/WMBS_t/Fileset_t.py (original)
+++ test/python/WMCore_t/WMBS_t/Fileset_t.py (refactored)
@@ -159,10 +159,10 @@
         testFilesetC = Fileset(id = testFilesetA.id)
         testFilesetC.load()

-        assert type(testFilesetB.id) == int, \
+        assert isinstance(testFilesetB.id, int), \
                "ERROR: Fileset id is not an int."

-        assert type(testFilesetC.id) == int, \
+        assert isinstance(testFilesetC.id, int), \
                "ERROR: Fileset id is not an int."

         assert testFilesetB.id == testFilesetA.id, \
--- test/python/WMCore_t/WMBS_t/JobGroup_t.py (original)
+++ test/python/WMCore_t/WMBS_t/JobGroup_t.py (refactored)
@@ -308,22 +308,22 @@
         testJobGroupC = JobGroup(uid = testJobGroupA.uid)
         testJobGroupC.load()

-        assert type(testJobGroupB.id) == int, \
+        assert isinstance(testJobGroupB.id, int), \
                "ERROR: Job group id is not an int."

-        assert type(testJobGroupC.id) == int, \
+        assert isinstance(testJobGroupC.id, int), \
                "ERROR: Job group id is not an int."

-        assert type(testJobGroupB.subscription["id"]) == int, \
+        assert isinstance(testJobGroupB.subscription["id"], int), \
                "ERROR: Job group subscription id is not an int."

-        assert type(testJobGroupC.subscription["id"]) == int, \
+        assert isinstance(testJobGroupC.subscription["id"], int), \
                "ERROR: Job group subscription id is not an int."

-        assert type(testJobGroupB.output.id) == int, \
+        assert isinstance(testJobGroupB.output.id, int), \
                "ERROR: Job group output id is not an int."

-        assert type(testJobGroupC.output.id) == int, \
+        assert isinstance(testJobGroupC.output.id, int), \
                "ERROR: Job group output id is not an int."

         assert testJobGroupB.uid == testJobGroupA.uid, \
--- test/python/WMCore_t/WMBS_t/Subscription_t.py (original)
+++ test/python/WMCore_t/WMBS_t/Subscription_t.py (refactored)
@@ -814,22 +814,22 @@
         testSubscriptionB.load()
         testSubscriptionC.load()

-        assert type(testSubscriptionB["id"]) == int, \
+        assert isinstance(testSubscriptionB["id"], int), \
                "ERROR: Subscription id is not an int."

-        assert type(testSubscriptionC["id"]) == int, \
+        assert isinstance(testSubscriptionC["id"], int), \
                "ERROR: Subscription id is not an int."

-        assert type(testSubscriptionB["workflow"].id) == int, \
+        assert isinstance(testSubscriptionB["workflow"].id, int), \
                "ERROR: Subscription workflow id is not an int."

-        assert type(testSubscriptionC["workflow"].id) == int, \
+        assert isinstance(testSubscriptionC["workflow"].id, int), \
                "ERROR: Subscription workflow id is not an int."

-        assert type(testSubscriptionB["fileset"].id) == int, \
+        assert isinstance(testSubscriptionB["fileset"].id, int), \
                "ERROR: Subscription fileset id is not an int."

-        assert type(testSubscriptionC["fileset"].id) == int, \
+        assert isinstance(testSubscriptionC["fileset"].id, int), \
                "ERROR: Subscription fileset id is not an int."

         assert testWorkflow.id == testSubscriptionB["workflow"].id, \

Unit test changes for pull request 5989:

WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:test4GMerge changed from error to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testMergeSuccess changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testMergeSuccessNoLumi changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testMergeSuccessSkippedFiles changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testMergedSkim changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testParentlessMergeSuccess changed from success to failure
WMComponent_t.JobAccountant_t.JobAccountant_t.JobAccountantTest:testSplitJobs changed from success to failure
WMComponent_t.JobCreator_t.JobCreator_t.JobCreatorTest:testA_VerySimpleTest changed from success to error
WMComponent_t.JobCreator_t.JobCreator_t.JobCreatorTest:testE_TestNonProxySplitting changed from success to error
WMComponent_t.JobSubmitter_t.JobSubmitterCaching_t.JobSubmitterCachingTest:testCaching changed from success to error
WMComponent_t.JobSubmitter_t.JobSubmitter_t.JobSubmitterTest:testA_BasicTest changed from success to error
WMComponent_t.JobSubmitter_t.JobSubmitter_t.JobSubmitterTest:testB_thresholdTest changed from success to error
WMComponent_t.JobSubmitter_t.JobSubmitter_t.JobSubmitterTest:testC_prioritization changed from success to error
WMComponent_t.JobSubmitter_t.JobSubmitter_t.JobSubmitterTest:testD_WhiteListBlackList changed from failure to error
WMComponent_t.JobSubmitter_t.JobSubmitter_t.JobSubmitterTest:testE_SiteModesTest changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testDuplicateJobReports changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testFWJRInputFileTruncation changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testIndexConflict changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testJobKilling changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testJobSerialization changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testJobSummary changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testPersist changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testRecordInCouch changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testRetryCount changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testUpdateFailedDoc changed from success to error
WMCore_t.JobStateMachine_t.ChangeState_t.TestChangeState:testUpdateLocation changed from success to error
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testInsertAllSEs changed from success to failure
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testInsertAllSEs2 changed from success to failure
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testInsertT0 changed from success to error
WMCore_t.ResourceControl_t.ResourceControl_t.ResourceControlTest:testListSiteInfo changed from success to error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListBlockParents changed from success to error
WMCore_t.Services_t.SiteDB_t.SiteDB_t.SiteDBTest:testPhEDExNodetocmsName was deleted. Prior status was success
WMCore_t.WMBS_t.File_t.FileTest:testCreateWithLocation changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testDataStructsFile changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testGetBulkLocations changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testGetInfo changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testLoadData changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testLocationsConstructor changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testSetLocation changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testSetLocationByLFN changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:testSetLocationOrder changed from success to error
WMCore_t.WMBS_t.File_t.FileTest:testSetLocationTransaction changed from success to failure
WMCore_t.WMBS_t.File_t.FileTest:test_SetLocationsForWorkQueue changed from success to failure
WMCore_t.WMBS_t.Fileset_t.FilesetTest:testAddBulkByLFN changed from success to failure
WMCore_t.WMBS_t.Fileset_t.FilesetTest:testAddToWMBSInBulk changed from success to failure
WMCore_t.WMBS_t.Fileset_t.FilesetTest:testBulkAddDAO changed from success to failure
WMCore_t.WMBS_t.Fileset_t.FilesetTest:testFileCreate changed from success to failure
WMCore_t.WMBS_t.JobGroup_t.JobGroupTest:testGetLocationsForJobs changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventAwareLumiBased_t.EventAwareLumiBasedTest:testA_FileSplitNoHardLimit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventAwareLumiBased_t.EventAwareLumiBasedTest:testC_HardLimitSplitting changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventAwareLumiBased_t.EventAwareLumiBasedTest:testD_HardLimitSplittingOnly changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test100EventMultipleFileSplit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test100EventMultipleSite changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test150EventMultipleFileSplit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test50EventMultipleFileSplit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test50EventSplit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:test99EventSplit changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:testExactEvents changed from success to failure
WMCore_t.WMBS_t.JobSplitting_t.EventBased_t.EventBasedTest:testMCEventSplitOver32bit changed from success to failure