diff options
author | Gard Spreemann <gspr@nonempty.org> | 2020-06-13 10:29:20 +0200 |
---|---|---|
committer | Gard Spreemann <gspr@nonempty.org> | 2020-06-13 10:29:20 +0200 |
commit | 526419f614e1e695b23a88c5f695adebd5b237dc (patch) | |
tree | bbec7938c9b3f277df3f3017f191f8812112db42 | |
parent | f14ff735dee24d2011da46682595005bfcddce8e (diff) | |
parent | 127331bfa39c411d4994aadf0d3e1bb973575239 (diff) |
Merge tag 'upstream/0.2.9' into debian/sid
Upstream 0.2.9 tarball as released on PyPI.
-rw-r--r-- | PKG-INFO | 2 | ||||
-rw-r--r-- | cdsapi.egg-info/PKG-INFO | 2 | ||||
-rw-r--r-- | cdsapi/api.py | 21 | ||||
-rw-r--r-- | setup.py | 2 |
4 files changed, 21 insertions, 6 deletions
@@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: cdsapi -Version: 0.2.7 +Version: 0.2.9 Summary: Climate Data Store API Home-page: https://software.ecmwf.int/stash/projects/CDS/repos/cdsapi Author: ECMWF diff --git a/cdsapi.egg-info/PKG-INFO b/cdsapi.egg-info/PKG-INFO index 3498dd5..30e252e 100644 --- a/cdsapi.egg-info/PKG-INFO +++ b/cdsapi.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: cdsapi -Version: 0.2.7 +Version: 0.2.9 Summary: Climate Data Store API Home-page: https://software.ecmwf.int/stash/projects/CDS/repos/cdsapi Author: ECMWF diff --git a/cdsapi/api.py b/cdsapi/api.py index 1c8e598..70efa25 100644 --- a/cdsapi/api.py +++ b/cdsapi/api.py @@ -192,6 +192,16 @@ class Result(object): self.debug(metadata.headers) return metadata + def update(self, request_id=None): + if request_id is None: + request_id = self.reply['request_id'] + task_url = '%s/tasks/%s' % (self._url, request_id) + self.debug("GET %s", task_url) + + result = self.robust(self.session.get)(task_url, verify=self.verify) + result.raise_for_status() + self.reply = result.json() + def delete(self): if self._deleted: @@ -238,6 +248,7 @@ class Client(object): delete=True, retry_max=500, sleep_max=120, + wait_until_complete=True, info_callback=None, warning_callback=None, error_callback=None, @@ -287,6 +298,7 @@ class Client(object): self.full_stack = full_stack self.delete = delete self.last_state = None + self.wait_until_complete = wait_until_complete self.debug_callback = debug_callback self.warning_callback = warning_callback @@ -329,11 +341,11 @@ class Client(object): result = self._api('%s/tasks/services/%s/clientid-%s' % (self.url, name, uuid.uuid4().hex), request, 'PUT') return result - def workflow(self, code, *args, **kwargs): + def workflow(self, code, *args, workflow_name='application', **kwargs): params = dict(code=code, args=args, kwargs=kwargs, - workflow_name='application') + workflow_name=workflow_name) return self.service("tool.toolbox.orchestrator.run_workflow", params) def status(self, context=None): @@ -411,6 +423,9 @@ class Client(object): else: raise + if not self.wait_until_complete: + return Result(self, reply) + sleep = 1 while True: @@ -548,7 +563,7 @@ class Client(object): while tries < self.retry_max: try: r = call(*args, **kwargs) - except requests.exceptions.ConnectionError as e: + except (requests.exceptions.ConnectionError, requests.exceptions.ReadTimeout) as e: r = None self.warning("Recovering from connection error [%s], attemps %s of %s", e, tries, self.retry_max) @@ -30,7 +30,7 @@ def read(fname): return io.open(file_path, encoding='utf-8').read() -version = '0.2.7' +version = '0.2.9' setuptools.setup( |