summaryrefslogtreecommitdiff
path: root/wsme/spore.py
diff options
context:
space:
mode:
Diffstat (limited to 'wsme/spore.py')
-rw-r--r--wsme/spore.py64
1 files changed, 0 insertions, 64 deletions
diff --git a/wsme/spore.py b/wsme/spore.py
deleted file mode 100644
index 8de0ed2..0000000
--- a/wsme/spore.py
+++ /dev/null
@@ -1,64 +0,0 @@
-from wsme import types
-
-try:
- import simplejson as json
-except ImportError:
- import json # noqa
-
-
-def getdesc(root, host_url=''):
- methods = {}
-
- for path, funcdef in root.getapi():
- method = funcdef.extra_options.get('method', None)
- name = '_'.join(path)
- if method is not None:
- path = path[:-1]
- else:
- method = 'GET'
- for argdef in funcdef.arguments:
- if types.iscomplex(argdef.datatype) \
- or types.isarray(argdef.datatype) \
- or types.isdict(argdef.datatype):
- method = 'POST'
- break
-
- required_params = []
- optional_params = []
- for argdef in funcdef.arguments:
- if method == 'GET' and argdef.mandatory:
- required_params.append(argdef.name)
- else:
- optional_params.append(argdef.name)
-
- methods[name] = {
- 'method': method,
- 'path': '/'.join(path)
- }
- if required_params:
- methods[name]['required_params'] = required_params
- if optional_params:
- methods[name]['optional_params'] = optional_params
- if funcdef.doc:
- methods[name]['documentation'] = funcdef.doc
-
- formats = []
- for p in root.protocols:
- if p.name == 'restxml':
- formats.append('xml')
- if p.name == 'restjson':
- formats.append('json')
-
- api = {
- 'base_url': host_url + root._webpath,
- 'version': '0.1',
- 'name': getattr(root, 'name', 'name'),
- 'authority': '',
- 'formats': [
- 'json',
- 'xml'
- ],
- 'methods': methods
- }
-
- return json.dumps(api, indent=4)