20933: Use [0-9] instead of \d in regex
[arvados.git] / sdk / python / arvados / commands / get.py
index c061c70f0eebbac2ed2025fdecd27865c27139b8..b37a8477acb1606e72516b1401b4a0fc5c718b60 100755 (executable)
@@ -6,6 +6,7 @@
 import argparse
 import hashlib
 import os
+import pathlib
 import re
 import string
 import sys
@@ -17,7 +18,6 @@ import arvados.util as util
 
 from arvados._version import __version__
 
-api_client = None
 logger = logging.getLogger('arvados.arv-get')
 
 parser = argparse.ArgumentParser(
@@ -146,8 +146,6 @@ def parse_arguments(arguments, stdout, stderr):
     return args
 
 def main(arguments=None, stdout=sys.stdout, stderr=sys.stderr):
-    global api_client
-
     if stdout is sys.stdout and hasattr(stdout, 'buffer'):
         # in Python 3, write to stdout as binary
         stdout = stdout.buffer
@@ -158,8 +156,7 @@ def main(arguments=None, stdout=sys.stdout, stderr=sys.stderr):
     request_id = arvados.util.new_request_id()
     logger.info('X-Request-Id: '+request_id)
 
-    if api_client is None:
-        api_client = arvados.api('v1', request_id=request_id)
+    api_client = arvados.api('v1', request_id=request_id, num_retries=args.retries)
 
     r = re.search(r'^(.*?)(/.*)?$', args.locator)
     col_loc = r.group(1)
@@ -201,8 +198,7 @@ def main(arguments=None, stdout=sys.stdout, stderr=sys.stderr):
     try:
         reader = arvados.CollectionReader(
             col_loc, api_client=api_client, num_retries=args.retries,
-            keep_client=arvados.keep.KeepClient(block_cache=arvados.keep.KeepBlockCache((args.threads+1)*64 * 1024 * 1024)),
-            get_threads=args.threads)
+            keep_client=arvados.keep.KeepClient(block_cache=arvados.keep.KeepBlockCache((args.threads+1)*64 * 1024 * 1024), num_prefetch_threads=args.threads))
     except Exception as error:
         logger.error("failed to read collection: {}".format(error))
         return 1
@@ -266,7 +262,7 @@ def main(arguments=None, stdout=sys.stdout, stderr=sys.stderr):
                     logger.error('Local file %s already exists.' % (outfilename,))
                     return 1
                 if args.r:
-                    arvados.util.mkdir_dash_p(os.path.dirname(outfilename))
+                    pathlib.Path(outfilename).parent.mkdir(parents=True, exist_ok=True)
                 try:
                     outfile = open(outfilename, 'wb')
                 except Exception as error:
@@ -290,7 +286,7 @@ def main(arguments=None, stdout=sys.stdout, stderr=sys.stderr):
                                        if todo_bytes==0
                                        else 100.0*out_bytes/todo_bytes)))
                     elif args.batch_progress:
-                        stderr.write('%s %d read %d total\n' %
+                        stderr.write('%s %d read %d total %d\n' %
                                      (sys.argv[0], os.getpid(),
                                       out_bytes, todo_bytes))
             if digestor: