def create_dataset_view(user, cache): """Create a new dataset in a project.""" ctx = DatasetCreateRequest().load(request.json) project = cache.get_project(user, ctx['project_id']) project_path = make_project_path(user, project) if not project_path: return jsonify( error={ 'code': INVALID_PARAMS_ERROR_CODE, 'message': 'invalid project_id argument', }) with chdir(project_path): create_dataset( ctx['dataset_name'], commit_message=ctx['commit_message'], creators=ctx.get('creators'), description=ctx.get('description'), ) if not repo_sync(project_path): return jsonify( error={ 'code': INTERNAL_FAILURE_ERROR_CODE, 'reason': 'push to remote failed silently - try again' }) return jsonify(DatasetCreateResponseRPC().load( {'result': DatasetCreateResponse().load(ctx, unknown=EXCLUDE)}))
def test_unlink_default(directory_tree, client): """Test unlink default behaviour.""" with chdir(client.path): create_dataset("dataset") add_file([directory_tree.join("dir2").strpath], "dataset") with pytest.raises(ParameterError): file_unlink("dataset", (), ())
def test_list_datasets_default(project): """Test a default dataset listing.""" create_dataset("ds1", title="", description="", creators=[], commit_message="my awesome dataset") datasets = list_datasets() assert isinstance(datasets, list) assert "ds1" in [dataset.title for dataset in datasets]
def test_create_dataset_custom_message(project): """Test create dataset custom message.""" create_dataset('ds1', title='', description='', creators=[], commit_message='my awesome dataset') last_commit = Repo('.').head.commit assert 'my awesome dataset' == last_commit.message
def test_list_files_default(project, tmpdir): """Test a default file listing.""" create_dataset("ds1", title="", description="", creators=[], commit_message="my awesome dataset") data_file = tmpdir / Path("somefile") data_file.write_text("1,2,3", encoding="utf-8") add_file([str(data_file)], "ds1") files = list_files(datasets=["ds1"]) assert isinstance(files, list) assert "somefile" in [file_.name for file_ in files]
def test_list_datasets_default(project): """Test a default dataset listing.""" create_dataset('ds1', title='', description='', creators=[], commit_message='my awesome dataset') datasets = list_datasets() assert isinstance(datasets, list) assert 'ds1' in [ds.name for ds in datasets]
def test_latest_version(project): """Test returning the latest version of `SoftwareAgent`.""" from renku import __version__ create_dataset( "ds1", title="", description="", creators=[], ) agent_version = LocalClient(project).latest_agent assert __version__ == agent_version
def test_list_files_default(project, tmpdir): """Test a default file listing.""" create_dataset('ds1', title='', description='', creators=[], commit_message='my awesome dataset') data_file = tmpdir / Path('somefile') data_file.write_text('1,2,3', encoding='utf-8') add_file([str(data_file)], 'ds1') files = list_files(datasets=['ds1']) assert isinstance(files, list) assert 'somefile' in [ds.name for ds in files]
def create(name, title, description, creators, keyword): """Create an empty dataset in the current repo.""" creators = creators or () new_dataset = create_dataset(name=name, title=title, description=description, creators=creators, keywords=keyword,) click.echo(f'Use the name "{new_dataset.name}" to refer to this dataset.') click.secho("OK", fg="green")
def create_dataset_view(user, cache): """Create a new dataset in a project.""" ctx = DatasetCreateRequest().load(request.json) project = cache.get_project(cache.ensure_user(user), ctx['project_id']) with chdir(project.abs_path): create_dataset(ctx['short_name'], title=ctx.get('name'), creators=ctx.get('creator'), description=ctx.get('description'), keywords=ctx.get('keywords'), commit_message=ctx['commit_message']) try: _, ctx['remote_branch'] = repo_sync(Repo(project.abs_path), remote='origin') except GitCommandError: return error_response(INTERNAL_FAILURE_ERROR_CODE, 'push to remote failed silently - try again') return result_response(DatasetCreateResponseRPC(), ctx)
def create_dataset_view(user, cache): """Create a new dataset in a project.""" ctx = DatasetCreateRequest().load(request.json) project = cache.get_project(cache.ensure_user(user), ctx['project_id']) if not project.abs_path.exists(): return error_response(INVALID_PARAMS_ERROR_CODE, 'invalid project_id argument') with chdir(project.abs_path): create_dataset( ctx['dataset_name'], commit_message=ctx['commit_message'], creators=ctx.get('creators'), description=ctx.get('description'), ) if not repo_sync(project.abs_path): return error_response(INTERNAL_FAILURE_ERROR_CODE, 'push to remote failed silently - try again') return result_response(DatasetCreateResponseRPC(), ctx)
def test_latest_version_user_commits(project): """Test retrieval of `SoftwareAgent` with latest non-renku command.""" from git import Repo from renku import __version__ create_dataset( "ds1", title="", description="", creators=[], ) myfile = Path("myfile") myfile.write_text("123") repo = Repo(project) repo.index.add([str(myfile)]) repo.index.commit("added myfile") agent_version = LocalClient(project).latest_agent assert __version__ == agent_version
def create_dataset_view(user, cache): """Create a new dataset in a project.""" ctx = DatasetCreateRequest().load(request.json) project = cache.get_project(cache.ensure_user(user), ctx["project_id"]) with chdir(project.abs_path): create_dataset( ctx["name"], title=ctx.get("title"), creators=ctx.get("creators"), description=ctx.get("description"), keywords=ctx.get("keywords"), commit_message=ctx["commit_message"], ) try: _, ctx["remote_branch"] = repo_sync(Repo(project.abs_path), remote="origin") except GitCommandError: return error_response(INTERNAL_FAILURE_ERROR_CODE, "repo sync failed") return result_response(DatasetCreateResponseRPC(), ctx)
def create(short_name, title, description, creator): """Create an empty dataset in the current repo.""" creators = creator or () new_dataset = create_dataset( short_name=short_name, title=title, description=description, creators=creators ) click.echo( 'Use the name "{0}" to refer to this dataset.'.format( new_dataset.short_name ) ) click.secho('OK', fg='green')
def test_create_dataset_custom_message(project): """Test create dataset custom message.""" create_dataset("ds1", title="", description="", creators=[], commit_message="my awesome dataset") last_commit = Repo(".").head.commit assert "my awesome dataset" == last_commit.message