+
+def write_block_or_manifest(dest, src, api_client, args):
+ if '+A' in src:
+ # block locator
+ kc = arvados.keep.KeepClient(api_client=api_client)
+ dest.write(kc.get(src, num_retries=args.retries))
+ else:
+ # collection UUID or portable data hash
+ reader = arvados.CollectionReader(
+ src, api_client=api_client, num_retries=args.retries)
+ dest.write(reader.manifest_text(strip=args.strip_manifest).encode())