setup.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. custom_files = [
  13. ( 'netron', [
  14. 'node_modules/protobufjs/dist/protobuf.js',
  15. 'node_modules/handlebars/dist/handlebars.js',
  16. 'node_modules/dagre-d3-renderer/dist/dagre-d3.core.js',
  17. 'node_modules/dagre-d3-renderer/dist/dagre-d3.js',
  18. 'node_modules/npm-font-open-sans/open-sans.css' ]),
  19. ( 'netron/fonts/Regular', [
  20. 'node_modules/npm-font-open-sans/fonts/Regular/OpenSans-Regular.eot',
  21. 'node_modules/npm-font-open-sans/fonts/Regular/OpenSans-Regular.svg',
  22. 'node_modules/npm-font-open-sans/fonts/Regular/OpenSans-Regular.ttf',
  23. 'node_modules/npm-font-open-sans/fonts/Regular/OpenSans-Regular.woff',
  24. 'node_modules/npm-font-open-sans/fonts/Regular/OpenSans-Regular.woff2' ]),
  25. ( 'netron/fonts/Semibold', [
  26. 'node_modules/npm-font-open-sans/fonts/Semibold/OpenSans-Semibold.eot',
  27. 'node_modules/npm-font-open-sans/fonts/Semibold/OpenSans-Semibold.svg',
  28. 'node_modules/npm-font-open-sans/fonts/Semibold/OpenSans-Semibold.ttf',
  29. 'node_modules/npm-font-open-sans/fonts/Semibold/OpenSans-Semibold.woff',
  30. 'node_modules/npm-font-open-sans/fonts/Semibold/OpenSans-Semibold.woff2' ]),
  31. ( 'netron/fonts/Bold', [
  32. 'node_modules/npm-font-open-sans/fonts/Bold/OpenSans-Bold.eot',
  33. 'node_modules/npm-font-open-sans/fonts/Bold/OpenSans-Bold.svg',
  34. 'node_modules/npm-font-open-sans/fonts/Bold/OpenSans-Bold.ttf',
  35. 'node_modules/npm-font-open-sans/fonts/Bold/OpenSans-Bold.woff',
  36. 'node_modules/npm-font-open-sans/fonts/Bold/OpenSans-Bold.woff2' ])
  37. ]
  38. class build_py(setuptools.command.build_py.build_py):
  39. def run(self):
  40. result = setuptools.command.build_py.build_py.run(self)
  41. for target, files in custom_files:
  42. target = os.path.join(self.build_lib, target)
  43. if not os.path.exists(target):
  44. os.makedirs(target)
  45. for file in files:
  46. self.copy_file(file, target)
  47. return result
  48. def get_outputs(self, include_bytecode=1):
  49. result = setuptools.command.build_py.build_py.get_outputs(self, include_bytecode)
  50. print("## get_outputs ##")
  51. return result
  52. packages = [ 'netron' ]
  53. package_data={
  54. 'netron': [
  55. 'netron',
  56. 'logo.svg',
  57. 'spinner.svg',
  58. 'onnx-ml.js',
  59. 'onnx-operator.json',
  60. 'favicon.ico',
  61. 'view-browser.html',
  62. 'view-browser.js',
  63. 'view-onnx.js',
  64. 'view-render.css',
  65. 'view-render.js',
  66. 'view-template.js',
  67. 'view.css',
  68. 'view.js',
  69. ]
  70. }
  71. install_requires = [ 'protobuf' ]
  72. scripts = [ 'src/netron' ]
  73. setuptools.setup(
  74. name="netron",
  75. version=package_version,
  76. description="Viewer for ONNX neural network models",
  77. license="MIT",
  78. cmdclass={ 'build_py': build_py },
  79. package_dir={ 'netron': 'src' },
  80. packages=packages,
  81. package_data=package_data,
  82. install_requires=install_requires,
  83. author='Lutz Roeder',
  84. author_email='[email protected]',
  85. url='https://github.com/lutzroeder/Netron',
  86. scripts=scripts,
  87. classifiers=[
  88. 'Intended Audience :: Developers',
  89. 'Intended Audience :: Science/Research',
  90. 'Topic :: Software Development',
  91. 'Topic :: Scientific/Engineering :: Artificial Intelligence'
  92. ]
  93. )