X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/78722718f1369094e4cc9216f14c846c3b614e7d..13345f2805097df138faf7fcd1f0ed31a0d948fb:/sdk/python/arvados/commands/put.py diff --git a/sdk/python/arvados/commands/put.py b/sdk/python/arvados/commands/put.py index 4398c5bca6..d67cf8494b 100644 --- a/sdk/python/arvados/commands/put.py +++ b/sdk/python/arvados/commands/put.py @@ -160,11 +160,7 @@ class ResumeCache(object): os.chmod(cls.CACHE_DIR, 0o700) def __init__(self, file_spec): - try: - self.cache_file = open(file_spec, 'a+') - except TypeError: - file_spec = self.make_path(file_spec) - self.cache_file = open(file_spec, 'a+') + self.cache_file = open(file_spec, 'a+') self._lock_file(self.cache_file) self.filename = self.cache_file.name @@ -229,27 +225,26 @@ class ArvPutCollectionWriter(arvados.ResumableCollectionWriter): def __init__(self, cache=None, reporter=None, bytes_expected=None): self.bytes_written = 0 - self.__init_locals__(cache, reporter, bytes_expected) - super(ArvPutCollectionWriter, self).__init__() - - def __init_locals__(self, cache, reporter, bytes_expected): self.cache = cache self.report_func = reporter self.bytes_expected = bytes_expected + super(ArvPutCollectionWriter, self).__init__() @classmethod def from_cache(cls, cache, reporter=None, bytes_expected=None): try: state = cache.load() state['_data_buffer'] = [base64.decodestring(state['_data_buffer'])] - writer = cls.from_state(state) + writer = cls.from_state(state, cache, reporter, bytes_expected) except (TypeError, ValueError, arvados.errors.StaleWriterStateError) as error: return cls(cache, reporter, bytes_expected) else: - writer.__init_locals__(cache, reporter, bytes_expected) return writer + def preresume_hook(self): + print >>sys.stderr, "arv-put: Resuming previous upload. Bypass with the --no-resume option." + def checkpoint_state(self): if self.cache is None: return @@ -292,9 +287,9 @@ def machine_progress(bytes_written, bytes_expected): def human_progress(bytes_written, bytes_expected): if bytes_expected: - return "\r{}M / {}M {:.1f}% ".format( + return "\r{}M / {}M {:.1%} ".format( bytes_written >> 20, bytes_expected >> 20, - bytes_written / bytes_expected) + float(bytes_written) / bytes_expected) else: return "\r{} ".format(bytes_written) @@ -315,7 +310,7 @@ def main(arguments=None): reporter = None try: - resume_cache = ResumeCache(args) + resume_cache = ResumeCache(ResumeCache.make_path(args)) if not args.resume: resume_cache.restart() except ResumeCacheConflict: