pytorch-metadata.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env python
  2. from __future__ import unicode_literals
  3. from __future__ import print_function
  4. import io
  5. import json
  6. import pydoc
  7. import os
  8. import re
  9. import sys
  10. json_file = '../../src/pytorch-metadata.json'
  11. json_data = open(json_file).read()
  12. json_root = json.loads(json_data)
  13. schema_map = {}
  14. for entry in json_root:
  15. name = entry['name']
  16. schema = entry['schema']
  17. schema_map[name] = schema
  18. for entry in json_root:
  19. name = entry['name']
  20. schema = entry['schema']
  21. if 'package' in schema:
  22. class_name = schema['package'] + '.' + name
  23. print(class_name)
  24. class_definition = pydoc.locate(class_name)
  25. if not class_definition:
  26. raise Exception('\'' + class_name + '\' not found.')
  27. docstring = class_definition.__doc__
  28. if not docstring:
  29. raise Exception('\'' + class_name + '\' missing __doc__.')
  30. print(docstring)
  31. with io.open(json_file, 'w', newline='') as fout:
  32. json_data = json.dumps(json_root, sort_keys=True, indent=2)
  33. for line in json_data.splitlines():
  34. line = line.rstrip()
  35. if sys.version_info[0] < 3:
  36. line = unicode(line)
  37. fout.write(line)
  38. fout.write('\n')