0
0
mirror of https://github.com/wagtail/wagtail.git synced 2024-11-25 13:10:14 +01:00
wagtail/setup.py
Matt Westcott 06df4a66e1 Skip Elasticsearch backend tests unless the appropriate version of elasticsearch-py is available
These tests seem to have been written with the intent of testing query construction independently of actually running the queries; to do this, they mock the relevant bits of elasticsearch-py so that no actual server needs to be running. However, this is a bit of a bodge job - it still instantiates the Elasticsearch object when initialising the backend, so *some* version of elasticsearch-py must be installed to run Wagtail's test suite; and furthermore, that installed version must be able to handle EVERY backend's variant of the `Elasticsearch(...)` constructor, regardless of whether it was written for a completely different version.

This breaks down with Elasticsearch 8, which makes backward-incompatible changes to the constructor. Since the CI suite as a whole will test each backend with its corresponding correct version of elasticsearch-py at some point, it's redundant (and a waste of CPU cycles) to repeat those tests in environments with a different ES version (or none at all).
2023-07-17 16:18:37 +01:00

133 lines
4.1 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python
from wagtail import __version__
from wagtail.utils.setup import assets, check_bdist_egg, sdist
try:
from setuptools import find_packages, setup
except ImportError:
from distutils.core import setup
# Hack to prevent "TypeError: 'NoneType' object is not callable" error
# in multiprocessing/util.py _exit_function when setup.py exits
# (see http://www.eby-sarna.com/pipermail/peak/2010-May/003357.html)
try:
import multiprocessing # noqa: F401
except ImportError:
pass
install_requires = [
"Django>=3.2,<4.3",
"django-modelcluster>=6.0,<7.0",
"django-permissionedforms>=0.1,<1.0",
"django-taggit>=2.0,<5.0",
"django-treebeard>=4.5.1,<5.0",
"djangorestframework>=3.11.1,<4.0",
"django-filter>=2.2,<24",
"draftjs_exporter>=2.1.5,<3.0",
"Pillow>=9.1.0,<11.0.0",
"beautifulsoup4>=4.8,<4.12",
"html5lib>=0.999,<2",
"Willow[heif]>=1.6,<1.7",
"requests>=2.11.1,<3.0",
"l18n>=2018.5",
"openpyxl>=3.0.10,<4.0",
"anyascii>=0.1.5",
"telepath>=0.1.1,<1",
]
# Testing dependencies
testing_extras = [
# Required for running the tests
"python-dateutil>=2.7",
"pytz>=2014.7",
"Jinja2>=3.0,<3.2",
"boto3>=1.16,<1.17",
"freezegun>=0.3.8",
"azure-mgmt-cdn>=12.0,<13.0",
"azure-mgmt-frontdoor>=1.0,<1.1",
"django-pattern-library>=0.7,<0.8",
# For coverage and PEP8 linting
"coverage>=3.7.0",
"black==22.3.0",
"doc8==0.8.1",
"ruff==0.0.272",
# For enforcing string formatting mechanism in source files
"semgrep==1.3.0",
# For templates linting
"curlylint==0.13.1",
# For template indenting
"djhtml==1.5.2",
# for validating string formats in .po translation files
"polib>=1.1,<2.0",
# For wagtail.test.utils.wagtail_factories (used for streamfield migration toolkit)
"factory-boy>=3.2",
]
# Documentation dependencies
documentation_extras = [
"pyenchant>=3.1.1,<4",
"sphinxcontrib-spelling>=5.4.0,<6",
"Sphinx>=1.5.2",
"sphinx-autobuild>=0.6.0",
"sphinx-wagtail-theme==6.0.0",
"myst_parser==0.18.1",
"sphinx_copybutton>=0.5,<1.0",
]
setup(
name="wagtail",
version=__version__,
description="A Django content management system.",
author="Wagtail core team + contributors",
author_email="hello@wagtail.org", # For support queries, please see https://docs.wagtail.org/en/stable/support.html
url="https://wagtail.org/",
project_urls={
"Documentation": "https://docs.wagtail.org",
"Source": "https://github.com/wagtail/wagtail",
},
packages=find_packages(),
include_package_data=True,
license="BSD",
long_description="Wagtail is an open source content management \
system built on Django, with a strong community and commercial support. \
Its focused on user experience, and offers precise control for \
designers and developers.\n\n\
For more details, see https://wagtail.org, https://docs.wagtail.org and \
https://github.com/wagtail/wagtail/.",
classifiers=[
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Framework :: Django",
"Framework :: Django :: 3.2",
"Framework :: Django :: 4.1",
"Framework :: Django :: 4.2",
"Framework :: Wagtail",
"Topic :: Internet :: WWW/HTTP :: Site Management",
],
python_requires=">=3.8",
install_requires=install_requires,
extras_require={"testing": testing_extras, "docs": documentation_extras},
entry_points="""
[console_scripts]
wagtail=wagtail.bin.wagtail:main
""",
zip_safe=False,
cmdclass={
"sdist": sdist,
"bdist_egg": check_bdist_egg,
"assets": assets,
},
)