コード例 #1
0
        def run_task():
            self.tmp_dir = tempfile.mkdtemp(prefix="sasi_runner.")
            self.db_file = os.path.join(self.tmp_dir, "sasi_runner.db")

            self.progressBar.setValue(0)
            self.progressBar.setIndeterminate(True)

            def get_connection():
                engine = create_engine('h2+zxjdbc:////%s' % self.db_file)
                con = engine.connect()
                return con

            try:
                # Set result fields.
                result_fields = []
                for field_id, is_selected in self.selected_result_fields.items():
                    if is_selected: result_fields.append(field_id)

                task = RunSasiTask(
                    input_path=self.selected_input_file.path,
                    output_file=self.selected_output_file.path,
                    logger=self.logger,
                    get_connection=get_connection,
                    config={
                        'result_fields': result_fields,
                        'run_model': {
                            'run': {
                                'batch_size': 'auto',
                            }
                        },
                        'output': {
                            'batch_size': 'auto',
                        },
                    }
                )
                task.call()
            except Exception as e:
                self.logger.exception("Could not complete task")

            self.progressBar.setIndeterminate(False)
            self.progressBar.setValue(100)

            try:
                shutil.rmtree(self.tmp_dir)
            except:
                pass
コード例 #2
0
    def test_run_sasi_task(self):
        self.data_dir = generate_data_dir(effort_model='nominal')

        def get_connection():
            if platform.system() == 'Java':
                db_uri = 'h2+zxjdbc:///mem:'
            else:
                db_uri = 'sqlite://'
            engine = create_engine(db_uri)
            con = engine.connect()
            return con

        logger = logging.getLogger('test')
        logger.addHandler(logging.StreamHandler())
        logger.setLevel(logging.INFO)

        task = RunSasiTask(
            input_path=self.data_dir,
            get_connection=get_connection,
            logger=logger,
            config={
                #'result_fields': ['gear_id', 'substrate_id'],
                'ingest': {
                    'sections': {
                        'gears': {
                            #'limit': 1,
                        },
                        'habitats': {
                            #'limit': 1000,
                        },
                        'grid': {
                            #'limit': 100,
                        }
                    }
                },
                'run_model': {
                    'run': {
                        'batch_size': 'auto',
                    }
                },
            }
        )
        task.call()