X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c981b80d8965d62435045518f569e3f270014298..7ff85869345089297f5196c4be3cee6f7ee03c6b:/sdk/python/arvados/collection.py diff --git a/sdk/python/arvados/collection.py b/sdk/python/arvados/collection.py index b48b6df009..fb3dea43ac 100644 --- a/sdk/python/arvados/collection.py +++ b/sdk/python/arvados/collection.py @@ -22,6 +22,7 @@ from keep import * from stream import * import config import errors +import util def normalize_stream(s, stream): stream_tokens = [s] @@ -84,12 +85,15 @@ def normalize(collection): class CollectionReader(object): def __init__(self, manifest_locator_or_text): - if re.search(r'^[a-f0-9]{32}\+\d+(\+\S)*$', manifest_locator_or_text): + if re.search(r'^[a-f0-9]{32}(\+\d+)?(\+\S+)*$', manifest_locator_or_text): self._manifest_locator = manifest_locator_or_text self._manifest_text = None - else: + elif re.search(r'^\S+( [a-f0-9]{32,}(\+\S+)*)*( \d+:\d+:\S+)+\n', manifest_locator_or_text): self._manifest_text = manifest_locator_or_text self._manifest_locator = None + else: + raise errors.ArgumentError( + "Argument to CollectionReader must be a manifest or a collection UUID") self._streams = None def __enter__(self):