setup.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import os
  4. import sys
  5. from setuptools import find_packages, setup
  6. from setuptools.command.test import test as TestCommand
  7. class PyTestCommand(TestCommand):
  8. user_options = [("pytest-args=", "a", "Arguments to pass to py.test")]
  9. def initialize_options(self):
  10. TestCommand.initialize_options(self)
  11. self.pytest_args = []
  12. def finalize_options(self):
  13. TestCommand.finalize_options(self)
  14. self.test_args = []
  15. self.test_suite = True
  16. def run_tests(self):
  17. import pytest # noqa
  18. errno = pytest.main(self.pytest_args)
  19. sys.exit(errno)
  20. def read(*parts):
  21. here = os.path.abspath(os.path.dirname(__file__))
  22. with open(os.path.join(here, *parts), "r") as fp:
  23. return fp.read()
  24. long_description = read("README.md")
  25. install_requires = [
  26. "alembic",
  27. "amqp",
  28. "attrs",
  29. "Babel",
  30. "billiard",
  31. "blinker",
  32. "celery",
  33. "certifi",
  34. "chardet",
  35. "click",
  36. "click-log",
  37. "enum34",
  38. "Flask",
  39. "Flask-Alembic",
  40. "flask-allows",
  41. "Flask-BabelPlus",
  42. "Flask-Caching",
  43. "Flask-DebugToolbar",
  44. "flask-debugtoolbar-warnings",
  45. "Flask-Limiter",
  46. "Flask-Login",
  47. "Flask-Mail",
  48. "Flask-Redis",
  49. "Flask-SQLAlchemy",
  50. "Flask-Themes2",
  51. "flask-whooshee",
  52. "Flask-WTF",
  53. "flaskbb-plugin-conversations",
  54. "flaskbb-plugin-portal",
  55. "idna",
  56. "itsdangerous",
  57. "Jinja2",
  58. "kombu",
  59. "limits",
  60. "Mako",
  61. "MarkupSafe",
  62. "mistune",
  63. "olefile",
  64. "Pillow",
  65. "pluggy",
  66. "Pygments",
  67. "python-dateutil",
  68. "python-editor",
  69. "pytz",
  70. "redis",
  71. "requests",
  72. "simplejson",
  73. "six",
  74. "speaklater",
  75. "SQLAlchemy",
  76. "SQLAlchemy-Utils",
  77. "Unidecode",
  78. "urllib3",
  79. "vine",
  80. "Werkzeug",
  81. "Whoosh",
  82. "WTForms",
  83. ]
  84. extras_require = {"postgres": ["psycopg2-binary"]}
  85. tests_require = ["py", "pytest", "pytest-cov", "cov-core", "coverage"]
  86. setup(
  87. name="FlaskBB",
  88. version="2.0.1",
  89. url="https://flaskbb.org",
  90. project_urls={
  91. "Documentation": "https://flaskbb.readthedocs.io/en/latest/",
  92. "Code": "https://github.com/flaskbb/flaskbb",
  93. "Issue Tracker": "https://github.com/flaskbb/flaskbb",
  94. },
  95. license="BSD",
  96. author="Peter Justin",
  97. author_email="peter.justin@outlook.com",
  98. description="A classic Forum Software in Python using Flask.",
  99. long_description=long_description,
  100. long_description_content_type="text/markdown",
  101. packages=find_packages(),
  102. include_package_data=True,
  103. zip_safe=False,
  104. platforms="any",
  105. entry_points="""
  106. [console_scripts]
  107. flaskbb=flaskbb.cli:flaskbb
  108. """,
  109. python_requires=">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
  110. install_requires=install_requires,
  111. extras_require=extras_require,
  112. tests_require=tests_require,
  113. test_suite="tests",
  114. classifiers=[
  115. "Development Status :: 4 - Beta",
  116. "Environment :: Web Environment",
  117. "Intended Audience :: Developers",
  118. "Intended Audience :: End Users/Desktop",
  119. "License :: OSI Approved :: BSD License",
  120. "Operating System :: OS Independent",
  121. "Programming Language :: Python",
  122. "Programming Language :: Python :: 3",
  123. "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
  124. "Topic :: Software Development :: Libraries :: Python Modules",
  125. ],
  126. cmdclass={"test": PyTestCommand},
  127. )