def create_driving_dataset(self, driving_dataset_id, results, locations, model_run_service, land_cover_service): """ Create a driving dataset object from a results dictionary :param driving_dataset_id: id of the driving dataset to edit (None for create new) :param locations: locations list to use :param results: the results :param model_run_service: model run service :param land_cover_service: land cover service :return: nothing """ with self.transaction_scope() as session: if driving_dataset_id is None: driving_dataset = DrivingDataset() session.add(driving_dataset) else: session\ .query(DrivingDatasetParameterValue)\ .filter(DrivingDatasetParameterValue.driving_dataset_id == driving_dataset_id)\ .delete() session\ .query(DrivingDatasetLocation)\ .filter(DrivingDatasetLocation.driving_dataset_id == driving_dataset_id)\ .delete() driving_dataset = self._get_driving_dataset_by_id_in_session(driving_dataset_id, session) driving_dataset_jules_params = DrivingDatasetJulesParams() driving_dataset_jules_params.update_driving_dataset_from_dict( driving_dataset, session, model_run_service, land_cover_service, results, locations)