def modify_datapackage(dp, parameters, *_): dataset_id = parameters['dataset-id'] loaded = parameters.get('loaded') private = parameters.get('private') owner = parameters.get('owner') datapackage_url = parameters.get('datapackage-url') if ES_ADDRESS: registry = PackageRegistry(ES_ADDRESS) datapackage = copy.deepcopy(dp) params = {} if 'babbageModel' in datapackage: model = datapackage['babbageModel'] del datapackage['babbageModel'] params['model'] = model if private is not None: datapackage['private'] = private if owner is not None: datapackage['owner'] = owner if datapackage_url: params['datapackage_url'] = datapackage_url params['datapackage'] = datapackage if loaded is not None: params['loaded'] = loaded params['loading_status'] = 'done' if loaded else 'loading-data' registry.update_model(dataset_id, **params) return dp
def test_save_and_update(self, package_registry: PackageRegistry): name = 'owner:my-name' dp_url = 'http://dp_url' dp = {'name': 'moses'} model = {'my-model': 'is-great'} dataset_name = 'ds-name' author = 'authors-name' status = 'FUNKY' loaded = False def check(): name_, dp_url_, dp_, model_, dataset_name_, author_, status_, loaded_ = \ package_registry.get_raw(name) assert name_ == name assert dp_url_ == dp_url assert dp_ == dp assert model_ == model assert dataset_name_ == dataset_name assert author_ == author assert status_ == status assert loaded_ == loaded package_registry.save_model(name, dp_url, dp, model, dataset_name, author, status, loaded) check() author = 'moses' package_registry.update_model(name, author=author) check() status = 'BLINKY' package_registry.update_model(name, status=status) check() status = 'AWESOME' loaded = True package_registry.update_model(name, status=status, loaded=loaded) check() # Update existing property of model model = {'my-model': 'replace model'} dp = {'name': 'replace name'} package_registry.update_model(name, model=model, datapackage=dp) check() # Replace model model = {'completely': 'replace model'} dp = {'completely': 'replace dp'} package_registry.update_model(name, model=model, datapackage=dp) check()