* [2.x] Update virtualenv URLs to avoid blob URLs It looks like many people are hitting the HTTP 429 for old versions of cibuildwheel. These hosted versions of virtualenv should work, let's see... * Write the correct version strings * ci: some updates based on main branch Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * ci: move to using latest images Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * chore: fix up style checks Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * ci: newer azure images too Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * tests: use new SSL test from main Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * Drop `build`'s installation from Pyodide build tools --------- Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com> Co-authored-by: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com>
239 lines
6.1 KiB
TOML
239 lines
6.1 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "cibuildwheel"
|
|
version = "2.23.3"
|
|
description = "Build Python wheels on CI with minimal configuration."
|
|
readme = "README.md"
|
|
license = "BSD-2-Clause"
|
|
requires-python = ">=3.8"
|
|
authors = [
|
|
{ name = "Joe Rickerby", email = "joerick@mac.com" },
|
|
]
|
|
keywords = [
|
|
"appveyor",
|
|
"ci",
|
|
"linux",
|
|
"macos",
|
|
"packaging",
|
|
"pypi",
|
|
"travis",
|
|
"wheel",
|
|
"windows",
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: BSD License",
|
|
"Natural Language :: English",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3 :: Only",
|
|
"Programming Language :: Python :: 3.8",
|
|
"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",
|
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
"Topic :: Software Development :: Build Tools",
|
|
]
|
|
dependencies = [
|
|
"bashlex!=0.13",
|
|
"bracex",
|
|
"certifi",
|
|
"dependency-groups>=1.2",
|
|
"filelock",
|
|
"packaging>=20.9",
|
|
"platformdirs",
|
|
"tomli;python_version < '3.11'",
|
|
"typing-extensions>=4.1.0;python_version < '3.11'",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
uv = ["uv"]
|
|
|
|
[project.scripts]
|
|
cibuildwheel = "cibuildwheel.__main__:main"
|
|
|
|
[project.entry-points."validate_pyproject.tool_schema"]
|
|
cibuildwheel = "cibuildwheel.schema:get_schema"
|
|
|
|
[project.urls]
|
|
Changelog = "https://github.com/pypa/cibuildwheel#changelog"
|
|
Documentation = "https://cibuildwheel.pypa.io"
|
|
Homepage = "https://github.com/pypa/cibuildwheel"
|
|
|
|
[dependency-groups]
|
|
bin = [
|
|
"click",
|
|
"packaging>=21.0",
|
|
"pip-tools",
|
|
"pygithub",
|
|
"pyyaml",
|
|
"requests",
|
|
"rich>=9.6",
|
|
]
|
|
docs = [
|
|
"jinja2>=3.1.2",
|
|
"mkdocs-include-markdown-plugin==6.2.2",
|
|
"mkdocs-macros-plugin",
|
|
"mkdocs==1.6.1",
|
|
"pymdown-extensions",
|
|
]
|
|
test = [
|
|
"build",
|
|
"jinja2",
|
|
"pytest-timeout",
|
|
"pytest-xdist",
|
|
"pytest-rerunfailures!=16.0",
|
|
"pytest>=6",
|
|
"setuptools",
|
|
"tomli_w",
|
|
"validate-pyproject",
|
|
]
|
|
dev = [
|
|
{include-group = "bin"},
|
|
{include-group = "docs"},
|
|
{include-group = "test"},
|
|
]
|
|
|
|
|
|
[tool.pytest.ini_options]
|
|
minversion = "6.0"
|
|
addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
|
|
junit_family = "xunit2"
|
|
xfail_strict = true
|
|
filterwarnings = ["error"]
|
|
log_cli_level = "info"
|
|
|
|
|
|
[tool.mypy]
|
|
python_version = "3.8"
|
|
files = [
|
|
"cibuildwheel/*.py",
|
|
"test/**/*.py",
|
|
"unit_test/**/*.py",
|
|
"bin/*.py",
|
|
"noxfile.py",
|
|
]
|
|
warn_unused_configs = true
|
|
|
|
strict = true
|
|
disallow_untyped_defs = false
|
|
|
|
enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
|
|
warn_unreachable = false
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "cibuildwheel.*"
|
|
disallow_untyped_defs = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = [
|
|
"setuptools._distutils", # needed even if only directly import setuptools._distutils.util
|
|
"setuptools._distutils.util",
|
|
"bashlex",
|
|
"bashlex.*",
|
|
"importlib_resources",
|
|
]
|
|
ignore_missing_imports = true
|
|
|
|
|
|
[tool.pylint]
|
|
py-version = "3.8"
|
|
jobs = "0"
|
|
fail-on = ["E", "F"]
|
|
fail-under = "9.8"
|
|
reports.output-format = "colorized"
|
|
messages_control.enable = [
|
|
"useless-suppression",
|
|
]
|
|
messages_control.disable = [
|
|
"abstract-class-instantiated", # filelock triggers this
|
|
"duplicate-code",
|
|
"fixme",
|
|
"invalid-name",
|
|
"line-too-long",
|
|
"missing-class-docstring",
|
|
"missing-function-docstring",
|
|
"missing-module-docstring",
|
|
"no-else-break",
|
|
"no-else-return",
|
|
"protected-access",
|
|
"too-few-public-methods",
|
|
"too-many-arguments",
|
|
"too-many-branches",
|
|
"too-many-instance-attributes",
|
|
"too-many-lines",
|
|
"too-many-locals",
|
|
"too-many-nested-blocks",
|
|
"too-many-return-statements",
|
|
"too-many-statements",
|
|
"unsubscriptable-object",
|
|
"wrong-import-position",
|
|
"unused-argument", # Handled by Ruff
|
|
"broad-exception-raised", # Could be improved eventually
|
|
"consider-using-in", # MyPy can't narrow "in"
|
|
]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
|
|
[tool.ruff.lint]
|
|
extend-select = [
|
|
"B", # flake8-bugbear
|
|
"I", # isort
|
|
"ARG", # flake8-unused-arguments
|
|
"C4", # flake8-comprehensions
|
|
"EM", # flake8-errmsg
|
|
"ICN", # flake8-import-conventions
|
|
"ISC", # flake8-implicit-str-concat
|
|
"G", # flake8-logging-format
|
|
"PGH", # pygrep-hooks
|
|
"PIE", # flake8-pie
|
|
"PL", # pylint
|
|
"PT", # flake8-pytest-style
|
|
"RET", # flake8-return
|
|
"RUF", # Ruff-specific
|
|
"SIM", # flake8-simplify
|
|
"TID251", # flake8-tidy-imports.banned-api
|
|
"UP", # pyupgrade
|
|
"YTT", # flake8-2020
|
|
"EXE", # flake8-executable
|
|
"PYI", # flake8-pyi
|
|
]
|
|
ignore = [
|
|
"PLR", # Design related pylint codes
|
|
"E501", # Line too long
|
|
"RET504", "RET505", "RET508", # else after control flow
|
|
"PT007", # False positive
|
|
"PYI025", # Set as AbstractSet
|
|
"ISC001", # Conflicts with formatter
|
|
]
|
|
typing-modules = ["cibuildwheel._compat.typing"]
|
|
flake8-unused-arguments.ignore-variadic-names = true
|
|
|
|
[tool.ruff.lint.flake8-tidy-imports.banned-api]
|
|
"typing.Mapping".msg = "Use collections.abc.Mapping instead."
|
|
"typing.Callable".msg = "Use collections.abc.Callable instead."
|
|
"typing.Iterator".msg = "Use collections.abc.Iterator instead."
|
|
"typing.Sequence".msg = "Use collections.abc.Sequence instead."
|
|
"typing.Set".msg = "Use collections.abc.Set instead."
|
|
"typing.NotRequired".msg = "Use cibuildwheel._compat.typing.NotRequired instead."
|
|
"typing.assert_never".msg = "Use cibuildwheel._compat.typing.assert_never instead."
|
|
"tomllib".msg = "Use cibuildwheel._compat.tomllib instead."
|
|
"tomli".msg = "Use cibuildwheel._compat.tomllib instead."
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"unit_test/*" = ["PLC1901"]
|
|
"cibuildwheel/_compat/**.py" = ["TID251"]
|
|
"bin/*" = ["TID251"]
|
|
|
|
[tool.repo-review]
|
|
ignore = ["PC170", "PP303"]
|
|
|
|
[tool.check-wheel-contents]
|
|
ignore = ["W002"] # requirements-*.txt are allowed to be duplicates of one another
|