/setup.py

https://github.com/jupyter/nbgrader · Python · 108 lines · 90 code · 10 blank · 8 comment · 17 complexity · 8514ea25c0c5b94bf475d268be456993 MD5 · raw file

  1. #!/usr/bin/env python
  2. # coding: utf-8
  3. # Copyright (c) Jupyter Development Team.
  4. # Distributed under the terms of the Modified BSD License.
  5. import os
  6. from setuptools import setup, find_packages
  7. # get paths to all the extension files
  8. extension_files = []
  9. for (dirname, dirnames, filenames) in os.walk("nbgrader/nbextensions"):
  10. root = os.path.relpath(dirname, "nbgrader")
  11. for filename in filenames:
  12. if filename.endswith(".pyc"):
  13. continue
  14. extension_files.append(os.path.join(root, filename))
  15. # get paths to all the docs
  16. docs_files = []
  17. for (dirname, dirnames, filenames) in os.walk("nbgrader/docs"):
  18. root = os.path.relpath(dirname, "nbgrader")
  19. if root.startswith(os.path.join("docs", "build")):
  20. continue
  21. if "__pycache__" in root:
  22. continue
  23. for filename in filenames:
  24. if filename.endswith(".pyc"):
  25. continue
  26. docs_files.append(os.path.join(root, filename))
  27. # get paths to all the static files and templates
  28. static_files = []
  29. for (dirname, dirnames, filenames) in os.walk("nbgrader/server_extensions/formgrader/static"):
  30. root = os.path.relpath(dirname, "nbgrader/server_extensions/formgrader")
  31. for filename in filenames:
  32. static_files.append(os.path.join(root, filename))
  33. for (dirname, dirnames, filenames) in os.walk("nbgrader/server_extensions/formgrader/templates"):
  34. root = os.path.relpath(dirname, "nbgrader/server_extensions/formgrader")
  35. for filename in filenames:
  36. static_files.append(os.path.join(root, filename))
  37. # get paths to all the alembic files
  38. alembic_files = ["alembic.ini"]
  39. for (dirname, dirnames, filenames) in os.walk("nbgrader/alembic"):
  40. root = os.path.relpath(dirname, "nbgrader")
  41. for filename in filenames:
  42. if filename.endswith(".pyc"):
  43. continue
  44. alembic_files.append(os.path.join(root, filename))
  45. name = u'nbgrader'
  46. here = os.path.abspath(os.path.dirname(__file__))
  47. version_ns = {}
  48. with open(os.path.join(here, name, '_version.py')) as f:
  49. exec(f.read(), {}, version_ns)
  50. setup_args = dict(
  51. name=name,
  52. version=version_ns['__version__'],
  53. description='A system for assigning and grading notebooks',
  54. author='Jupyter Development Team',
  55. author_email='jupyter@googlegroups.com',
  56. license='BSD',
  57. url='https://github.com/jupyter/nbgrader',
  58. keywords=['Notebooks', 'Grading', 'Homework'],
  59. classifiers=[
  60. 'License :: OSI Approved :: BSD License',
  61. 'Programming Language :: Python',
  62. 'Programming Language :: Python :: 3',
  63. 'Programming Language :: Python :: 3.5',
  64. 'Programming Language :: Python :: 3.6',
  65. ],
  66. packages=find_packages(),
  67. package_data={
  68. 'nbgrader': extension_files + docs_files + alembic_files,
  69. 'nbgrader.nbgraderformat': ["*.json"],
  70. 'nbgrader.server_extensions.formgrader': static_files,
  71. 'nbgrader.tests': [
  72. 'apps/files/*',
  73. 'nbextensions/files/*',
  74. 'preprocessors/files/*'
  75. ]
  76. },
  77. entry_points={
  78. 'console_scripts': ['nbgrader=nbgrader.apps.nbgraderapp:main']
  79. },
  80. install_requires=[
  81. "sqlalchemy",
  82. "python-dateutil",
  83. "jupyter",
  84. "notebook>=4.2",
  85. "nbconvert==5.6.1",
  86. "nbformat",
  87. "traitlets==4.3.3",
  88. "jupyter_core",
  89. "jupyter_client",
  90. "tornado",
  91. "requests",
  92. "jsonschema",
  93. "alembic",
  94. "rapidfuzz"
  95. ]
  96. )
  97. if __name__ == "__main__":
  98. setup(**setup_args)