mxnet-operator-json.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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 re
  8. import sys
  9. json_file = '../src/mxnet-operator.json'
  10. json_data = open(json_file).read()
  11. json_root = json.loads(json_data)
  12. for entry in json_root:
  13. name = entry['name']
  14. schema = entry['schema']
  15. class_name = 'mxnet.symbol.' + name
  16. class_definition = pydoc.locate(class_name)
  17. if not class_definition:
  18. print('NOT FOUND: ' + class_name)
  19. # raise Exception('\'' + class_name + '\' not found.')
  20. else:
  21. docstring = class_definition.__doc__
  22. if docstring:
  23. schema['description'] = docstring
  24. # if not docstring:
  25. # print('NO DOCSTRING: ' + class_name)
  26. # raise Exception('\'' + class_name + '\' missing __doc__.')
  27. # print(docstring)
  28. with io.open(json_file, 'w', newline='') as fout:
  29. json_data = json.dumps(json_root, sort_keys=True, indent=2)
  30. for line in json_data.splitlines():
  31. line = line.rstrip()
  32. if sys.version_info[0] < 3:
  33. line = unicode(line)
  34. fout.write(line)
  35. fout.write('\n')