0
0
mirror of https://github.com/wagtail/wagtail.git synced 2024-11-27 15:56:30 +01:00
wagtail/setup.py
Karl Hobley 519c0c332d
Simplify Page.copy() (#6277)
* Use Django modelcluster's copy_all_child_relations method

* page.specific.__class__ => page.specific_class

* Use child_object_map as returned by modelcluster for revision rewriting

* Use modelcluster to commit child relations

* Use a callback instead of a method for _save_copy_instance

* Make CopyMixin work on non-MTI models

* Make gathering exclude_fields the job of the callee

._copy() no longer depends on any custom attributes in the base class!

* Converted CopyMixin into some utility methods (and renamed some stuff)

* Don't commit the new page in _copy

* Refactor _copy_m2m_relations to be more standalone

* Merge _make_copy into _copy

Not really useful outside _copy

* Give unused variable a name

* Version-bump django-modelcluster to 5.1

* Address review feedback

Co-authored-by: Matt Westcott <matt@west.co.tt>
2020-09-14 20:50:44 +01:00

135 lines
4.0 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
import sys
from wagtail import __version__
from wagtail.utils.setup import assets, sdist, check_bdist_egg
try:
from setuptools import setup, find_packages
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
except ImportError:
pass
install_requires = [
"Django>=2.2,<3.2",
"django-modelcluster>=5.1,<6.0",
"django-taggit>=1.0,<2.0",
"django-treebeard>=4.2.0,<5.0",
"djangorestframework>=3.11.1,<4.0",
"django-filter>=2.2,<3.0",
"draftjs_exporter>=2.1.5,<3.0",
"Pillow>=4.0.0,<8.0.0",
"beautifulsoup4>=4.8,<4.9",
"html5lib>=0.999,<2",
# RemovedInWagtail212Warning: unidecode is only used by _migrate_legacy_clean_name in wagtail.contrib.forms
# and will be made a non-default dependency once enough time has passed from the 2.10 release to allow old
# data to be migrated.
"Unidecode>=0.04.14,<2.0",
"Willow>=1.4,<1.5",
"requests>=2.11.1,<3.0",
"l18n>=2018.5",
"xlsxwriter>=1.2.8,<2.0",
"tablib[xls,xlsx]>=0.14.0",
"anyascii>=0.1.5",
]
# Testing dependencies
testing_extras = [
# Required for running the tests
'python-dateutil>=2.2',
'pytz>=2014.7',
'elasticsearch>=1.0.0,<3.0',
'Jinja2>=2.8,<3.0',
'boto3>=1.4,<1.5',
'freezegun>=0.3.8',
'openpyxl>=2.6.4',
# For coverage and PEP8 linting
'coverage>=3.7.0',
'flake8>=3.6.0',
'isort==4.2.5',
'flake8-blind-except==0.1.1',
'flake8-print==2.0.2',
# For templates linting
'jinjalint>=0.5',
# Pipenv hack to fix broken dependency causing CircleCI failures
'docutils==0.15',
# django-taggit 1.3.0 made changes to verbose_name which affect migrations;
# the test suite migrations correspond to >=1.3.0
'django-taggit>=1.3.0,<2.0',
]
# Documentation dependencies
documentation_extras = [
'pyenchant==1.6.8',
'sphinxcontrib-spelling>=2.3.0',
'Sphinx>=1.5.2',
'sphinx-autobuild>=0.6.0',
'sphinx_rtd_theme>=0.1.9',
]
setup(
name='wagtail',
version=__version__,
description='A Django content management system.',
author='Wagtail core team + contributors',
author_email='hello@wagtail.io', # For support queries, please see https://docs.wagtail.io/en/stable/support.html
url='https://wagtail.io/',
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.io, https://docs.wagtail.io 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.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Framework :: Django',
'Framework :: Django :: 2.2',
'Framework :: Django :: 3.0',
'Framework :: Django :: 3.1',
'Framework :: Wagtail',
'Topic :: Internet :: WWW/HTTP :: Site Management',
],
python_requires='>=3.6',
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,
},
)