From c67f29ea4d3455daa683ca79a9933c4af336e858 Mon Sep 17 00:00:00 2001 From: "John T. Wodder II" Date: Fri, 26 Mar 2021 12:37:36 -0400 Subject: [PATCH] Add --only-metadata option to migrate-dandisets.py --- tools/migrate-dandisets.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/tools/migrate-dandisets.py b/tools/migrate-dandisets.py index 0f94a3690..ac8f8739d 100644 --- a/tools/migrate-dandisets.py +++ b/tools/migrate-dandisets.py @@ -10,10 +10,11 @@ @click.option( "-d", "--delete-extant", is_flag=True, help="Delete Dandisets that already exist" ) +@click.option("--only-metadata", is_flag=True, help="Only update Dandiset metadata") @click.argument("api_url") @click.argument("token") @click.argument("dandiset_path", nargs=-1) -def main(api_url, token, dandiset_path, delete_extant): +def main(api_url, token, dandiset_path, delete_extant, only_metadata): client = DandiAPIClient(api_url=api_url, token=token) with client.session(): for dpath in dandiset_path: @@ -27,10 +28,16 @@ def main(api_url, token, dandiset_path, delete_extant): else: print("Dandiset", dandiset.identifier, "already exists; deleting") client.delete(f"/dandisets/{dandiset.identifier}/") - print("Creating Dandiset", dandiset.identifier) - client.create_dandiset( - name=dandiset.metadata.get("name", ""), metadata=dandiset.metadata - ) + if only_metadata: + print("Setting metadata for Dandiset", dandiset.identifier) + client.set_dandiset_metadata( + dandiset.identifier, metadata=dandiset.metadata + ) + else: + print("Creating Dandiset", dandiset.identifier) + client.create_dandiset( + name=dandiset.metadata.get("name", ""), metadata=dandiset.metadata + ) if __name__ == "__main__":