summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaudouin Raoult <baudouin.raoult@ecmwf.int>2020-03-27 13:33:18 +0000
committerBaudouin Raoult <baudouin.raoult@ecmwf.int>2020-03-27 13:33:18 +0000
commit2967cce7c54615c2e9576ae15d2e3b004b667cdc (patch)
tree6caaa6714963946e2d23c32fdfc84fdb977dac85
parenta656204578341cfc994a4772496b5aca1d823d49 (diff)
Add support for API metadata
-rw-r--r--cdsapi/api.py11
-rw-r--r--setup.py2
2 files changed, 10 insertions, 3 deletions
diff --git a/cdsapi/api.py b/cdsapi/api.py
index 80eaa59..c26378f 100644
--- a/cdsapi/api.py
+++ b/cdsapi/api.py
@@ -242,6 +242,7 @@ class Client(object):
warning_callback=None,
error_callback=None,
debug_callback=None,
+ metadata=None,
):
if not quiet:
@@ -294,6 +295,8 @@ class Client(object):
self.session = requests.Session()
self.session.auth = tuple(self.key.split(':', 2))
+ self.metadata = metadata
+
self.debug("CDSAPI %s", dict(url=self.url,
key=self.key,
quiet=self.quiet,
@@ -303,7 +306,8 @@ class Client(object):
sleep_max=self.sleep_max,
retry_max=self.retry_max,
full_stack=self.full_stack,
- delete=self.delete
+ delete=self.delete,
+ metadata=self.metadata,
))
def retrieve(self, name, request, target=None):
@@ -315,7 +319,10 @@ class Client(object):
def service(self, name, *args, **kwargs):
self.delete = False # Don't delete results
name = '/'.join(name.split('.'))
- request = toJSON(dict(args=args, kwargs=kwargs))
+ request = dict(args=args, kwargs=kwargs)
+ if self.metadata:
+ request['_cds_metadata'] = self.metadata
+ request = toJSON(request)
result = self._api('%s/tasks/services/%s/clientid-%s' % (self.url, name, uuid.uuid4().hex), request, 'PUT')
return result
diff --git a/setup.py b/setup.py
index d1d74bd..3fe3449 100644
--- a/setup.py
+++ b/setup.py
@@ -30,7 +30,7 @@ def read(fname):
return io.open(file_path, encoding='utf-8').read()
-version = '0.2.5'
+version = '0.2.6'
setuptools.setup(