setup.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. #!/usr/bin/env python
  2. from wagtail import __version__
  3. from wagtail.utils.setup import assets, check_bdist_egg, sdist
  4. try:
  5. from setuptools import find_packages, setup
  6. except ImportError:
  7. from distutils.core import setup
  8. # Hack to prevent "TypeError: 'NoneType' object is not callable" error
  9. # in multiprocessing/util.py _exit_function when setup.py exits
  10. # (see http://www.eby-sarna.com/pipermail/peak/2010-May/003357.html)
  11. try:
  12. import multiprocessing # noqa
  13. except ImportError:
  14. pass
  15. install_requires = [
  16. "Django>=3.2,<4.1",
  17. "django-modelcluster>=5.2,<6.0",
  18. "django-taggit>=2.0,<3.0",
  19. "django-treebeard>=4.2.0,<5.0,!=4.5",
  20. "djangorestframework>=3.11.1,<4.0",
  21. "django-filter>=2.2,<22",
  22. "draftjs_exporter>=2.1.5,<3.0",
  23. "Pillow>=4.0.0,<10.0.0",
  24. "beautifulsoup4>=4.8,<4.10",
  25. "html5lib>=0.999,<2",
  26. "Willow>=1.4,<1.5",
  27. "requests>=2.11.1,<3.0",
  28. "l18n>=2018.5",
  29. "xlsxwriter>=1.2.8,<4.0",
  30. "tablib[xls,xlsx]>=0.14.0",
  31. "anyascii>=0.1.5",
  32. "telepath>=0.1.1,<1",
  33. ]
  34. # Testing dependencies
  35. testing_extras = [
  36. # Required for running the tests
  37. 'python-dateutil>=2.7',
  38. 'pytz>=2014.7',
  39. 'elasticsearch>=5.0,<6.0',
  40. 'Jinja2>=2.11,<3.0',
  41. 'boto3>=1.16,<1.17',
  42. 'freezegun>=0.3.8',
  43. 'openpyxl>=2.6.4',
  44. 'Unidecode>=0.04.14,<2.0',
  45. 'azure-mgmt-cdn>=5.1,<6.0',
  46. 'azure-mgmt-frontdoor>=0.3,<0.4',
  47. # For coverage and PEP8 linting
  48. 'coverage>=3.7.0',
  49. 'black==22.1.0',
  50. 'flake8>=3.6.0',
  51. 'isort==5.6.4', # leave this pinned - it tends to change rules between patch releases
  52. 'flake8-blind-except==0.1.1',
  53. 'flake8-comprehensions==3.8.0',
  54. 'flake8-print==2.0.2',
  55. 'doc8==0.8.1',
  56. 'flake8-assertive==2.0.0',
  57. # For templates linting
  58. 'jinjalint>=0.5',
  59. # For template indenting
  60. 'djhtml==1.4.13',
  61. # Pipenv hack to fix broken dependency causing CircleCI failures
  62. 'docutils==0.15',
  63. # for validating string formats in .po translation files
  64. 'polib>=1.1,<2.0',
  65. ]
  66. # Documentation dependencies
  67. documentation_extras = [
  68. 'pyenchant>=3.1.1,<4',
  69. 'sphinxcontrib-spelling>=5.4.0,<6',
  70. 'Sphinx>=1.5.2',
  71. 'sphinx-autobuild>=0.6.0',
  72. 'sphinx-wagtail-theme==5.0.4',
  73. 'recommonmark>=0.7.1',
  74. ]
  75. setup(
  76. name='wagtail',
  77. version=__version__,
  78. description='A Django content management system.',
  79. author='Wagtail core team + contributors',
  80. author_email='hello@wagtail.org', # For support queries, please see https://docs.wagtail.org/en/stable/support.html
  81. url='https://wagtail.org/',
  82. packages=find_packages(),
  83. include_package_data=True,
  84. license='BSD',
  85. long_description="Wagtail is an open source content management \
  86. system built on Django, with a strong community and commercial support. \
  87. It’s focused on user experience, and offers precise control for \
  88. designers and developers.\n\n\
  89. For more details, see https://wagtail.org, https://docs.wagtail.org and \
  90. https://github.com/wagtail/wagtail/.",
  91. classifiers=[
  92. 'Development Status :: 5 - Production/Stable',
  93. 'Environment :: Web Environment',
  94. 'Intended Audience :: Developers',
  95. 'License :: OSI Approved :: BSD License',
  96. 'Operating System :: OS Independent',
  97. 'Programming Language :: Python',
  98. 'Programming Language :: Python :: 3',
  99. 'Programming Language :: Python :: 3.7',
  100. 'Programming Language :: Python :: 3.8',
  101. 'Programming Language :: Python :: 3.9',
  102. 'Programming Language :: Python :: 3.10',
  103. 'Framework :: Django',
  104. 'Framework :: Django :: 3.2',
  105. 'Framework :: Django :: 4.0',
  106. 'Framework :: Wagtail',
  107. 'Topic :: Internet :: WWW/HTTP :: Site Management',
  108. ],
  109. python_requires='>=3.7',
  110. install_requires=install_requires,
  111. extras_require={
  112. 'testing': testing_extras,
  113. 'docs': documentation_extras
  114. },
  115. entry_points="""
  116. [console_scripts]
  117. wagtail=wagtail.bin.wagtail:main
  118. """,
  119. zip_safe=False,
  120. cmdclass={
  121. 'sdist': sdist,
  122. 'bdist_egg': check_bdist_egg,
  123. 'assets': assets,
  124. },
  125. )