kopia lustrzana https://github.com/wagtail/wagtail
Migrate setup.py and setup.cfg to pyproject.toml
Move the custom sdist command from wagtail/utils/setup.py directly to setup.py, because we cannot import the wagtail package itself during the build process without installing it in the build environment.pull/12993/head
rodzic
4b990df86a
commit
d9a09a7442
|
@ -0,0 +1,114 @@
|
|||
[build-system]
|
||||
requires = ["setuptools>=78.0"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "wagtail"
|
||||
dynamic = ["version"]
|
||||
description = "A Django content management system."
|
||||
readme = "README.md"
|
||||
license = "BSD-3-Clause"
|
||||
authors = [
|
||||
{ name = "Wagtail core team + contributors", email = "hello@wagtail.org" },
|
||||
]
|
||||
requires-python = ">=3.9"
|
||||
classifiers = [
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
"Environment :: Web Environment",
|
||||
"Intended Audience :: Developers",
|
||||
"Operating System :: OS Independent",
|
||||
"Programming Language :: Python",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.13",
|
||||
"Framework :: Django",
|
||||
"Framework :: Django :: 4.2",
|
||||
"Framework :: Django :: 5.0",
|
||||
"Framework :: Django :: 5.1",
|
||||
"Framework :: Django :: 5.2",
|
||||
"Framework :: Wagtail",
|
||||
"Topic :: Internet :: WWW/HTTP :: Site Management",
|
||||
]
|
||||
dependencies = [
|
||||
"Django>=4.2",
|
||||
"django-modelcluster>=6.2.1,<7.0",
|
||||
"django-permissionedforms>=0.1,<1.0",
|
||||
"django-taggit>=5.0,<7",
|
||||
"django-treebeard>=4.5.1,<5.0",
|
||||
"djangorestframework>=3.15.1,<4.0",
|
||||
"django-filter>=23.3",
|
||||
"draftjs_exporter>=2.1.5,<6.0",
|
||||
"Pillow>=9.1.0,<12.0.0",
|
||||
"beautifulsoup4>=4.8,<5",
|
||||
"Willow[heif]>=1.8.0,<2",
|
||||
"requests>=2.11.1,<3.0",
|
||||
"openpyxl>=3.0.10,<4.0",
|
||||
"anyascii>=0.1.5",
|
||||
"telepath>=0.3.1,<1",
|
||||
"laces>=0.1,<0.2",
|
||||
"django-tasks>=0.6.1,<0.7",
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://wagtail.org/"
|
||||
Documentation = "https://docs.wagtail.org"
|
||||
Repository = "https://github.com/wagtail/wagtail"
|
||||
Changelog = "https://github.com/wagtail/wagtail/blob/main/CHANGELOG.txt"
|
||||
"Issue Tracker" = "https://github.com/wagtail/wagtail/issues"
|
||||
|
||||
[project.optional-dependencies]
|
||||
testing = [
|
||||
# Required for running the tests
|
||||
"python-dateutil>=2.7",
|
||||
"Jinja2>=3.0,<3.2",
|
||||
"boto3>=1.28,<2",
|
||||
"freezegun>=0.3.8",
|
||||
"azure-mgmt-cdn>=12.0,<13.0",
|
||||
"azure-mgmt-frontdoor>=1.0,<1.1",
|
||||
"django-pattern-library>=0.7",
|
||||
# For coverage and PEP8 linting
|
||||
"coverage>=3.7.0",
|
||||
"doc8==0.8.1",
|
||||
"ruff==0.9.6",
|
||||
# For enforcing string formatting mechanism in source files
|
||||
"semgrep==1.40.0",
|
||||
# For templates linting
|
||||
"curlylint==0.13.1",
|
||||
# For template indenting
|
||||
"djhtml==3.0.6",
|
||||
# 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",
|
||||
# For running tests in parallel
|
||||
"tblib>=2.0,<3.0",
|
||||
]
|
||||
docs = [
|
||||
"pyenchant>=3.1.1,<4",
|
||||
"sphinxcontrib-spelling>=7,<8",
|
||||
"Sphinx>=7.3",
|
||||
"sphinx-autobuild>=0.6.0",
|
||||
"sphinx-wagtail-theme==6.5.0",
|
||||
"myst_parser==2.0.0",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
wagtail = "wagtail.bin.wagtail:main"
|
||||
|
||||
[tool.doc8]
|
||||
ignore = ["D001"]
|
||||
ignore_path = ["_build", "docs/_build"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
django_find_project = false
|
||||
python_files = ["test_*.py"]
|
||||
testpaths = ["wagtail"]
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
include = ["wagtail*"]
|
||||
|
||||
[tool.setuptools.dynamic]
|
||||
version = { attr = "wagtail.__version__" }
|
11
setup.cfg
11
setup.cfg
|
@ -1,11 +0,0 @@
|
|||
[bdist_wheel]
|
||||
python_tag = py3
|
||||
|
||||
[doc8]
|
||||
ignore = D001
|
||||
ignore_path = _build,docs/_build
|
||||
|
||||
[tool:pytest]
|
||||
django_find_project = false
|
||||
python_files=test_*.py
|
||||
testpaths=wagtail
|
|
@ -1,131 +1,23 @@
|
|||
#!/usr/bin/env python
|
||||
import subprocess
|
||||
|
||||
from wagtail import __version__
|
||||
from wagtail.utils.setup import sdist
|
||||
|
||||
try:
|
||||
from setuptools import find_packages, setup
|
||||
except ImportError:
|
||||
from distutils.core import setup
|
||||
from setuptools import setup
|
||||
from setuptools.command.sdist import sdist as base_sdist
|
||||
|
||||
|
||||
# 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
|
||||
class sdist(base_sdist):
|
||||
def compile_assets(self):
|
||||
try:
|
||||
subprocess.check_call(["npm", "run", "build"])
|
||||
except (OSError, subprocess.CalledProcessError) as e:
|
||||
print("Error compiling assets: " + str(e)) # noqa: T201
|
||||
raise SystemExit(1)
|
||||
|
||||
def run(self):
|
||||
self.compile_assets()
|
||||
base_sdist.run(self)
|
||||
|
||||
install_requires = [
|
||||
"Django>=4.2",
|
||||
"django-modelcluster>=6.2.1,<7.0",
|
||||
"django-permissionedforms>=0.1,<1.0",
|
||||
"django-taggit>=5.0,<7",
|
||||
"django-treebeard>=4.5.1,<5.0",
|
||||
"djangorestframework>=3.15.1,<4.0",
|
||||
"django-filter>=23.3",
|
||||
"draftjs_exporter>=2.1.5,<6.0",
|
||||
"Pillow>=9.1.0,<12.0.0",
|
||||
"beautifulsoup4>=4.8,<5",
|
||||
"Willow[heif]>=1.8.0,<2",
|
||||
"requests>=2.11.1,<3.0",
|
||||
"openpyxl>=3.0.10,<4.0",
|
||||
"anyascii>=0.1.5",
|
||||
"telepath>=0.3.1,<1",
|
||||
"laces>=0.1,<0.2",
|
||||
"django-tasks>=0.6.1,<0.7",
|
||||
]
|
||||
|
||||
# Testing dependencies
|
||||
testing_extras = [
|
||||
# Required for running the tests
|
||||
"python-dateutil>=2.7",
|
||||
"Jinja2>=3.0,<3.2",
|
||||
"boto3>=1.28,<2",
|
||||
"freezegun>=0.3.8",
|
||||
"azure-mgmt-cdn>=12.0,<13.0",
|
||||
"azure-mgmt-frontdoor>=1.0,<1.1",
|
||||
"django-pattern-library>=0.7",
|
||||
# For coverage and PEP8 linting
|
||||
"coverage>=3.7.0",
|
||||
"doc8==0.8.1",
|
||||
"ruff==0.9.6",
|
||||
# For enforcing string formatting mechanism in source files
|
||||
"semgrep==1.40.0",
|
||||
# For templates linting
|
||||
"curlylint==0.13.1",
|
||||
# For template indenting
|
||||
"djhtml==3.0.6",
|
||||
# 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",
|
||||
# For running tests in parallel
|
||||
"tblib>=2.0,<3.0",
|
||||
]
|
||||
|
||||
# Documentation dependencies
|
||||
documentation_extras = [
|
||||
"pyenchant>=3.1.1,<4",
|
||||
"sphinxcontrib-spelling>=7,<8",
|
||||
"Sphinx>=7.3",
|
||||
"sphinx-autobuild>=0.6.0",
|
||||
"sphinx-wagtail-theme==6.5.0",
|
||||
"myst_parser==2.0.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={
|
||||
"Changelog": "https://github.com/wagtail/wagtail/blob/main/CHANGELOG.txt",
|
||||
"Documentation": "https://docs.wagtail.org",
|
||||
"Source": "https://github.com/wagtail/wagtail",
|
||||
"Tracker": "https://github.com/wagtail/wagtail/issues",
|
||||
},
|
||||
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. \
|
||||
It’s 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.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.13",
|
||||
"Framework :: Django",
|
||||
"Framework :: Django :: 4.2",
|
||||
"Framework :: Django :: 5.0",
|
||||
"Framework :: Django :: 5.1",
|
||||
"Framework :: Django :: 5.2",
|
||||
"Framework :: Wagtail",
|
||||
"Topic :: Internet :: WWW/HTTP :: Site Management",
|
||||
],
|
||||
python_requires=">=3.9",
|
||||
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},
|
||||
)
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
import subprocess
|
||||
|
||||
from setuptools.command.sdist import sdist as base_sdist
|
||||
|
||||
|
||||
class sdist(base_sdist):
|
||||
def compile_assets(self):
|
||||
try:
|
||||
subprocess.check_call(["npm", "run", "build"])
|
||||
except (OSError, subprocess.CalledProcessError) as e:
|
||||
print("Error compiling assets: " + str(e)) # noqa: T201
|
||||
raise SystemExit(1)
|
||||
|
||||
def run(self):
|
||||
self.compile_assets()
|
||||
base_sdist.run(self)
|
Ładowanie…
Reference in New Issue