@@ -139,7 +139,7 @@ def filesFromList(fileName,s=None):
139139 print ("found parent files:" ,sec )
140140 return (prim ,sec )
141141
142- def filesFromDASQuery (query ,option = "" ,s = None ):
142+ def filesFromDASQuery (query ,option = "" ,s = None , max_files = None ):
143143 import os ,time
144144 import FWCore .ParameterSet .Config as cms
145145 prim = []
@@ -172,6 +172,10 @@ def filesFromDASQuery(query,option="",s=None):
172172 # remove any duplicates
173173 prim = sorted (list (set (prim )))
174174 sec = sorted (list (set (sec )))
175+ if max_files :
176+ max_files = int (max_files )
177+ prim = prim [:max_files ]
178+ sec = sec [:max_files ]
175179 if s :
176180 if not hasattr (s ,"fileNames" ):
177181 s .fileNames = cms .untracked .vstring (prim )
@@ -412,12 +416,19 @@ def addSource(self):
412416 self .addedObjects .append (("Input source" ,"source" ))
413417
414418 def filesFromOption (self ):
419+ def _datasetname_and_maxfiles (entry ):
420+ if ":" in entry :
421+ return entry .split (":" )
422+ else :
423+ return entry ,None
424+
415425 for entry in self ._options .filein .split (',' ):
416426 print ("entry" ,entry )
417427 if entry .startswith ("filelist:" ):
418- filesFromList (entry [ 9 : ],self .process .source )
428+ filesFromList (entry . split ( ":" , 1 )[ 1 ],self .process .source )
419429 elif entry .startswith ("dbs:" ) or entry .startswith ("das:" ):
420- filesFromDASQuery ('file dataset = %s' % (entry [4 :]),self ._options .dasoption ,self .process .source )
430+ dataset_name ,max_files = _datasetname_and_maxfiles (entry .split (":" ,1 )[1 ])
431+ filesFromDASQuery ('file dataset = %s' % (dataset_name ),self ._options .dasoption ,self .process .source ,max_files )
421432 else :
422433 self .process .source .fileNames .append (self ._options .dirin + entry )
423434 if self ._options .secondfilein :
@@ -426,9 +437,10 @@ def filesFromOption(self):
426437 for entry in self ._options .secondfilein .split (',' ):
427438 print ("entry" ,entry )
428439 if entry .startswith ("filelist:" ):
429- self .process .source .secondaryFileNames .extend ((filesFromList (entry [ 9 : ]))[0 ])
440+ self .process .source .secondaryFileNames .extend ((filesFromList (entry . split ( ":" , 1 )[ 1 ]))[0 ])
430441 elif entry .startswith ("dbs:" ) or entry .startswith ("das:" ):
431- self .process .source .secondaryFileNames .extend ((filesFromDASQuery ('file dataset = %s' % (entry [4 :]),self ._options .dasoption ))[0 ])
442+ dataset_name ,max_files = _datasetname_and_maxfiles (entry .split (":" ,1 )[1 ])
443+ self .process .source .secondaryFileNames .extend ((filesFromDASQuery ('file dataset = %s' % (dataset_name ),self ._options .dasoption ))[0 ])
432444 else :
433445 self .process .source .secondaryFileNames .append (self ._options .dirin + entry )
434446
0 commit comments