setup.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  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>=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. "xlsxwriter>=1.2.8,<4.0",
  31. "tablib[xls,xlsx]>=0.14.0",
  32. "anyascii>=0.1.5",
  33. "telepath>=0.1.1,<1",
  34. ]
  35. # Testing dependencies
  36. testing_extras = [
  37. # Required for running the tests
  38. "python-dateutil>=2.7",
  39. "pytz>=2014.7",
  40. "elasticsearch>=5.0,<6.0",
  41. "Jinja2>=3.0,<3.2",
  42. "boto3>=1.16,<1.17",
  43. "freezegun>=0.3.8",
  44. "openpyxl>=2.6.4",
  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.3.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. "curlylint==0.13.1",
  60. # For template indenting
  61. "djhtml==1.4.13",
  62. # for validating string formats in .po translation files
  63. "polib>=1.1,<2.0",
  64. ]
  65. # Documentation dependencies
  66. documentation_extras = [
  67. "pyenchant>=3.1.1,<4",
  68. "sphinxcontrib-spelling>=5.4.0,<6",
  69. "Sphinx>=1.5.2",
  70. "sphinx-autobuild>=0.6.0",
  71. "sphinx-wagtail-theme==5.1.1",
  72. "myst_parser==0.17.0",
  73. ]
  74. setup(
  75. name="wagtail",
  76. version=__version__,
  77. description="A Django content management system.",
  78. author="Wagtail core team + contributors",
  79. author_email="hello@wagtail.org", # For support queries, please see https://docs.wagtail.org/en/stable/support.html
  80. url="https://wagtail.org/",
  81. project_urls={
  82. "Documentation": "https://docs.wagtail.org",
  83. "Source": "https://github.com/wagtail/wagtail",
  84. },
  85. packages=find_packages(),
  86. include_package_data=True,
  87. license="BSD",
  88. long_description="Wagtail is an open source content management \
  89. system built on Django, with a strong community and commercial support. \
  90. It’s focused on user experience, and offers precise control for \
  91. designers and developers.\n\n\
  92. For more details, see https://wagtail.org, https://docs.wagtail.org and \
  93. https://github.com/wagtail/wagtail/.",
  94. classifiers=[
  95. "Development Status :: 5 - Production/Stable",
  96. "Environment :: Web Environment",
  97. "Intended Audience :: Developers",
  98. "License :: OSI Approved :: BSD License",
  99. "Operating System :: OS Independent",
  100. "Programming Language :: Python",
  101. "Programming Language :: Python :: 3",
  102. "Programming Language :: Python :: 3.7",
  103. "Programming Language :: Python :: 3.8",
  104. "Programming Language :: Python :: 3.9",
  105. "Programming Language :: Python :: 3.10",
  106. "Framework :: Django",
  107. "Framework :: Django :: 3.2",
  108. "Framework :: Django :: 4.0",
  109. "Framework :: Wagtail",
  110. "Topic :: Internet :: WWW/HTTP :: Site Management",
  111. ],
  112. python_requires=">=3.7",
  113. install_requires=install_requires,
  114. extras_require={"testing": testing_extras, "docs": documentation_extras},
  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. )