setup.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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: F401
  13. except ImportError:
  14. pass
  15. install_requires = [
  16. "Django>=4.2,<6.0",
  17. "django-modelcluster>=6.2.1,<7.0",
  18. "django-permissionedforms>=0.1,<1.0",
  19. "django-taggit>=5.0,<6.2",
  20. "django-treebeard>=4.5.1,<5.0",
  21. "djangorestframework>=3.15.1,<4.0",
  22. "django-filter>=23.3,<25",
  23. "draftjs_exporter>=2.1.5,<6.0",
  24. "Pillow>=9.1.0,<11.0.0",
  25. "beautifulsoup4>=4.8,<4.13",
  26. "Willow[heif]>=1.8.0,<2",
  27. "requests>=2.11.1,<3.0",
  28. "l18n>=2018.5",
  29. "openpyxl>=3.0.10,<4.0",
  30. "anyascii>=0.1.5",
  31. "telepath>=0.3.1,<1",
  32. "laces>=0.1,<0.2",
  33. ]
  34. # Testing dependencies
  35. testing_extras = [
  36. # Required for running the tests
  37. "python-dateutil>=2.7",
  38. "Jinja2>=3.0,<3.2",
  39. "boto3>=1.28,<2",
  40. "freezegun>=0.3.8",
  41. "azure-mgmt-cdn>=12.0,<13.0",
  42. "azure-mgmt-frontdoor>=1.0,<1.1",
  43. "django-pattern-library>=0.7",
  44. # For coverage and PEP8 linting
  45. "coverage>=3.7.0",
  46. "doc8==0.8.1",
  47. "ruff==0.1.5",
  48. # For enforcing string formatting mechanism in source files
  49. "semgrep==1.40.0",
  50. # For templates linting
  51. "curlylint==0.13.1",
  52. # For template indenting
  53. "djhtml==3.0.6",
  54. # For validating string formats in .po translation files
  55. "polib>=1.1,<2.0",
  56. # For wagtail.test.utils.wagtail_factories (used for streamfield migration toolkit)
  57. "factory-boy>=3.2",
  58. # For running tests in parallel
  59. "tblib>=2.0,<3.0",
  60. ]
  61. # Documentation dependencies
  62. documentation_extras = [
  63. "pyenchant>=3.1.1,<4",
  64. "sphinxcontrib-spelling>=7,<8",
  65. "Sphinx>=7.3",
  66. "sphinx-autobuild>=0.6.0",
  67. "sphinx-wagtail-theme==6.3.0",
  68. "myst_parser==2.0.0",
  69. "sphinx_copybutton>=0.5,<1.0",
  70. ]
  71. setup(
  72. name="wagtail",
  73. version=__version__,
  74. description="A Django content management system.",
  75. author="Wagtail core team + contributors",
  76. author_email="hello@wagtail.org", # For support queries, please see https://docs.wagtail.org/en/stable/support.html
  77. url="https://wagtail.org/",
  78. project_urls={
  79. "Changelog": "https://github.com/wagtail/wagtail/blob/main/CHANGELOG.txt",
  80. "Documentation": "https://docs.wagtail.org",
  81. "Source": "https://github.com/wagtail/wagtail",
  82. "Tracker": "https://github.com/wagtail/wagtail/issues",
  83. },
  84. packages=find_packages(),
  85. include_package_data=True,
  86. license="BSD",
  87. long_description="Wagtail is an open source content management \
  88. system built on Django, with a strong community and commercial support. \
  89. It’s focused on user experience, and offers precise control for \
  90. designers and developers.\n\n\
  91. For more details, see https://wagtail.org, https://docs.wagtail.org and \
  92. https://github.com/wagtail/wagtail/.",
  93. classifiers=[
  94. "Development Status :: 5 - Production/Stable",
  95. "Environment :: Web Environment",
  96. "Intended Audience :: Developers",
  97. "License :: OSI Approved :: BSD License",
  98. "Operating System :: OS Independent",
  99. "Programming Language :: Python",
  100. "Programming Language :: Python :: 3",
  101. "Programming Language :: Python :: 3.9",
  102. "Programming Language :: Python :: 3.10",
  103. "Programming Language :: Python :: 3.11",
  104. "Programming Language :: Python :: 3.12",
  105. "Programming Language :: Python :: 3.13",
  106. "Framework :: Django",
  107. "Framework :: Django :: 4.2",
  108. "Framework :: Django :: 5.0",
  109. "Framework :: Django :: 5.1",
  110. "Framework :: Wagtail",
  111. "Topic :: Internet :: WWW/HTTP :: Site Management",
  112. ],
  113. python_requires=">=3.9",
  114. install_requires=install_requires,
  115. extras_require={"testing": testing_extras, "docs": documentation_extras},
  116. entry_points="""
  117. [console_scripts]
  118. wagtail=wagtail.bin.wagtail:main
  119. """,
  120. zip_safe=False,
  121. cmdclass={
  122. "sdist": sdist,
  123. "bdist_egg": check_bdist_egg,
  124. "assets": assets,
  125. },
  126. )