setup.py 4.4 KB

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