setup.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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.2",
  17. "django-modelcluster>=6.0,<7.0",
  18. "django-permissionedforms>=0.1,<1.0",
  19. "django-taggit>=2.0,<4.0",
  20. "django-treebeard>=4.5.1,<5.0",
  21. "djangorestframework>=3.11.1,<4.0",
  22. "django-filter>=2.2,<23",
  23. "draftjs_exporter>=2.1.5,<3.0",
  24. "Pillow>=4.0.0,<10.0.0",
  25. "beautifulsoup4>=4.8,<4.12",
  26. "html5lib>=0.999,<2",
  27. "Willow>=1.4,<1.5",
  28. "requests>=2.11.1,<3.0",
  29. "l18n>=2018.5",
  30. "openpyxl>=3.0.10,<4.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,<3.2",
  41. "boto3>=1.16,<1.17",
  42. "freezegun>=0.3.8",
  43. "azure-mgmt-cdn>=5.1,<6.0",
  44. "azure-mgmt-frontdoor>=0.3,<0.4",
  45. "django-pattern-library>=0.7,<0.8",
  46. # For coverage and PEP8 linting
  47. "coverage>=3.7.0",
  48. "black==22.3.0",
  49. "flake8>=3.6.0",
  50. "isort==5.6.4", # leave this pinned - it tends to change rules between patch releases
  51. "flake8-blind-except==0.1.1",
  52. "flake8-comprehensions==3.8.0",
  53. "flake8-print==5.0.0",
  54. "doc8==0.8.1",
  55. "flake8-assertive==2.0.0",
  56. # For templates linting
  57. "curlylint==0.13.1",
  58. # For template indenting
  59. "djhtml==1.4.13",
  60. # for validating string formats in .po translation files
  61. "polib>=1.1,<2.0",
  62. ]
  63. # Documentation dependencies
  64. documentation_extras = [
  65. "pyenchant>=3.1.1,<4",
  66. "sphinxcontrib-spelling>=5.4.0,<6",
  67. "Sphinx>=1.5.2",
  68. "sphinx-autobuild>=0.6.0",
  69. "sphinx-wagtail-theme==5.3.0",
  70. "myst_parser==0.17.0",
  71. ]
  72. setup(
  73. name="wagtail",
  74. version=__version__,
  75. description="A Django content management system.",
  76. author="Wagtail core team + contributors",
  77. author_email="hello@wagtail.org", # For support queries, please see https://docs.wagtail.org/en/stable/support.html
  78. url="https://wagtail.org/",
  79. project_urls={
  80. "Documentation": "https://docs.wagtail.org",
  81. "Source": "https://github.com/wagtail/wagtail",
  82. },
  83. packages=find_packages(),
  84. include_package_data=True,
  85. license="BSD",
  86. long_description="Wagtail is an open source content management \
  87. system built on Django, with a strong community and commercial support. \
  88. It’s focused on user experience, and offers precise control for \
  89. designers and developers.\n\n\
  90. For more details, see https://wagtail.org, https://docs.wagtail.org and \
  91. https://github.com/wagtail/wagtail/.",
  92. classifiers=[
  93. "Development Status :: 5 - Production/Stable",
  94. "Environment :: Web Environment",
  95. "Intended Audience :: Developers",
  96. "License :: OSI Approved :: BSD License",
  97. "Operating System :: OS Independent",
  98. "Programming Language :: Python",
  99. "Programming Language :: Python :: 3",
  100. "Programming Language :: Python :: 3.7",
  101. "Programming Language :: Python :: 3.8",
  102. "Programming Language :: Python :: 3.9",
  103. "Programming Language :: Python :: 3.10",
  104. "Framework :: Django",
  105. "Framework :: Django :: 3.2",
  106. "Framework :: Django :: 4.0",
  107. "Framework :: Django :: 4.1",
  108. "Framework :: Wagtail",
  109. "Topic :: Internet :: WWW/HTTP :: Site Management",
  110. ],
  111. python_requires=">=3.7",
  112. install_requires=install_requires,
  113. extras_require={"testing": testing_extras, "docs": documentation_extras},
  114. entry_points="""
  115. [console_scripts]
  116. wagtail=wagtail.bin.wagtail:main
  117. """,
  118. zip_safe=False,
  119. cmdclass={
  120. "sdist": sdist,
  121. "bdist_egg": check_bdist_egg,
  122. "assets": assets,
  123. },
  124. )