diff options
author | Gard Spreemann <gspr@nonempty.org> | 2020-09-17 10:16:07 +0200 |
---|---|---|
committer | Gard Spreemann <gspr@nonempty.org> | 2020-09-17 10:16:07 +0200 |
commit | 9dcb8dd753a8707e2b805cebe399e7efde8cd6f2 (patch) | |
tree | 1677e9f779351dbe3cca5914f18f24ad7c6cc4ab /cdsapi | |
parent | 0a665db9c21d7d63b5c6134e38c7ad85713ed71c (diff) | |
parent | 4174479e682897af6d917831e2ca460d889536f7 (diff) |
Merge tag 'upstream/0.3.1' into debian/sid
Upstream 0.3.1 tarball as released on PyPI.
Diffstat (limited to 'cdsapi')
-rw-r--r-- | cdsapi/api.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/cdsapi/api.py b/cdsapi/api.py index 2bd5c14..5726489 100644 --- a/cdsapi/api.py +++ b/cdsapi/api.py @@ -109,7 +109,7 @@ class Result(object): while tries < self.retry_max: - r = self.robust(requests.get)(url, + r = self.robust(self.session.get)(url, stream=True, verify=self.verify, headers=headers, @@ -255,6 +255,7 @@ class Client(object): debug_callback=None, metadata=None, forget=False, + session=requests.Session() ): if not quiet: @@ -305,7 +306,7 @@ class Client(object): self.info_callback = info_callback self.error_callback = error_callback - self.session = requests.Session() + self.session = session self.session.auth = tuple(self.key.split(':', 2)) self.metadata = metadata @@ -331,10 +332,15 @@ class Client(object): result.download(target) return result - def service(self, name, *args, **kwargs): + def service(self, name, *args, mimic_ui=False, **kwargs): self.delete = False # Don't delete results name = '/'.join(name.split('.')) - request = dict(args=args, kwargs=kwargs) + # To mimic the CDS ui the request should be populated directly with the kwargs + if mimic_ui: + request = kwargs + else: + request = dict(args=args, kwargs=kwargs) + if self.metadata: request['_cds_metadata'] = self.metadata request = toJSON(request) @@ -351,7 +357,7 @@ class Client(object): def status(self, context=None): url = '%s/status.json' % (self.url,) - r = requests.get(url, verify=self.verify) + r = self.session.get(url, verify=self.verify) r.raise_for_status() return r.json() |