all: add yaml support
This commit is contained in:
@@ -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))
|
||||
|
Reference in New Issue
Block a user