all: add yaml support
This commit is contained in:
@@ -3,6 +3,7 @@ import sys
|
|||||||
|
|
||||||
import inflection
|
import inflection
|
||||||
import requests
|
import requests
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
|
||||||
with open('prelude.py') as f:
|
with open('prelude.py') as f:
|
||||||
@@ -14,7 +15,10 @@ reserved = dir(__builtins__)
|
|||||||
|
|
||||||
|
|
||||||
def download(url):
|
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):
|
def mkname(method, name, params):
|
||||||
@@ -38,23 +42,26 @@ def mkparam(param, data):
|
|||||||
param = data
|
param = data
|
||||||
for key in keys:
|
for key in keys:
|
||||||
param = param[key]
|
param = param[key]
|
||||||
name = param["name"]
|
return param
|
||||||
|
|
||||||
|
|
||||||
|
def mkvarname(name):
|
||||||
name = inflection.underscore(name)
|
name = inflection.underscore(name)
|
||||||
|
name = name.replace("$", "")
|
||||||
if name in reserved:
|
if name in reserved:
|
||||||
name = "{}_".format(name)
|
name = "{}_".format(name)
|
||||||
param["name"] = name
|
return name
|
||||||
return param
|
|
||||||
|
|
||||||
|
|
||||||
def mkkwargs(params):
|
def mkkwargs(params):
|
||||||
for param in params:
|
for param in params:
|
||||||
name = param['name']
|
name = param['name']
|
||||||
if param['required']:
|
if param['required']:
|
||||||
yield name
|
yield mkvarname(name)
|
||||||
for param in params:
|
for param in params:
|
||||||
name = param['name']
|
name = param['name']
|
||||||
if not param['required']:
|
if not param['required']:
|
||||||
yield "{}=None".format(name)
|
yield "{}=None".format(mkvarname(name))
|
||||||
|
|
||||||
|
|
||||||
def getparams(params, where):
|
def getparams(params, where):
|
||||||
@@ -69,7 +76,7 @@ def mkparams(params, where):
|
|||||||
ps = getparams(params, where)
|
ps = getparams(params, where)
|
||||||
if not ps:
|
if not ps:
|
||||||
return None
|
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):
|
def pretty_print(name, data):
|
||||||
@@ -85,7 +92,7 @@ def pretty_print(name, data):
|
|||||||
fmt = r2.sub('{}', path)
|
fmt = r2.sub('{}', path)
|
||||||
paramdef = [mkparam(param, data) for param in body.get('parameters', [])]
|
paramdef = [mkparam(param, data) for param in body.get('parameters', [])]
|
||||||
name = r.sub('', path).replace("/", "_").replace('-', '_')[1:]
|
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)
|
name = mkname(method, name, params)
|
||||||
params = ", {}".format(", ".join(mkkwargs(paramdef))) if params else ''
|
params = ", {}".format(", ".join(mkkwargs(paramdef))) if params else ''
|
||||||
print(' def {}(self{}):'.format(name, params))
|
print(' def {}(self{}):'.format(name, params))
|
||||||
|
Reference in New Issue
Block a user