setup.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  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>=1.4.3",
  27. "amqp>=5.0.2",
  28. "attrs>=20.3.0",
  29. "Babel>=2.9.0",
  30. "billiard>=3.6.3.0",
  31. "blinker>=1.4",
  32. "celery>=5.0.2",
  33. "certifi>=2020.11.8",
  34. "chardet>=3.0.4",
  35. "click>=7.1.2",
  36. "click-log>=0.3.2",
  37. "dnspython>=2.0.0",
  38. "email-validator>=1.1.2",
  39. "Flask>=1.1.2",
  40. "Flask-Alembic>=2.0.1",
  41. "flask-allows @ git+https://github.com/justanr/flask-allows.git@f/Cut-down-on-warnings#egg=flask-allows",
  42. "Flask-BabelPlus>=2.2.0",
  43. "Flask-Caching>=1.9.0",
  44. "Flask-DebugToolbar>=0.11.0",
  45. "flask-debugtoolbar-warnings>=0.1.0",
  46. "Flask-Limiter>=1.4",
  47. "Flask-Login>=0.5.0",
  48. "Flask-Mail>=0.9.1",
  49. "flask-redis>=0.4.0",
  50. "Flask-SQLAlchemy>=2.4.4",
  51. "Flask-Themes2>=0.1.5",
  52. "flask-whooshee>=0.7.0",
  53. "Flask-WTF>=0.14.3",
  54. "flaskbb-plugin-conversations>=1.0.7",
  55. "flaskbb-plugin-portal>=1.1.3",
  56. "future>=0.18.2",
  57. "idna>=2.10",
  58. "itsdangerous>=1.1.0",
  59. "Jinja2>=2.11.2",
  60. "kombu>=5.0.2",
  61. "limits>=1.5.1",
  62. "Mako>=1.1.3",
  63. "MarkupSafe>=1.1.1",
  64. "mistune>=0.8.4",
  65. "olefile>=0.46",
  66. "Pillow>=8.0.1",
  67. "pluggy>=0.13.1",
  68. "Pygments>=2.7.2",
  69. "python-dateutil>=2.8.1",
  70. "python-editor>=1.0.4",
  71. "pytz>=2020.4",
  72. "redis>=3.5.3",
  73. "requests>=2.25.0",
  74. "simplejson>=3.17.2",
  75. "six>=1.15.0",
  76. "speaklater>=1.3",
  77. "SQLAlchemy>=1.3.20",
  78. "SQLAlchemy-Utils>=0.36.8",
  79. "Unidecode>=1.1.1",
  80. "urllib3>=1.26.2",
  81. "vine>=5.0.0",
  82. "Werkzeug>=1.0.1",
  83. "Whoosh>=2.7.4",
  84. "WTForms>=2.3.3",
  85. "WTForms-SQLAlchemy>=0.2",
  86. ]
  87. extras_require = {"postgres": ["psycopg2-binary"]}
  88. tests_require = ["py", "pytest", "pytest-cov", "cov-core", "coverage"]
  89. setup(
  90. name="FlaskBB",
  91. version="2.0.2",
  92. url="https://flaskbb.org",
  93. project_urls={
  94. "Documentation": "https://flaskbb.readthedocs.io/en/latest/",
  95. "Code": "https://github.com/flaskbb/flaskbb",
  96. "Issue Tracker": "https://github.com/flaskbb/flaskbb",
  97. },
  98. license="BSD",
  99. author="Peter Justin",
  100. author_email="peter.justin@outlook.com",
  101. description="A classic Forum Software in Python using Flask.",
  102. long_description=long_description,
  103. long_description_content_type="text/markdown",
  104. packages=find_packages(),
  105. include_package_data=True,
  106. zip_safe=False,
  107. platforms="any",
  108. entry_points="""
  109. [console_scripts]
  110. flaskbb=flaskbb.cli:flaskbb
  111. """,
  112. python_requires=">3.5",
  113. install_requires=install_requires,
  114. extras_require=extras_require,
  115. tests_require=tests_require,
  116. test_suite="tests",
  117. classifiers=[
  118. "Development Status :: 4 - Beta",
  119. "Environment :: Web Environment",
  120. "Intended Audience :: Developers",
  121. "Intended Audience :: End Users/Desktop",
  122. "License :: OSI Approved :: BSD License",
  123. "Operating System :: OS Independent",
  124. "Programming Language :: Python :: 3.6",
  125. "Programming Language :: Python :: 3.7",
  126. "Programming Language :: Python :: 3.8",
  127. "Programming Language :: Python :: 3.9",
  128. "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
  129. "Topic :: Software Development :: Libraries :: Python Modules",
  130. ],
  131. cmdclass={"test": PyTestCommand},
  132. )