parent
b4c4da647e
commit
c547a9628f
1 changed files with 0 additions and 53 deletions
@ -1,53 +0,0 @@ |
|||||||
import re |
|
||||||
|
|
||||||
TYPE_MAP = { |
|
||||||
'Text': 'str', |
|
||||||
'Bool': 'bool', |
|
||||||
'Int8': 'int', |
|
||||||
'Int16': 'int', |
|
||||||
'UInt32': 'int', |
|
||||||
'UInt64': 'int', |
|
||||||
'Float32': 'float', |
|
||||||
'Data': 'bytes', |
|
||||||
'List': 'list', |
|
||||||
} |
|
||||||
|
|
||||||
TXT = """ |
|
||||||
""" |
|
||||||
|
|
||||||
if __name__ == '__main__': |
|
||||||
|
|
||||||
if not TXT.strip(): |
|
||||||
TXT = input('Paste one struct only') |
|
||||||
|
|
||||||
in_struct = False |
|
||||||
|
|
||||||
builder = [] |
|
||||||
|
|
||||||
for line in TXT.splitlines(): |
|
||||||
line = line.strip() |
|
||||||
if re.search(':.*;', line): |
|
||||||
if not in_struct: |
|
||||||
# print(line) |
|
||||||
name, typ, cmt = re.search('([a-zA-Z]+)\s*@\s*\d+\s*:\s*([a-zA-Z0-9\(\)]+)(?:.*#(.*))?', line.strip()).groups() # type: ignore # noqa |
|
||||||
# print((name, typ, cmt)) |
|
||||||
if name.endswith('DEPRECATED'): |
|
||||||
continue |
|
||||||
|
|
||||||
if 'List' in typ: |
|
||||||
second_typ = typ.split("(")[1][:-1] |
|
||||||
typ = f'list[{TYPE_MAP.get(second_typ, second_typ)}]' |
|
||||||
|
|
||||||
new_typ = TYPE_MAP.get(typ, typ) |
|
||||||
# print(f' {name}: {new_typ} = auto_field()') |
|
||||||
# print() |
|
||||||
new_cmt = f' # {cmt.strip()}' if cmt else '' |
|
||||||
builder.append(f' {name}: {new_typ} = auto_field(){new_cmt}') |
|
||||||
elif re.search('{', line): |
|
||||||
in_struct = True |
|
||||||
elif re.search('}', line): |
|
||||||
in_struct = False |
|
||||||
elif line == '': |
|
||||||
builder.append('') |
|
||||||
|
|
||||||
print('\n'.join(builder)) |
|
Loading…
Reference in new issue