def import_data(self, data): results = MultiImportResult() context = { 'model_contexts': { importer.model: importer.get_model_context() for importer in self.importer_instances } } bound_importers = self._transform_multi_input(data) for importer, filename, dataset in bound_importers: result = importer.import_data(dataset, context, transaction=False) results.add_result(filename, result) return results
def import_files(self, files): results = MultiImportResult() data = {} for filename, file in files.items(): try: dataset = file_helper.read(self.file_formats, file) model, data_item = self._identify_dataset(filename, dataset) if model in data: data[model].append(data_item) else: data[model] = [data_item] except(InvalidDatasetError, InvalidFileError) as e: results.add_error(filename, e.message) if not results.valid: return results return self.import_data(data, transaction=False)