all: add yaml support

This commit is contained in:
2018-12-12 15:47:36 +01:00
parent 23f054d3b8
commit 2f20fa80bd

View File

@@ -3,6 +3,7 @@ import sys
import inflection
import requests
import yaml
with open('prelude.py') as f:
@@ -14,7 +15,10 @@ reserved = dir(__builtins__)
def download(url):
return requests.get(url).json()
res = requests.get(url)
if url.endswith('.json'):
return res.json()
return yaml.parse(res)
def mkname(method, name, params):
@@ -38,23 +42,26 @@ def mkparam(param, data):
param = data
for key in keys:
param = param[key]
name = param["name"]
return param
def mkvarname(name):
name = inflection.underscore(name)
name = name.replace("$", "")
if name in reserved:
name = "{}_".format(name)
param["name"] = name
return param
return name
def mkkwargs(params):
for param in params:
name = param['name']
if param['required']:
yield name
yield mkvarname(name)
for param in params:
name = param['name']
if not param['required']:
yield "{}=None".format(name)
yield "{}=None".format(mkvarname(name))
def getparams(params, where):
@@ -69,7 +76,7 @@ def mkparams(params, where):
ps = getparams(params, where)
if not ps:
return None
return '{{\n{}\n }}'.format(',\n'.join(' "{}": {}'.format(p, p) for p in ps))
return '{{\n{}\n }}'.format(',\n'.join(' "{}": {}'.format(p, mkvarname(p)) for p in ps))
def pretty_print(name, data):
@@ -85,7 +92,7 @@ def pretty_print(name, data):
fmt = r2.sub('{}', path)
paramdef = [mkparam(param, data) for param in body.get('parameters', [])]
name = r.sub('', path).replace("/", "_").replace('-', '_')[1:]
params = [p["name"] for p in paramdef]
params = [mkvarname(p["name"]) for p in paramdef]
name = mkname(method, name, params)
params = ", {}".format(", ".join(mkkwargs(paramdef))) if params else ''
print(' def {}(self{}):'.format(name, params))