def dataset_remove( client, short_names, with_output=False, datasetscontext=contextlib.nullcontext, referencescontext=contextlib.nullcontext, commit_message=None ): """Delete a dataset.""" datasets = {name: client.get_dataset_path(name) for name in short_names} if not datasets: raise ParameterError( 'use dataset short_name or identifier', param_hint='short_names' ) unknown = [ name for name, path in datasets.items() if not path or not path.exists() ] if unknown: raise ParameterError( 'unknown datasets ' + ', '.join(unknown), param_hint='short_names' ) datasets = set(datasets.values()) references = list(LinkReference.iter_items(client, common_path='datasets')) if not with_output: for dataset in datasets: if dataset and dataset.exists(): dataset.unlink() for ref in references: if ref.reference in datasets: ref.delete() return datasets, references datasets_c = datasetscontext(datasets) with datasets_c as bar: for dataset in bar: if dataset and dataset.exists(): dataset.unlink() references_c = referencescontext(references) with references_c as bar: for ref in bar: if ref.reference in datasets: ref.delete()
def workflow(ctx, client): """List or manage workflows with subcommands.""" if ctx.invoked_subcommand is None: from renku.core.models.refs import LinkReference names = defaultdict(list) for ref in LinkReference.iter_items(client, common_path='workflows'): names[ref.reference.name].append(ref.name) for path in client.workflow_path.glob('*.cwl'): click.echo('{path}: {names}'.format( path=path.name, names=', '.join( click.style(_deref(name), fg='green') for name in names[path.name]), ))
def check_missing_references(client): """Find missing references.""" from renku.core.models.refs import LinkReference missing = [ ref for ref in LinkReference.iter_items(client) if not ref.reference.exists() ] if not missing: return True, None problems = ('\n' + WARNING + 'There are missing references.' '\n (use "git rm <name>" to clean them)\n\n\t' + '\n\t'.join( click.style(str(ref.path), fg='yellow') + ' -> ' + click.style(str(ref.reference), fg='red') for ref in missing) + '\n') return False, problems
def check_missing_references(client): """Find missing references.""" from renku.core.models.refs import LinkReference missing = [ ref for ref in LinkReference.iter_items(client) if not ref.reference.exists() ] if not missing: return True, None problems = ("\n" + WARNING + "There are missing references." '\n (use "git rm <name>" to clean them)\n\n\t' + "\n\t".join( click.style(str(ref.path), fg="yellow") + " -> " + click.style(str(ref.reference), fg="red") for ref in missing) + "\n") return False, problems
def workflow_names(self): """Return index of workflow names.""" names = defaultdict(list) for ref in LinkReference.iter_items(self, common_path='workflows'): names[str(ref.reference.relative_to(self.path))].append(ref.name) return names