setup.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #!/usr/bin/python
  2. import distutils
  3. import io
  4. import json
  5. import os
  6. import setuptools
  7. import setuptools.command.build_py
  8. node_dependencies = [
  9. ( 'netron', [
  10. 'node_modules/d3/dist/d3.min.js',
  11. 'node_modules/dagre/dist/dagre.min.js',
  12. 'node_modules/handlebars/dist/handlebars.min.js',
  13. 'node_modules/marked/marked.min.js',
  14. 'node_modules/protobufjs/dist/protobuf.min.js',
  15. 'node_modules/flatbuffers/js/flatbuffers.js',
  16. 'node_modules/npm-font-open-sans/open-sans.css' ]),
  17. ( 'netron/fonts/Regular', [
  18. 'node_modules/npm-font-open-sans/fonts/Regular/OpenSans-Regular.eot',
  19. 'node_modules/npm-font-open-sans/fonts/Regular/OpenSans-Regular.svg',
  20. 'node_modules/npm-font-open-sans/fonts/Regular/OpenSans-Regular.ttf',
  21. 'node_modules/npm-font-open-sans/fonts/Regular/OpenSans-Regular.woff',
  22. 'node_modules/npm-font-open-sans/fonts/Regular/OpenSans-Regular.woff2' ]),
  23. ( 'netron/fonts/Semibold', [
  24. 'node_modules/npm-font-open-sans/fonts/Semibold/OpenSans-Semibold.eot',
  25. 'node_modules/npm-font-open-sans/fonts/Semibold/OpenSans-Semibold.svg',
  26. 'node_modules/npm-font-open-sans/fonts/Semibold/OpenSans-Semibold.ttf',
  27. 'node_modules/npm-font-open-sans/fonts/Semibold/OpenSans-Semibold.woff',
  28. 'node_modules/npm-font-open-sans/fonts/Semibold/OpenSans-Semibold.woff2' ]),
  29. ( 'netron/fonts/Bold', [
  30. 'node_modules/npm-font-open-sans/fonts/Bold/OpenSans-Bold.eot',
  31. 'node_modules/npm-font-open-sans/fonts/Bold/OpenSans-Bold.svg',
  32. 'node_modules/npm-font-open-sans/fonts/Bold/OpenSans-Bold.ttf',
  33. 'node_modules/npm-font-open-sans/fonts/Bold/OpenSans-Bold.woff',
  34. 'node_modules/npm-font-open-sans/fonts/Bold/OpenSans-Bold.woff2' ])
  35. ]
  36. class build_py(setuptools.command.build_py.build_py):
  37. def run(self):
  38. result = setuptools.command.build_py.build_py.run(self)
  39. for target, files in node_dependencies:
  40. target = os.path.join(self.build_lib, target)
  41. if not os.path.exists(target):
  42. os.makedirs(target)
  43. for file in files:
  44. self.copy_file(file, target)
  45. return result
  46. def package_version():
  47. folder = os.path.realpath(os.path.dirname(__file__))
  48. with open(os.path.join(folder, 'package.json')) as package_file:
  49. package_manifest = json.load(package_file)
  50. return package_manifest['version']
  51. setuptools.setup(
  52. name="netron",
  53. version=package_version(),
  54. description="Viewer for neural network, deep learning and machine learning models",
  55. long_description='Netron is a viewer for neural network, deep learning and machine learning models.\n\n' +
  56. 'Netron supports **ONNX** (`.onnx`, `.pb`), **Keras** (`.h5`, `.keras`), **CoreML** (`.mlmodel`) and **TensorFlow Lite** (`.tflite`). Netron has experimental support for **Caffe** (`.caffemodel`), **Caffe2** (`predict_net.pb`), **MXNet** (`-symbol.json`), **TensorFlow.js** (`model.json`, `.pb`) and **TensorFlow** (`.pb`, `.meta`).',
  57. keywords=[
  58. 'onnx', 'keras', 'tensorflow', 'coreml', 'mxnet', 'caffe', 'caffe2',
  59. 'artificial intelligence', 'machine learning', 'deep learning', 'neural network',
  60. 'visualizer', 'viewer'
  61. ],
  62. license="MIT",
  63. cmdclass={
  64. 'build_py': build_py
  65. },
  66. package_dir={
  67. 'netron': 'src'
  68. },
  69. packages=[
  70. 'netron'
  71. ],
  72. package_data={
  73. 'netron': [
  74. 'netron', 'netron.py',
  75. 'logo.svg', 'spinner.svg', 'favicon.ico', 'icon.png',
  76. 'onnx-model.js', 'onnx.js', 'onnx-metadata.json',
  77. 'tf-model.js', 'tf.js', 'tf-metadata.json',
  78. 'tflite-model.js', 'tflite.js', 'tflite-metadata.json',
  79. 'keras-model.js', 'keras-metadata.json', 'hdf5.js',
  80. 'coreml-model.js', 'coreml-metadata.json', 'coreml.js',
  81. 'caffe-model.js', 'caffe-metadata.json', 'caffe.js',
  82. 'caffe2-model.js', 'caffe2-metadata.json', 'caffe2.js',
  83. 'mxnet-model.js', 'mxnet-metadata.json',
  84. 'view-browser.html', 'view-browser.js',
  85. 'view-render.css', 'view-render.js',
  86. 'view-node.css', 'view-node.js',
  87. 'view-template.js',
  88. 'view.js', 'view.css'
  89. ]
  90. },
  91. install_requires=[],
  92. author='Lutz Roeder',
  93. author_email='[email protected]',
  94. url='https://github.com/lutzroeder/Netron',
  95. scripts=[
  96. 'src/netron'
  97. ],
  98. classifiers=[
  99. 'Intended Audience :: Developers',
  100. 'Intended Audience :: Education',
  101. 'Intended Audience :: Science/Research',
  102. 'Programming Language :: Python :: 2',
  103. 'Programming Language :: Python :: 2.7',
  104. 'Programming Language :: Python :: 3',
  105. 'Programming Language :: Python :: 3.6',
  106. 'Topic :: Software Development',
  107. 'Topic :: Software Development :: Libraries',
  108. 'Topic :: Software Development :: Libraries :: Python Modules',
  109. 'Topic :: Scientific/Engineering',
  110. 'Topic :: Scientific/Engineering :: Mathematics',
  111. 'Topic :: Scientific/Engineering :: Artificial Intelligence',
  112. 'Topic :: Scientific/Engineering :: Visualization'
  113. ]
  114. )