def __init__(self, files=[], persistency=None, depth=0): new_files = GangaList() if isType(files, LHCbDataset): for this_file in files: new_files.append(copy.deepcopy(this_file)) elif isType(files, IGangaFile): new_files.append(copy.deepcopy(this_file)) elif type(files) == type([]): for this_file in files: if type(this_file) == type(''): new_files.append(string_datafile_shortcut_lhcb(this_file, None), False) elif isType(this_file, IGangaFile): new_files.append(this_file, False) else: new_files.append(strToDataFile(this_file)) elif type(files) == type(''): new_files.append(string_datafile_shortcut_lhcb(this_file, None), False) else: from Ganga.Core.exceptions import GangaException raise GangaException("Unknown object passed to LHCbDataset constructor!") new_files._setParent(self) super(LHCbDataset, self).__init__() # Feel free to turn this on again for debugging but it's potentially quite expensive #logger.debug( "Creating dataset with:\n%s" % files ) self.files = new_files self.persistency = persistency self.depth = depth logger.debug("Dataset Created")
def __init__(self, files=None, persistency=None, depth=0, fromRef=False): super(LHCbDataset, self).__init__() if files is None: files = [] self.files = GangaList() process_files = True if fromRef: self.files._list.extend(files) process_files = False elif isinstance(files, GangaList): def isFileTest(_file): return isinstance(_file, IGangaFile) areFiles = all([isFileTest(f) for f in files._list]) if areFiles: self.files._list.extend(files._list) process_files = False elif isinstance(files, LHCbDataset): self.files._list.extend(files.files._list) process_files = False if process_files: if isType(files, LHCbDataset): for this_file in files: self.files.append(deepcopy(this_file)) elif isType(files, IGangaFile): self.files.append(deepcopy(files)) elif isType(files, (list, tuple, GangaList)): new_list = [] for this_file in files: if type(this_file) is str: new_file = string_datafile_shortcut_lhcb( this_file, None) elif isType(this_file, IGangaFile): new_file = stripProxy(this_file) else: new_file = strToDataFile(this_file) new_list.append(new_file) self.files.extend(new_list) elif type(files) is str: self.files.append(string_datafile_shortcut_lhcb(files, None), False) else: raise GangaException( "Unknown object passed to LHCbDataset constructor!") self.files._setParent(self) logger.debug("Processed inputs, assigning files") # Feel free to turn this on again for debugging but it's potentially quite expensive #logger.debug( "Creating dataset with:\n%s" % self.files ) logger.debug("Assigned files") self.persistency = persistency self.depth = depth logger.debug("Dataset Created")
def __init__(self, files=None, persistency=None, depth=0, fromRef=False): super(LHCbDataset, self).__init__() if files is None: files = [] self.files = GangaList() process_files = True if fromRef: self.files._list.extend(files) process_files = False elif isinstance(files, GangaList): def isFileTest(_file): return isinstance(_file, IGangaFile) areFiles = all([isFileTest(f) for f in files._list]) if areFiles: self.files._list.extend(files._list) process_files = False elif isinstance(files, LHCbDataset): self.files._list.extend(files.files._list) process_files = False if process_files: if isType(files, LHCbDataset): for this_file in files: self.files.append(deepcopy(this_file)) elif isType(files, IGangaFile): self.files.append(deepcopy(this_file)) elif isType(files, (list, tuple, GangaList)): new_list = [] for this_file in files: if type(this_file) is str: new_file = string_datafile_shortcut_lhcb(this_file, None) elif isType(this_file, IGangaFile): new_file = stripProxy(this_file) else: new_file = strToDataFile(this_file) new_list.append(new_file) self.files.extend(new_list) elif type(files) is str: self.files.append(string_datafile_shortcut_lhcb(this_file, None), False) else: raise GangaException("Unknown object passed to LHCbDataset constructor!") self.files._setParent(self) logger.debug("Processed inputs, assigning files") # Feel free to turn this on again for debugging but it's potentially quite expensive #logger.debug( "Creating dataset with:\n%s" % self.files ) logger.debug("Assigned files") self.persistency = persistency self.depth = depth logger.debug("Dataset Created")
def __init__(self, files=None, persistency=None, depth=0): super(LHCbDataset, self).__init__() if files is None: files = [] new_files = GangaList() if isType(files, LHCbDataset): for this_file in files: new_files.append(deepcopy(this_file)) elif isType(files, IGangaFile): new_files.append(deepcopy(this_file)) elif isType(files, (list, tuple, GangaList)): new_list = [] for this_file in files: if type(this_file) is str: new_file = string_datafile_shortcut_lhcb(this_file, None) elif isType(this_file, IGangaFile): new_file = this_file else: new_file = strToDataFile(this_file) new_list.append(stripProxy(new_file)) stripProxy(new_files)._list = new_list elif type(files) is str: new_files.append(string_datafile_shortcut_lhcb(this_file, None), False) else: raise GangaException("Unknown object passed to LHCbDataset constructor!") new_files._setParent(self) logger.debug("Processed inputs, assigning files") # Feel free to turn this on again for debugging but it's potentially quite expensive #logger.debug( "Creating dataset with:\n%s" % files ) self.files = new_files logger.debug("Assigned files") self.persistency = persistency self.depth = depth logger.debug("Dataset Created")
logger.debug("Failed to Construct a default file type: %s" % str(name)) pass # We can do some 'magic' with strings so lets do that here if (mainFileOutput is not None): #logger.debug( "Core Found: %s" % str( mainFileOutput ) ) if (type(name) is not str): return mainFileOutput if type(name) is not str: return None if item is None and name is None: return None # used to be c'tor, but shouldn't happen now else: # something else...require pfn: or lfn: try: this_file = strToDataFile(name, True) if this_file is None: if not mainFileOutput is None: return mainFileOutput else: raise GangaException("Failed to find filetype for: %s" % str(name)) return this_file except Exception, x: # if the Core can make a file object from a string then use that, # else raise an error if not mainFileOutput is None: return mainFileOutput else: raise x return None