From 54eebf109fbc60b93d9800513c1825f00875d17f Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 16 Nov 2021 16:28:04 +0800 Subject: [PATCH] 1 --- scripts/mydoc/mydoc.py | 53 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 5 deletions(-) diff --git a/scripts/mydoc/mydoc.py b/scripts/mydoc/mydoc.py index dd29aa8..5047a66 100644 --- a/scripts/mydoc/mydoc.py +++ b/scripts/mydoc/mydoc.py @@ -49,11 +49,54 @@ class MyDoc(object): return '"%s"' % (val) return val def outRsp(item, ident): - self._wf.write(' * %s"%s": %s, //%s\n' % - (''.join([' ' for i in range(ident)]), - item[0], - getJsonValue(item[1]), - item[2])) + if isinstance(item[1], list): + if item[0].find('!') != -1: + self._wf.write(' * %s"%s": [ //%s\n' % + (''.join([' ' for i in range(ident)]), + item[0].replace('!', ''), + item[2])) + if len(item[1]) == 1: + if type(item[1]) in (int, float, str): + self._wf.write(' * %s%s\n' % + (''.join([' ' for i in range(ident + 1)]), + getJsonValue(item[1][0]))) + elif type(item[1][0]) in (list,): + self._wf.write(' * %s{\n' % + (''.join([' ' for i in range(ident + 1)]), + )) + outRsp(item[1][0], ident + 2) + self._wf.write(' * %s}\n' % + (''.join([' ' for i in range(ident + 1)]), + )) + else: + [outRsp(p, ident + 1) for p in item[1][0].fields] + else: + self._wf.write(' * %s{\n' % + (''.join([' ' for i in range(ident + 1)]), + )) + for subitem in item[1]: + outRsp(subitem, ident + 2) + self._wf.write(' * %s}\n' % + (''.join([' ' for i in range(ident + 1)]), + )) + self._wf.write(' * %s]\n' % (''.join([' ' for i in range(ident)]))) + else: + self._wf.write(' * %s"%s": { //%s\n' % + (''.join([' ' for i in range(ident)]), + item[0], + item[2])) + for subitem in item[1]: + outRsp(subitem, ident + 2) + self._wf.write(' * %s}\n' % (''.join([' ' for i in range(ident)]))) + else: + if type(item[1]) in (int, float, str): + self._wf.write(' * %s"%s": %s, //%s\n' % + (''.join([' ' for i in range(ident)]), + item[0], + getJsonValue(item[1]), + item[2])) + else: + [outRsp(p, 1) for p in item[1].fields] for item in c.apis: self._wf.write('\n /**\n')