21356: Remove all Python 2/3 compatibility imports
[arvados.git] / sdk / cwl / arvados_cwl / util.py
index 776fc6bc25dae06e232e2546cab501246d6cd6b3..299f854ec202020b08156c2929bd35bf9a32cfaf 100644 (file)
@@ -5,6 +5,8 @@
 import datetime
 from arvados.errors import ApiError
 
+collectionUUID =  "http://arvados.org/cwl#collectionUUID"
+
 def get_intermediate_collection_info(workflow_step_name, current_container, intermediate_output_ttl):
         if workflow_step_name:
             name = "Intermediate collection for step %s" % (workflow_step_name)
@@ -14,9 +16,9 @@ def get_intermediate_collection_info(workflow_step_name, current_container, inte
         if intermediate_output_ttl > 0:
             trash_time = datetime.datetime.utcnow() + datetime.timedelta(seconds=intermediate_output_ttl)
         container_uuid = None
+        props = {"type": "intermediate"}
         if current_container:
-            container_uuid = current_container['uuid']
-        props = {"type": "intermediate", "container": container_uuid}
+            props["container_uuid"] = current_container['uuid']
 
         return {"name" : name, "trash_at" : trash_time, "properties" : props}
 
@@ -30,5 +32,20 @@ def get_current_container(api, num_retries=0, logger=None):
             if logger:
                 logger.info("Getting current container: %s", e)
             raise e
-            
+
     return current_container
+
+
+def common_prefix(firstfile, all_files):
+    common_parts = firstfile.split('/')
+    common_parts[-1] = ''
+    for f in all_files:
+        f_parts = f.split('/')
+        for index, (a, b) in enumerate(zip(common_parts, f_parts)):
+            if a != b:
+                common_parts = common_parts[:index + 1]
+                common_parts[-1] = ''
+                break
+        if not any(common_parts):
+            break
+    return '/'.join(common_parts)