コード例 #1
0
            def process(self):
                file_md5 = DataSource.compute_md5(filename=self.filename).hexdigest()

                if not DataSource.datasource_exists_for_participant(filename=self.short_filename,
                                                                    participant=self.importer.participant, md5=file_md5,
                                                                    db_session=self.importer.db.session):

                    self.log_request.emit("Chargement du fichier: '" + self.short_filename + "'", LogTypes.LOGTYPE_INFO)

                    self.results = self.importer.load(self.filename)
                    if self.results is not None:
                        self.log_request.emit('Importation des données...', LogTypes.LOGTYPE_INFO)
                        self.importer.import_to_database(self.results)
                        self.results.clear()  # Needed to clear the dict cache and let the garbage collector delete it!
                        # Add datasources for that file
                        for recordset in self.importer.recordsets:
                            if not DataSource.datasource_exists_for_recordset(filename=self.short_filename ,
                                                                              recordset=recordset, md5=file_md5,
                                                                              db_session=self.importer.db.session):
                                ds = DataSource()
                                ds.recordset = recordset
                                ds.file_md5 = file_md5
                                ds.file_name = self.short_filename
                                ds.update_datasource(db_session=self.importer.db.session)

                        self.importer.clear_recordsets()
                        self.log_request.emit('Importation du fichier complétée!', LogTypes.LOGTYPE_DONE)
                    else:
                        self.log_request.emit('Erreur lors du chargement du fichier: ' + self.importer.last_error,
                                              LogTypes.LOGTYPE_ERROR)
                else:
                    self.log_request.emit("Données du fichier '" + self.filename + "' déjà présentes pour '" +
                                          self.importer.participant.name + "' - ignorées.",
                                          LogTypes.LOGTYPE_WARNING)
コード例 #2
0
            def load_data(self):
                file_md5 = DataSource.compute_md5(filename=self.filename).hexdigest()

                if not DataSource.datasource_exists_for_participant(filename=self.short_filename,
                                                                    participant=self.importer.participant, md5=file_md5,
                                                                    db_session=self.importer.db.session):
                    self.results = self.importer.load(self.filename)
                    return True
                return False
コード例 #3
0
 def __init__(self, filename, task_size, file_importer):
     super().__init__(filename, task_size)
     self.filename = filename
     self.importer = file_importer
     self.importer.update_progress.connect(self.update_progress)
     self.short_filename = DataSource.build_short_filename(self.filename)
     self.title = self.short_filename