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