2023-05-27 11:52:03 +03:00
|
|
|
[build-system]
|
2023-05-20 08:38:36 +03:00
|
|
|
build-backend = "backend"
|
2023-06-24 17:57:43 +03:00
|
|
|
requires = [
|
|
|
|
"setuptools>=67.8",
|
|
|
|
]
|
|
|
|
backend-path = [
|
|
|
|
"_custom_build",
|
|
|
|
]
|
2023-10-21 16:23:40 +03:00
|
|
|
|
2022-10-28 14:38:23 +03:00
|
|
|
[project]
|
|
|
|
name = "pillow"
|
|
|
|
description = "Python Imaging Library (Fork)"
|
|
|
|
readme = "README.md"
|
|
|
|
keywords = [
|
|
|
|
"Imaging",
|
|
|
|
]
|
2024-10-11 16:28:41 +03:00
|
|
|
license = { text = "MIT-CMU" }
|
2024-07-01 20:33:15 +03:00
|
|
|
authors = [
|
|
|
|
{ name = "Jeffrey A. Clark", email = "aclark@aclark.net" },
|
|
|
|
]
|
2024-07-03 09:44:45 +03:00
|
|
|
requires-python = ">=3.9"
|
2022-10-28 14:38:23 +03:00
|
|
|
classifiers = [
|
|
|
|
"Development Status :: 6 - Mature",
|
2024-10-11 16:28:41 +03:00
|
|
|
"License :: OSI Approved :: CMU License (MIT-CMU)",
|
2022-10-28 14:38:23 +03:00
|
|
|
"Programming Language :: Python :: 3 :: Only",
|
|
|
|
"Programming Language :: Python :: 3.9",
|
|
|
|
"Programming Language :: Python :: 3.10",
|
|
|
|
"Programming Language :: Python :: 3.11",
|
|
|
|
"Programming Language :: Python :: 3.12",
|
2024-06-30 00:17:29 +03:00
|
|
|
"Programming Language :: Python :: 3.13",
|
2022-10-28 14:38:23 +03:00
|
|
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
|
|
"Programming Language :: Python :: Implementation :: PyPy",
|
|
|
|
"Topic :: Multimedia :: Graphics",
|
|
|
|
"Topic :: Multimedia :: Graphics :: Capture :: Digital Camera",
|
|
|
|
"Topic :: Multimedia :: Graphics :: Capture :: Screen Capture",
|
|
|
|
"Topic :: Multimedia :: Graphics :: Graphics Conversion",
|
|
|
|
"Topic :: Multimedia :: Graphics :: Viewers",
|
2024-02-21 13:42:04 +03:00
|
|
|
"Typing :: Typed",
|
2022-10-28 14:38:23 +03:00
|
|
|
]
|
|
|
|
dynamic = [
|
|
|
|
"version",
|
|
|
|
]
|
2024-07-01 20:33:15 +03:00
|
|
|
optional-dependencies.docs = [
|
2022-10-28 14:38:23 +03:00
|
|
|
"furo",
|
|
|
|
"olefile",
|
2024-10-10 21:35:48 +03:00
|
|
|
"sphinx>=8.1",
|
2022-10-28 14:38:23 +03:00
|
|
|
"sphinx-copybutton",
|
|
|
|
"sphinx-inline-tabs",
|
|
|
|
"sphinxext-opengraph",
|
|
|
|
]
|
2024-07-01 20:33:15 +03:00
|
|
|
optional-dependencies.fpx = [
|
2023-11-21 00:33:11 +03:00
|
|
|
"olefile",
|
|
|
|
]
|
2024-07-01 20:33:15 +03:00
|
|
|
optional-dependencies.mic = [
|
2023-11-20 15:56:56 +03:00
|
|
|
"olefile",
|
|
|
|
]
|
2024-07-01 20:33:15 +03:00
|
|
|
optional-dependencies.tests = [
|
2022-10-28 14:38:23 +03:00
|
|
|
"check-manifest",
|
|
|
|
"coverage",
|
|
|
|
"defusedxml",
|
|
|
|
"markdown2",
|
|
|
|
"olefile",
|
|
|
|
"packaging",
|
|
|
|
"pyroma",
|
|
|
|
"pytest",
|
|
|
|
"pytest-cov",
|
|
|
|
"pytest-timeout",
|
|
|
|
]
|
2024-07-01 20:33:15 +03:00
|
|
|
optional-dependencies.typing = [
|
|
|
|
"typing-extensions; python_version<'3.10'",
|
2023-12-27 16:54:48 +03:00
|
|
|
]
|
2024-07-01 20:33:15 +03:00
|
|
|
optional-dependencies.xmp = [
|
2023-11-20 15:56:56 +03:00
|
|
|
"defusedxml",
|
|
|
|
]
|
2024-07-01 20:33:15 +03:00
|
|
|
urls.Changelog = "https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst"
|
|
|
|
urls.Documentation = "https://pillow.readthedocs.io"
|
|
|
|
urls.Funding = "https://tidelift.com/subscription/pkg/pypi-pillow?utm_source=pypi-pillow&utm_medium=pypi"
|
|
|
|
urls.Homepage = "https://python-pillow.org"
|
|
|
|
urls.Mastodon = "https://fosstodon.org/@pillow"
|
|
|
|
urls."Release notes" = "https://pillow.readthedocs.io/en/stable/releasenotes/index.html"
|
|
|
|
urls.Source = "https://github.com/python-pillow/Pillow"
|
2022-10-28 14:38:23 +03:00
|
|
|
|
|
|
|
[tool.setuptools]
|
2024-07-01 20:33:15 +03:00
|
|
|
packages = [
|
|
|
|
"PIL",
|
|
|
|
]
|
2022-10-28 14:38:23 +03:00
|
|
|
include-package-data = true
|
2024-07-01 20:33:15 +03:00
|
|
|
package-dir = { "" = "src" }
|
2022-10-28 14:38:23 +03:00
|
|
|
|
2023-10-22 20:35:21 +03:00
|
|
|
[tool.setuptools.dynamic]
|
2024-07-01 20:33:15 +03:00
|
|
|
version = { attr = "PIL.__version__" }
|
2023-10-22 20:35:21 +03:00
|
|
|
|
2023-11-14 15:23:46 +03:00
|
|
|
[tool.cibuildwheel]
|
|
|
|
before-all = ".github/workflows/wheels-dependencies.sh"
|
2023-11-26 23:41:04 +03:00
|
|
|
build-verbosity = 1
|
2024-10-25 04:23:13 +03:00
|
|
|
|
2023-01-01 05:18:30 +03:00
|
|
|
config-settings = "raqm=enable raqm=vendor fribidi=vendor imagequant=disable"
|
2024-11-12 14:41:57 +03:00
|
|
|
# Disable platform guessing on macOS
|
|
|
|
macos.config-settings = "raqm=enable raqm=vendor fribidi=vendor imagequant=disable platform-guessing=disable"
|
2024-10-25 04:23:13 +03:00
|
|
|
|
2023-11-14 15:23:46 +03:00
|
|
|
test-command = "cd {project} && .github/workflows/wheels-test.sh"
|
|
|
|
test-extras = "tests"
|
|
|
|
|
2024-10-25 04:23:13 +03:00
|
|
|
[tool.cibuildwheel.macos.environment]
|
2024-11-06 09:12:07 +03:00
|
|
|
PATH = "$(pwd)/build/deps/darwin/bin:$(dirname $(which python3)):/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
|
2024-10-25 04:23:13 +03:00
|
|
|
|
2024-09-28 08:29:09 +03:00
|
|
|
[tool.black]
|
|
|
|
exclude = "wheels/multibuild"
|
|
|
|
|
2024-04-01 20:49:47 +03:00
|
|
|
[tool.ruff]
|
2024-09-28 08:29:09 +03:00
|
|
|
exclude = [ "wheels/multibuild" ]
|
2024-04-01 20:49:47 +03:00
|
|
|
|
2024-09-28 08:29:09 +03:00
|
|
|
fix = true
|
2024-07-01 20:33:15 +03:00
|
|
|
lint.select = [
|
|
|
|
"C4", # flake8-comprehensions
|
|
|
|
"E", # pycodestyle errors
|
|
|
|
"EM", # flake8-errmsg
|
|
|
|
"F", # pyflakes errors
|
|
|
|
"I", # isort
|
|
|
|
"ISC", # flake8-implicit-str-concat
|
|
|
|
"LOG", # flake8-logging
|
|
|
|
"PGH", # pygrep-hooks
|
2024-08-16 14:59:46 +03:00
|
|
|
"PT", # flake8-pytest-style
|
2024-07-01 20:33:15 +03:00
|
|
|
"PYI", # flake8-pyi
|
2023-02-23 15:02:58 +03:00
|
|
|
"RUF100", # unused noqa (yesqa)
|
2024-07-01 20:33:15 +03:00
|
|
|
"UP", # pyupgrade
|
|
|
|
"W", # pycodestyle warnings
|
|
|
|
"YTT", # flake8-2020
|
|
|
|
]
|
|
|
|
lint.ignore = [
|
|
|
|
"E203", # Whitespace before ':'
|
|
|
|
"E221", # Multiple spaces before operator
|
|
|
|
"E226", # Missing whitespace around arithmetic operator
|
|
|
|
"E241", # Multiple spaces after ','
|
2024-08-16 14:59:46 +03:00
|
|
|
"PT001", # pytest-fixture-incorrect-parentheses-style
|
|
|
|
"PT007", # pytest-parametrize-values-wrong-type
|
|
|
|
"PT011", # pytest-raises-too-broad
|
|
|
|
"PT012", # pytest-raises-with-multiple-statements
|
|
|
|
"PT017", # pytest-assert-in-except
|
2024-03-28 20:20:32 +03:00
|
|
|
"PYI026", # flake8-pyi: typing.TypeAlias added in Python 3.10
|
2024-03-27 10:16:31 +03:00
|
|
|
"PYI034", # flake8-pyi: typing.Self added in Python 3.11
|
2023-02-23 15:02:58 +03:00
|
|
|
]
|
2024-07-01 20:33:15 +03:00
|
|
|
lint.per-file-ignores."Tests/oss-fuzz/fuzz_font.py" = [
|
|
|
|
"I002",
|
|
|
|
]
|
|
|
|
lint.per-file-ignores."Tests/oss-fuzz/fuzz_pillow.py" = [
|
|
|
|
"I002",
|
|
|
|
]
|
2024-08-07 12:17:49 +03:00
|
|
|
lint.flake8-pytest-style.parametrize-names-type = "csv"
|
2024-07-01 20:33:15 +03:00
|
|
|
lint.isort.known-first-party = [
|
|
|
|
"PIL",
|
|
|
|
]
|
|
|
|
lint.isort.required-imports = [
|
|
|
|
"from __future__ import annotations",
|
|
|
|
]
|
2023-10-21 16:23:40 +03:00
|
|
|
|
2024-06-30 00:17:29 +03:00
|
|
|
[tool.pyproject-fmt]
|
|
|
|
max_supported_python = "3.13"
|
|
|
|
|
2023-10-21 16:23:40 +03:00
|
|
|
[tool.pytest.ini_options]
|
|
|
|
addopts = "-ra --color=yes"
|
2024-07-01 20:33:15 +03:00
|
|
|
testpaths = [
|
|
|
|
"Tests",
|
|
|
|
]
|
2023-06-30 18:50:18 +03:00
|
|
|
|
|
|
|
[tool.mypy]
|
2024-07-03 09:44:45 +03:00
|
|
|
python_version = "3.9"
|
2023-06-30 18:50:18 +03:00
|
|
|
pretty = true
|
|
|
|
disallow_any_generics = true
|
|
|
|
enable_error_code = "ignore-without-code"
|
|
|
|
extra_checks = true
|
|
|
|
follow_imports = "silent"
|
|
|
|
warn_redundant_casts = true
|
|
|
|
warn_unreachable = true
|
|
|
|
warn_unused_ignores = true
|