setup.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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.5.1,<5.0",
  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>=3.0,<4.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. "django-pattern-library>=0.7,<0.8",
  48. # For coverage and PEP8 linting
  49. "coverage>=3.7.0",
  50. "black==22.1.0",
  51. "flake8>=3.6.0",
  52. "isort==5.6.4", # leave this pinned - it tends to change rules between patch releases
  53. "flake8-blind-except==0.1.1",
  54. "flake8-comprehensions==3.8.0",
  55. "flake8-print==2.0.2",
  56. "doc8==0.8.1",
  57. "flake8-assertive==2.0.0",
  58. # For templates linting
  59. "jinjalint>=0.5",
  60. # For template indenting
  61. "djhtml==1.4.13",
  62. # Pipenv hack to fix broken dependency causing CircleCI failures
  63. "docutils==0.15",
  64. # for validating string formats in .po translation files
  65. "polib>=1.1,<2.0",
  66. ]
  67. # Documentation dependencies
  68. documentation_extras = [
  69. "pyenchant>=3.1.1,<4",
  70. "sphinxcontrib-spelling>=5.4.0,<6",
  71. "Sphinx>=1.5.2",
  72. "sphinx-autobuild>=0.6.0",
  73. "sphinx-wagtail-theme==5.0.4",
  74. "myst_parser==0.17.0",
  75. ]
  76. setup(
  77. name="wagtail",
  78. version=__version__,
  79. description="A Django content management system.",
  80. author="Wagtail core team + contributors",
  81. author_email="hello@wagtail.org", # For support queries, please see https://docs.wagtail.org/en/stable/support.html
  82. url="https://wagtail.org/",
  83. project_urls={
  84. "Documentation": "https://docs.wagtail.org",
  85. "Source": "https://github.com/wagtail/wagtail",
  86. },
  87. packages=find_packages(),
  88. include_package_data=True,
  89. license="BSD",
  90. long_description="Wagtail is an open source content management \
  91. system built on Django, with a strong community and commercial support. \
  92. It’s focused on user experience, and offers precise control for \
  93. designers and developers.\n\n\
  94. For more details, see https://wagtail.org, https://docs.wagtail.org and \
  95. https://github.com/wagtail/wagtail/.",
  96. classifiers=[
  97. "Development Status :: 5 - Production/Stable",
  98. "Environment :: Web Environment",
  99. "Intended Audience :: Developers",
  100. "License :: OSI Approved :: BSD License",
  101. "Operating System :: OS Independent",
  102. "Programming Language :: Python",
  103. "Programming Language :: Python :: 3",
  104. "Programming Language :: Python :: 3.7",
  105. "Programming Language :: Python :: 3.8",
  106. "Programming Language :: Python :: 3.9",
  107. "Programming Language :: Python :: 3.10",
  108. "Framework :: Django",
  109. "Framework :: Django :: 3.2",
  110. "Framework :: Django :: 4.0",
  111. "Framework :: Wagtail",
  112. "Topic :: Internet :: WWW/HTTP :: Site Management",
  113. ],
  114. python_requires=">=3.7",
  115. install_requires=install_requires,
  116. extras_require={"testing": testing_extras, "docs": documentation_extras},
  117. entry_points="""
  118. [console_scripts]
  119. wagtail=wagtail.bin.wagtail:main
  120. """,
  121. zip_safe=False,
  122. cmdclass={
  123. "sdist": sdist,
  124. "bdist_egg": check_bdist_egg,
  125. "assets": assets,
  126. },
  127. )