44 lines
856 B
Python
44 lines
856 B
Python
#!/usr/bin/env python3
|
|
import json
|
|
from pathlib import Path
|
|
from sys import argv
|
|
|
|
|
|
NUM = 1
|
|
|
|
|
|
def transform_obj(obj: dict) -> str:
|
|
global NUM
|
|
|
|
output = {}
|
|
|
|
for k, v in obj.items():
|
|
if isinstance(v, dict):
|
|
output[k] = transform_obj(v)
|
|
|
|
elif isinstance(v, list):
|
|
if len(v) == 0:
|
|
output[k] = 'list'
|
|
elif isinstance(v[0], dict):
|
|
output[k] = f'list[{transform_obj(v[0])}]'
|
|
else:
|
|
output[k] = f'list[{type(v[0])}]'
|
|
|
|
else:
|
|
output[k] = type(v).__name__
|
|
|
|
name = f'Type{NUM}'
|
|
NUM += 1
|
|
|
|
print(f'class {name}:' + ''.join(f'\n {k}: {v}' for k, v in output.items()))
|
|
print()
|
|
|
|
return name
|
|
|
|
|
|
if __name__ == '__main__':
|
|
file = Path(argv[1])
|
|
|
|
obj = json.loads(file.read_text())
|
|
transform_obj(obj)
|