Merge branch 'main' into arm64
This commit is contained in:
@@ -34,7 +34,7 @@ jobs:
|
||||
name: artifact
|
||||
path: dist
|
||||
|
||||
- uses: pypa/gh-action-pypi-publish@v1.5.0
|
||||
- uses: pypa/gh-action-pypi-publish@v1.5.1
|
||||
with:
|
||||
user: __token__
|
||||
password: ${{ secrets.pypi_password }}
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
name: Update dependencies
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/workflows/update-dependencies.yml'
|
||||
- 'bin/update_pythons.py'
|
||||
- 'bin/update_docker.py'
|
||||
- 'bin/update_virtualenv.py'
|
||||
- 'bin/projects.py'
|
||||
- 'docs/data/projects.yml'
|
||||
- 'noxfile.py'
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 6 * * 1' # "At 06:00 on Monday."
|
||||
@@ -12,10 +21,10 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-python@v4
|
||||
|
||||
- uses: wntrblm/nox@2022.8.7
|
||||
with:
|
||||
python-version: "3.11-dev"
|
||||
- uses: excitedleigh/setup-nox@v2.1.0
|
||||
python-versions: "3.6, 3.7, 3.8, 3.9, 3.10, 3.11-dev"
|
||||
|
||||
- name: "Run update: dependencies"
|
||||
run: nox --force-color -s update_constraints
|
||||
|
||||
@@ -14,7 +14,7 @@ repos:
|
||||
- id: trailing-whitespace
|
||||
|
||||
- repo: https://github.com/asottile/pyupgrade
|
||||
rev: v2.37.2
|
||||
rev: v2.37.3
|
||||
hooks:
|
||||
- id: pyupgrade
|
||||
args: ["--py37-plus"]
|
||||
@@ -22,7 +22,7 @@ repos:
|
||||
|
||||
# Autoremoves unused imports
|
||||
- repo: https://github.com/hadialqattan/pycln
|
||||
rev: v2.0.4
|
||||
rev: v2.1.1
|
||||
hooks:
|
||||
- id: pycln
|
||||
args: [--all]
|
||||
@@ -41,9 +41,10 @@ repos:
|
||||
- id: black
|
||||
|
||||
- repo: https://github.com/asottile/setup-cfg-fmt
|
||||
rev: v1.20.2
|
||||
rev: v2.0.0
|
||||
hooks:
|
||||
- id: setup-cfg-fmt
|
||||
args: [--include-version-classifiers, --max-py-version=3.10]
|
||||
|
||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||
rev: v0.971
|
||||
@@ -73,14 +74,14 @@ repos:
|
||||
additional_dependencies: *mypy-dependencies
|
||||
|
||||
- repo: https://github.com/asottile/yesqa
|
||||
rev: v1.3.0
|
||||
rev: v1.4.0
|
||||
hooks:
|
||||
- id: yesqa
|
||||
additional_dependencies: &flake8-dependencies
|
||||
- flake8-bugbear
|
||||
|
||||
- repo: https://github.com/PyCQA/flake8
|
||||
rev: 4.0.1
|
||||
rev: 5.0.4
|
||||
hooks:
|
||||
- id: flake8
|
||||
exclude: cibuildwheel/resources/
|
||||
|
||||
@@ -29,7 +29,7 @@ What does it do?
|
||||
| CPython 3.8 | ✅ | ✅ | ✅ | ✅ | N/A | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅² | ✅³ | ✅ | ✅ | ✅ | ✅ |
|
||||
| CPython 3.10 | ✅ | ✅ | ✅ | ✅ | ✅² | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| CPython 3.11⁴ | ✅ | ✅ | ✅ | ✅ | ✅² | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| CPython 3.11 | ✅ | ✅ | ✅ | ✅ | ✅² | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| PyPy 3.7 v7.3 | ✅ | N/A | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A |
|
||||
| PyPy 3.8 v7.3 | ✅ | N/A | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A |
|
||||
| PyPy 3.9 v7.3 | ✅ | N/A | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A |
|
||||
@@ -37,7 +37,6 @@ What does it do?
|
||||
<sup>¹ PyPy is only supported for manylinux wheels.</sup><br>
|
||||
<sup>² Windows arm64 support is experimental.</sup><br>
|
||||
<sup>³ Alpine 3.14 and very briefly 3.15's default python3 [was not able to load](https://github.com/pypa/cibuildwheel/issues/934) musllinux wheels. This has been fixed; please upgrade the python package if using Alpine from before the fix.</sup><br>
|
||||
<sup>⁴ CPython 3.11 is available using the [CIBW_PRERELEASE_PYTHONS](https://cibuildwheel.readthedocs.io/en/stable/options/#prerelease-pythons) option.</sup><br>
|
||||
|
||||
- Builds manylinux, musllinux, macOS 10.9+, and Windows wheels for CPython and PyPy
|
||||
- Works on GitHub Actions, Azure Pipelines, Travis CI, AppVeyor, CircleCI, and GitLab CI
|
||||
@@ -89,7 +88,7 @@ jobs:
|
||||
- uses: actions/setup-python@v3
|
||||
|
||||
- name: Install cibuildwheel
|
||||
run: python -m pip install cibuildwheel==2.8.1
|
||||
run: python -m pip install cibuildwheel==2.9.0
|
||||
|
||||
- name: Build wheels
|
||||
run: python -m cibuildwheel --output-dir wheelhouse
|
||||
@@ -204,6 +203,15 @@ Changelog
|
||||
|
||||
<!-- this section was generated by bin/update_readme_changelog.py -- do not edit manually -->
|
||||
|
||||
### v2.9.0
|
||||
|
||||
_11 August 2022_
|
||||
|
||||
- 🌟 CPython 3.11 wheels are now built by default - without the CIBW_PRERELEASE_PYTHONS flag. It's time to build and upload these wheels to PyPI! This release includes CPython 3.11.0rc1, which is guaranteed to be ABI compatible with the final release. (#1226)
|
||||
- ⚠️ Removed support for running cibuildwheel in Python 3.6. Python 3.6 is EOL. However, cibuildwheel continues to build CPython 3.6 wheels for the moment. (#1175)
|
||||
- ✨ Improved error messages when misspelling TOML options, suggesting close matches (#1205)
|
||||
- 🛠 When running on Apple Silicon (so far, an unsupported mode of operation), cibuildwheel no longer builds universal2 wheels by default - just arm64. See [#1204](https://github.com/pypa/cibuildwheel/issues/1204) for discussion. We hope to release official support for native builds on Apple Silicon soon! (#1217)
|
||||
|
||||
### v2.8.1
|
||||
|
||||
_18 July 2022_
|
||||
@@ -241,13 +249,6 @@ _7 June 2022_
|
||||
|
||||
- 🛠 Update the prerelease CPython 3.11 to 3.11.0b3
|
||||
|
||||
### v2.6.0
|
||||
|
||||
_25 May 2022_
|
||||
|
||||
- 🌟 Added the ability to test building wheels on CPython 3.11! Because CPython 3.11 is in beta, these wheels should not be distributed, because they might not be compatible with the final release, but it's available to build for testing purposes. Use the flag [`--prerelease-pythons` or `CIBW_PRERELEASE_PYTHONS`](https://cibuildwheel.readthedocs.io/en/stable/options/#prerelease-pythons) to test. This version of cibuildwheel includes CPython 3.11.0b1. (#1109)
|
||||
- 📚 Added an interactive diagram showing how cibuildwheel works to the [docs](https://cibuildwheel.readthedocs.io/en/stable/#how-it-works) (#1100)
|
||||
|
||||
<!-- END bin/update_readme_changelog.py -->
|
||||
|
||||
---
|
||||
@@ -272,6 +273,7 @@ Maintainers
|
||||
- Yannick Jadoul [@YannickJadoul](https://github.com/YannickJadoul)
|
||||
- Matthieu Darbois [@mayeut](https://github.com/mayeut)
|
||||
- Henry Schreiner [@henryiii](https://github.com/henryiii)
|
||||
- Grzegorz Bokota [@Czaki](https://github.com/Czaki)
|
||||
|
||||
Credits
|
||||
-------
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@ jobs:
|
||||
inputs:
|
||||
versionSpec: '3.8'
|
||||
- bash: |
|
||||
python -m pip install -e ".[dev]" pytest-azurepipelines
|
||||
python -m pip install -e ".[dev]"
|
||||
python ./bin/run_tests.py
|
||||
|
||||
- job: macos_38
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
inputs:
|
||||
versionSpec: '3.8'
|
||||
- bash: |
|
||||
python -m pip install -e ".[dev]" pytest-azurepipelines
|
||||
python -m pip install -e ".[dev]"
|
||||
python ./bin/run_tests.py
|
||||
|
||||
- job: windows_38
|
||||
@@ -28,5 +28,5 @@ jobs:
|
||||
inputs:
|
||||
versionSpec: '3.8'
|
||||
- bash: |
|
||||
python -m pip install -e ".[dev]" pytest-azurepipelines
|
||||
python -m pip install -e ".[dev]"
|
||||
python ./bin/run_tests.py
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
DIR = Path(__file__).parent.resolve()
|
||||
RESOURCES = DIR.parent / "cibuildwheel/resources"
|
||||
|
||||
python_version = "".join(str(v) for v in sys.version_info[:2])
|
||||
|
||||
env = os.environ.copy()
|
||||
|
||||
# CUSTOM_COMPILE_COMMAND is a pip-compile option that tells users how to
|
||||
# regenerate the constraints files
|
||||
env["CUSTOM_COMPILE_COMMAND"] = "bin/update_dependencies.py"
|
||||
|
||||
os.chdir(DIR.parent)
|
||||
|
||||
subprocess.run(
|
||||
[
|
||||
"pip-compile",
|
||||
"--allow-unsafe",
|
||||
"--upgrade",
|
||||
"cibuildwheel/resources/constraints.in",
|
||||
f"--output-file=cibuildwheel/resources/constraints-python{python_version}.txt",
|
||||
],
|
||||
check=True,
|
||||
env=env,
|
||||
)
|
||||
|
||||
# default constraints.txt
|
||||
if python_version == "39":
|
||||
shutil.copyfile(
|
||||
RESOURCES / f"constraints-python{python_version}.txt",
|
||||
RESOURCES / "constraints.txt",
|
||||
)
|
||||
@@ -1,3 +1,3 @@
|
||||
from __future__ import annotations
|
||||
|
||||
__version__ = "2.8.1"
|
||||
__version__ = "2.9.0"
|
||||
|
||||
@@ -66,10 +66,6 @@ class Architecture(Enum):
|
||||
if platform == "windows" and native_architecture == Architecture.AMD64:
|
||||
result.add(Architecture.x86)
|
||||
|
||||
if platform == "macos" and native_architecture == Architecture.arm64:
|
||||
# arm64 can build and test both archs of a universal2 wheel.
|
||||
result.add(Architecture.universal2)
|
||||
|
||||
return result
|
||||
|
||||
@staticmethod
|
||||
|
||||
+30
-21
@@ -1,5 +1,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import difflib
|
||||
import functools
|
||||
import os
|
||||
import sys
|
||||
@@ -188,14 +189,10 @@ class OptionsReader:
|
||||
|
||||
# Validate project config
|
||||
for option_name in config_options:
|
||||
if not self._is_valid_global_option(option_name):
|
||||
raise ConfigOptionError(f'Option "{option_name}" not supported in a config file')
|
||||
self._validate_global_option(option_name)
|
||||
|
||||
for option_name in config_platform_options:
|
||||
if not self._is_valid_platform_option(option_name):
|
||||
raise ConfigOptionError(
|
||||
f'Option "{option_name}" not supported in the "{self.platform}" section'
|
||||
)
|
||||
self._validate_platform_option(option_name)
|
||||
|
||||
self.config_options = config_options
|
||||
self.config_platform_options = config_platform_options
|
||||
@@ -207,40 +204,51 @@ class OptionsReader:
|
||||
|
||||
if config_overrides is not None:
|
||||
if not isinstance(config_overrides, list):
|
||||
raise ConfigOptionError('"tool.cibuildwheel.overrides" must be a list')
|
||||
raise ConfigOptionError("'tool.cibuildwheel.overrides' must be a list")
|
||||
|
||||
for config_override in config_overrides:
|
||||
select = config_override.pop("select", None)
|
||||
|
||||
if not select:
|
||||
raise ConfigOptionError('"select" must be set in an override')
|
||||
raise ConfigOptionError("'select' must be set in an override")
|
||||
|
||||
if isinstance(select, list):
|
||||
select = " ".join(select)
|
||||
|
||||
self.overrides.append(Override(select, config_override))
|
||||
|
||||
def _is_valid_global_option(self, name: str) -> bool:
|
||||
def _validate_global_option(self, name: str) -> None:
|
||||
"""
|
||||
Returns True if an option with this name is allowed in the
|
||||
Raises an error if an option with this name is not allowed in the
|
||||
[tool.cibuildwheel] section of a config file.
|
||||
"""
|
||||
allowed_option_names = self.default_options.keys() | PLATFORMS | {"overrides"}
|
||||
|
||||
return name in allowed_option_names
|
||||
if name not in allowed_option_names:
|
||||
msg = f"Option {name!r} not supported in a config file."
|
||||
matches = difflib.get_close_matches(name, allowed_option_names, 1, 0.7)
|
||||
if matches:
|
||||
msg += f" Perhaps you meant {matches[0]!r}?"
|
||||
raise ConfigOptionError(msg)
|
||||
|
||||
def _is_valid_platform_option(self, name: str) -> bool:
|
||||
def _validate_platform_option(self, name: str) -> None:
|
||||
"""
|
||||
Returns True if an option with this name is allowed in the
|
||||
Raises an error if an option with this name is not allowed in the
|
||||
[tool.cibuildwheel.<current-platform>] section of a config file.
|
||||
"""
|
||||
disallowed_platform_options = self.disallow.get(self.platform, set())
|
||||
if name in disallowed_platform_options:
|
||||
return False
|
||||
msg = f"{name!r} is not allowed in {disallowed_platform_options}"
|
||||
raise ConfigOptionError(msg)
|
||||
|
||||
allowed_option_names = self.default_options.keys() | self.default_platform_options.keys()
|
||||
|
||||
return name in allowed_option_names
|
||||
if name not in allowed_option_names:
|
||||
msg = f"Option {name!r} not supported in the {self.platform!r} section"
|
||||
matches = difflib.get_close_matches(name, allowed_option_names, 1, 0.7)
|
||||
if matches:
|
||||
msg += f" Perhaps you meant {matches[0]!r}?"
|
||||
raise ConfigOptionError(msg)
|
||||
|
||||
def _load_file(self, filename: Path) -> tuple[dict[str, Any], dict[str, Any]]:
|
||||
"""
|
||||
@@ -290,7 +298,8 @@ class OptionsReader:
|
||||
"""
|
||||
|
||||
if name not in self.default_options and name not in self.default_platform_options:
|
||||
raise ConfigOptionError(f"{name} must be in cibuildwheel/resources/defaults.toml file")
|
||||
msg = f"{name!r} must be in cibuildwheel/resources/defaults.toml file to be accessed."
|
||||
raise ConfigOptionError(msg)
|
||||
|
||||
# Environment variable form
|
||||
envvar = f"CIBW_{name.upper().replace('-', '_')}"
|
||||
@@ -314,12 +323,12 @@ class OptionsReader:
|
||||
|
||||
if isinstance(result, dict):
|
||||
if table is None:
|
||||
raise ConfigOptionError(f"{name} does not accept a table")
|
||||
raise ConfigOptionError(f"{name!r} does not accept a table")
|
||||
return table["sep"].join(table["item"].format(k=k, v=v) for k, v in result.items())
|
||||
|
||||
if isinstance(result, list):
|
||||
if sep is None:
|
||||
raise ConfigOptionError(f"{name} does not accept a list")
|
||||
raise ConfigOptionError(f"{name!r} does not accept a list")
|
||||
return sep.join(result)
|
||||
|
||||
if isinstance(result, int):
|
||||
@@ -393,7 +402,7 @@ class Options:
|
||||
container_engine_str = self.reader.get("container-engine")
|
||||
|
||||
if container_engine_str not in ["docker", "podman"]:
|
||||
msg = f"cibuildwheel: Unrecognised container_engine '{container_engine_str}', only 'docker' and 'podman' are supported"
|
||||
msg = f"cibuildwheel: Unrecognised container_engine {container_engine_str!r}, only 'docker' and 'podman' are supported"
|
||||
print(msg, file=sys.stderr)
|
||||
sys.exit(2)
|
||||
|
||||
@@ -437,7 +446,7 @@ class Options:
|
||||
elif build_frontend_str == "pip":
|
||||
build_frontend = "pip"
|
||||
else:
|
||||
msg = f"cibuildwheel: Unrecognised build frontend '{build_frontend_str}', only 'pip' and 'build' are supported"
|
||||
msg = f"cibuildwheel: Unrecognised build frontend {build_frontend_str!r}, only 'pip' and 'build' are supported"
|
||||
print(msg, file=sys.stderr)
|
||||
sys.exit(2)
|
||||
|
||||
@@ -445,7 +454,7 @@ class Options:
|
||||
environment = parse_environment(environment_config)
|
||||
except (EnvironmentParseError, ValueError):
|
||||
print(
|
||||
f'cibuildwheel: Malformed environment option "{environment_config}"',
|
||||
f"cibuildwheel: Malformed environment option {environment_config!r}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
traceback.print_exc(None, sys.stderr)
|
||||
|
||||
@@ -81,12 +81,12 @@ python_configurations = [
|
||||
{ identifier = "cp39-macosx_x86_64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.13/python-3.9.13-macos11.pkg" },
|
||||
{ identifier = "cp39-macosx_arm64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.13/python-3.9.13-macos11.pkg" },
|
||||
{ identifier = "cp39-macosx_universal2", version = "3.9", url = "https://www.python.org/ftp/python/3.9.13/python-3.9.13-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_x86_64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.5/python-3.10.5-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_arm64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.5/python-3.10.5-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_universal2", version = "3.10", url = "https://www.python.org/ftp/python/3.10.5/python-3.10.5-macos11.pkg" },
|
||||
{ identifier = "cp311-macosx_x86_64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0b4-macos11.pkg" },
|
||||
{ identifier = "cp311-macosx_arm64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0b4-macos11.pkg" },
|
||||
{ identifier = "cp311-macosx_universal2", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0b4-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_x86_64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.6/python-3.10.6-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_arm64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.6/python-3.10.6-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_universal2", version = "3.10", url = "https://www.python.org/ftp/python/3.10.6/python-3.10.6-macos11.pkg" },
|
||||
{ identifier = "cp311-macosx_x86_64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0rc1-macos11.pkg" },
|
||||
{ identifier = "cp311-macosx_arm64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0rc1-macos11.pkg" },
|
||||
{ identifier = "cp311-macosx_universal2", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0rc1-macos11.pkg" },
|
||||
{ identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-osx64.tar.bz2" },
|
||||
{ identifier = "pp38-macosx_x86_64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.9-osx64.tar.bz2" },
|
||||
{ identifier = "pp39-macosx_x86_64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.9-osx64.tar.bz2" },
|
||||
@@ -102,13 +102,13 @@ python_configurations = [
|
||||
{ identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" },
|
||||
{ identifier = "cp39-win32", version = "3.9.13", arch = "32" },
|
||||
{ identifier = "cp39-win_amd64", version = "3.9.13", arch = "64" },
|
||||
{ identifier = "cp310-win32", version = "3.10.5", arch = "32" },
|
||||
{ identifier = "cp310-win_amd64", version = "3.10.5", arch = "64" },
|
||||
{ identifier = "cp311-win32", version = "3.11.0-b4", arch = "32" },
|
||||
{ identifier = "cp311-win_amd64", version = "3.11.0-b4", arch = "64" },
|
||||
{ identifier = "cp310-win32", version = "3.10.6", arch = "32" },
|
||||
{ identifier = "cp310-win_amd64", version = "3.10.6", arch = "64" },
|
||||
{ identifier = "cp311-win32", version = "3.11.0-rc1", arch = "32" },
|
||||
{ identifier = "cp311-win_amd64", version = "3.11.0-rc1", arch = "64" },
|
||||
{ identifier = "cp39-win_arm64", version = "3.9.10", arch = "ARM64" },
|
||||
{ identifier = "cp310-win_arm64", version = "3.10.5", arch = "ARM64" },
|
||||
{ identifier = "cp311-win_arm64", version = "3.11.0-b4", arch = "ARM64" },
|
||||
{ identifier = "cp310-win_arm64", version = "3.10.6", arch = "ARM64" },
|
||||
{ identifier = "cp311-win_arm64", version = "3.11.0-rc1", arch = "ARM64" },
|
||||
{ identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-win64.zip" },
|
||||
{ identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.9-win64.zip" },
|
||||
{ identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.9-win64.zip" },
|
||||
|
||||
@@ -2,21 +2,19 @@
|
||||
# This file is autogenerated by pip-compile with python 3.10
|
||||
# To update, run:
|
||||
#
|
||||
# bin/update_dependencies.py
|
||||
# nox -s update_constraints-3.10
|
||||
#
|
||||
delocate==0.10.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.3.5
|
||||
# via virtualenv
|
||||
filelock==3.7.1
|
||||
filelock==3.8.0
|
||||
# via virtualenv
|
||||
platformdirs==2.5.2
|
||||
# via virtualenv
|
||||
six==1.16.0
|
||||
# via virtualenv
|
||||
typing-extensions==4.3.0
|
||||
# via delocate
|
||||
virtualenv==20.15.1
|
||||
virtualenv==20.16.3
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
wheel==0.37.1
|
||||
# via
|
||||
@@ -24,7 +22,7 @@ wheel==0.37.1
|
||||
# delocate
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==22.2
|
||||
pip==22.2.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==63.2.0
|
||||
setuptools==63.4.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -2,21 +2,19 @@
|
||||
# This file is autogenerated by pip-compile with python 3.11
|
||||
# To update, run:
|
||||
#
|
||||
# bin/update_dependencies.py
|
||||
# nox -s update_constraints-3.11
|
||||
#
|
||||
delocate==0.10.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.3.5
|
||||
# via virtualenv
|
||||
filelock==3.7.1
|
||||
filelock==3.8.0
|
||||
# via virtualenv
|
||||
platformdirs==2.5.2
|
||||
# via virtualenv
|
||||
six==1.16.0
|
||||
# via virtualenv
|
||||
typing-extensions==4.3.0
|
||||
# via delocate
|
||||
virtualenv==20.15.1
|
||||
virtualenv==20.16.3
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
wheel==0.37.1
|
||||
# via
|
||||
@@ -24,7 +22,7 @@ wheel==0.37.1
|
||||
# delocate
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==22.2
|
||||
pip==22.2.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==63.2.0
|
||||
setuptools==63.4.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# This file is autogenerated by pip-compile with python 3.6
|
||||
# To update, run:
|
||||
#
|
||||
# bin/update_dependencies.py
|
||||
# nox -s update_constraints-3.6
|
||||
#
|
||||
delocate==0.10.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -16,13 +16,11 @@ importlib-resources==5.4.0
|
||||
# via virtualenv
|
||||
platformdirs==2.4.0
|
||||
# via virtualenv
|
||||
six==1.16.0
|
||||
# via virtualenv
|
||||
typing-extensions==4.1.1
|
||||
# via
|
||||
# delocate
|
||||
# importlib-metadata
|
||||
virtualenv==20.15.1
|
||||
virtualenv==20.16.3
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
wheel==0.37.1
|
||||
# via
|
||||
|
||||
@@ -2,25 +2,23 @@
|
||||
# This file is autogenerated by pip-compile with python 3.7
|
||||
# To update, run:
|
||||
#
|
||||
# bin/update_dependencies.py
|
||||
# nox -s update_constraints-3.7
|
||||
#
|
||||
delocate==0.10.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.3.5
|
||||
# via virtualenv
|
||||
filelock==3.7.1
|
||||
filelock==3.8.0
|
||||
# via virtualenv
|
||||
importlib-metadata==4.12.0
|
||||
# via virtualenv
|
||||
platformdirs==2.5.2
|
||||
# via virtualenv
|
||||
six==1.16.0
|
||||
# via virtualenv
|
||||
typing-extensions==4.3.0
|
||||
# via
|
||||
# delocate
|
||||
# importlib-metadata
|
||||
virtualenv==20.15.1
|
||||
virtualenv==20.16.3
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
wheel==0.37.1
|
||||
# via
|
||||
@@ -30,7 +28,7 @@ zipp==3.8.1
|
||||
# via importlib-metadata
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==22.2
|
||||
pip==22.2.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==63.2.0
|
||||
setuptools==63.4.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -2,21 +2,19 @@
|
||||
# This file is autogenerated by pip-compile with python 3.8
|
||||
# To update, run:
|
||||
#
|
||||
# bin/update_dependencies.py
|
||||
# nox -s update_constraints-3.8
|
||||
#
|
||||
delocate==0.10.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.3.5
|
||||
# via virtualenv
|
||||
filelock==3.7.1
|
||||
filelock==3.8.0
|
||||
# via virtualenv
|
||||
platformdirs==2.5.2
|
||||
# via virtualenv
|
||||
six==1.16.0
|
||||
# via virtualenv
|
||||
typing-extensions==4.3.0
|
||||
# via delocate
|
||||
virtualenv==20.15.1
|
||||
virtualenv==20.16.3
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
wheel==0.37.1
|
||||
# via
|
||||
@@ -24,7 +22,7 @@ wheel==0.37.1
|
||||
# delocate
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==22.2
|
||||
pip==22.2.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==63.2.0
|
||||
setuptools==63.4.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -2,21 +2,19 @@
|
||||
# This file is autogenerated by pip-compile with python 3.9
|
||||
# To update, run:
|
||||
#
|
||||
# bin/update_dependencies.py
|
||||
# nox -s update_constraints-3.9
|
||||
#
|
||||
delocate==0.10.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.3.5
|
||||
# via virtualenv
|
||||
filelock==3.7.1
|
||||
filelock==3.8.0
|
||||
# via virtualenv
|
||||
platformdirs==2.5.2
|
||||
# via virtualenv
|
||||
six==1.16.0
|
||||
# via virtualenv
|
||||
typing-extensions==4.3.0
|
||||
# via delocate
|
||||
virtualenv==20.15.1
|
||||
virtualenv==20.16.3
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
wheel==0.37.1
|
||||
# via
|
||||
@@ -24,7 +22,7 @@ wheel==0.37.1
|
||||
# delocate
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==22.2
|
||||
pip==22.2.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==63.2.0
|
||||
setuptools==63.4.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
#
|
||||
# This file is autogenerated by pip-compile with python 3.9
|
||||
# This file is autogenerated by pip-compile with python 3.11
|
||||
# To update, run:
|
||||
#
|
||||
# bin/update_dependencies.py
|
||||
# nox -s update_constraints-3.11
|
||||
#
|
||||
delocate==0.10.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.3.5
|
||||
# via virtualenv
|
||||
filelock==3.7.1
|
||||
filelock==3.8.0
|
||||
# via virtualenv
|
||||
platformdirs==2.5.2
|
||||
# via virtualenv
|
||||
six==1.16.0
|
||||
# via virtualenv
|
||||
typing-extensions==4.3.0
|
||||
# via delocate
|
||||
virtualenv==20.15.1
|
||||
virtualenv==20.16.3
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
wheel==0.37.1
|
||||
# via
|
||||
@@ -24,7 +22,7 @@ wheel==0.37.1
|
||||
# delocate
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==22.2
|
||||
pip==22.2.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==63.2.0
|
||||
setuptools==63.4.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -1,48 +1,48 @@
|
||||
[x86_64]
|
||||
manylinux1 = quay.io/pypa/manylinux1_x86_64:2022-07-17-f8ddacc
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-07-21-947f13c
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2022-07-21-947f13c
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-07-21-947f13c
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2022-07-21-947f13c
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2022-07-21-947f13c
|
||||
manylinux1 = quay.io/pypa/manylinux1_x86_64:2022-08-08-7292f33
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2022-08-09-51a01be
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-08-09-51a01be
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2022-08-09-51a01be
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2022-08-09-51a01be
|
||||
|
||||
[i686]
|
||||
manylinux1 = quay.io/pypa/manylinux1_i686:2022-07-17-f8ddacc
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-07-21-947f13c
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2022-07-21-947f13c
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-07-21-947f13c
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2022-07-21-947f13c
|
||||
manylinux1 = quay.io/pypa/manylinux1_i686:2022-08-08-7292f33
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2022-08-09-51a01be
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-08-09-51a01be
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2022-08-09-51a01be
|
||||
|
||||
[pypy_x86_64]
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-07-21-947f13c
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2022-07-21-947f13c
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-07-21-947f13c
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2022-07-21-947f13c
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2022-08-09-51a01be
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-08-09-51a01be
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2022-08-09-51a01be
|
||||
|
||||
[pypy_i686]
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-07-21-947f13c
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2022-07-21-947f13c
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-07-21-947f13c
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2022-08-09-51a01be
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-08-09-51a01be
|
||||
|
||||
[aarch64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2022-07-21-947f13c
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-07-21-947f13c
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2022-07-21-947f13c
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2022-07-21-947f13c
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2022-08-09-51a01be
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-08-09-51a01be
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2022-08-09-51a01be
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2022-08-09-51a01be
|
||||
|
||||
[ppc64le]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2022-07-21-947f13c
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-07-21-947f13c
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2022-07-21-947f13c
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2022-07-21-947f13c
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2022-08-09-51a01be
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-08-09-51a01be
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2022-08-09-51a01be
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2022-08-09-51a01be
|
||||
|
||||
[s390x]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2022-07-21-947f13c
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-07-21-947f13c
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2022-07-21-947f13c
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2022-08-09-51a01be
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-08-09-51a01be
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2022-08-09-51a01be
|
||||
|
||||
[pypy_aarch64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2022-07-21-947f13c
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-07-21-947f13c
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2022-07-21-947f13c
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2022-08-09-51a01be
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-08-09-51a01be
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2022-08-09-51a01be
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
version = "20.15.1"
|
||||
url = "https://github.com/pypa/get-virtualenv/blob/20.15.1/public/virtualenv.pyz?raw=true"
|
||||
version = "20.16.3"
|
||||
url = "https://github.com/pypa/get-virtualenv/blob/20.16.3/public/virtualenv.pyz?raw=true"
|
||||
|
||||
@@ -242,7 +242,7 @@ class BuildSelector:
|
||||
requires_python: SpecifierSet | None = None
|
||||
|
||||
# a pattern that skips prerelease versions, when include_prereleases is False.
|
||||
PRERELEASE_SKIP: ClassVar[str] = "cp311-*"
|
||||
PRERELEASE_SKIP: ClassVar[str] = ""
|
||||
prerelease_pythons: bool = False
|
||||
|
||||
def __call__(self, build_id: str) -> bool:
|
||||
|
||||
@@ -2,6 +2,15 @@
|
||||
title: Changelog
|
||||
---
|
||||
|
||||
### v2.9.0
|
||||
|
||||
_11 August 2022_
|
||||
|
||||
- 🌟 CPython 3.11 wheels are now built by default - without the CIBW_PRERELEASE_PYTHONS flag. It's time to build and upload these wheels to PyPI! This release includes CPython 3.11.0rc1, which is guaranteed to be ABI compatible with the final release. (#1226)
|
||||
- ⚠️ Removed support for running cibuildwheel in Python 3.6. Python 3.6 is EOL. However, cibuildwheel continues to build CPython 3.6 wheels for the moment. (#1175)
|
||||
- ✨ Improved error messages when misspelling TOML options, suggesting close matches (#1205)
|
||||
- 🛠 When running on Apple Silicon (so far, an unsupported mode of operation), cibuildwheel no longer builds universal2 wheels by default - just arm64. See [#1204](https://github.com/pypa/cibuildwheel/issues/1204) for discussion. We hope to release official support for native builds on Apple Silicon soon! (#1217)
|
||||
|
||||
### v2.8.1
|
||||
|
||||
_18 July 2022_
|
||||
|
||||
@@ -594,3 +594,15 @@
|
||||
gh: SciTools/cf-units
|
||||
ci: [github]
|
||||
os: [apple, linux]
|
||||
|
||||
- name: envd
|
||||
gh: tensorchord/envd
|
||||
ci: [github]
|
||||
os: [apple, linux, windows]
|
||||
note: A machine learning development environment build toool
|
||||
|
||||
- name: mosec
|
||||
gh: mosecorg/mosec
|
||||
ci: [github]
|
||||
os: [linux, apple]
|
||||
note: A machine learning model serving framework powered by Rust
|
||||
|
||||
+7
-8
@@ -53,11 +53,11 @@ to load on Apple Silicon.
|
||||
available.
|
||||
|
||||
Generally speaking, because Pip 20.3 is required for the `universal2` wheel,
|
||||
most packages should provide both `x86_64` and `universal2` wheels for now.
|
||||
Once Pip 20.3+ is common on macOS, then it should be possible to ship only the
|
||||
`universal2` wheel.
|
||||
most packages should provide both `x86_64` and one of `universal2`/`arm64`
|
||||
wheels for now. When Pip 20.3+ is common on macOS, then it might be possible
|
||||
to ship only the `universal2` wheel.
|
||||
|
||||
**Apple Silicon wheels are not built by default**, but can be enabled by adding extra archs to the [`CIBW_ARCHS_MACOS` option](options.md#archs) - e.g. `x86_64 arm64 universal2`. Cross-compilation is provided by the Xcode toolchain.
|
||||
**Apple Silicon wheels are not built by default on Intel runners**, but can be enabled by adding extra archs to the [`CIBW_ARCHS_MACOS` option](options.md#archs) - e.g. `x86_64 arm64`. Cross-compilation is provided by the Xcode toolchain.
|
||||
|
||||
!!! important
|
||||
When cross-compiling on Intel, it is not possible to test `arm64` and the `arm64` part of a `universal2` wheel.
|
||||
@@ -66,8 +66,7 @@ Once Pip 20.3+ is common on macOS, then it should be possible to ship only the
|
||||
|
||||
Hopefully, cross-compilation is a temporary situation. Once we have widely
|
||||
available Apple Silicon CI runners, we can build and test `arm64` and
|
||||
`universal2` wheels natively. That's why `universal2` wheels are not yet built
|
||||
by default, and require opt-in by setting `CIBW_ARCHS_MACOS`.
|
||||
`universal2` wheels natively. That's why `universal2`/`arm64` wheels require opt-in by setting `CIBW_ARCHS_MACOS`.
|
||||
|
||||
!!! note
|
||||
Your runner needs Xcode Command Line Tools 12.2 or later to build `universal2` or `arm64`.
|
||||
@@ -133,7 +132,7 @@ There are two suggested methods for keeping cibuildwheel up to date that instead
|
||||
If you use GitHub Actions for builds, you can use cibuildwheel as an action:
|
||||
|
||||
```yaml
|
||||
uses: pypa/cibuildwheel@v2.8.1
|
||||
uses: pypa/cibuildwheel@v2.9.0
|
||||
```
|
||||
|
||||
This is a composite step that just runs cibuildwheel using pipx. You can set command-line options as `with:` parameters, and use `env:` as normal.
|
||||
@@ -155,7 +154,7 @@ The second option, and the only one that supports other CI systems, is using a `
|
||||
|
||||
```bash
|
||||
# requirements-cibw.txt
|
||||
cibuildwheel==2.8.1
|
||||
cibuildwheel==2.9.0
|
||||
```
|
||||
|
||||
Then your install step would have `python -m pip install -r requirements-cibw.txt` in it. Your `.github/dependabot.yml` file could look like this:
|
||||
|
||||
+1
-1
@@ -351,7 +351,7 @@ Default: `auto`
|
||||
| Linux / Intel | `x86_64` | `x86_64` `i686` | `x86_64` | `i686` |
|
||||
| Windows / Intel | `AMD64` | `AMD64` `x86` | `AMD64` | `x86` |
|
||||
| macOS / Intel | `x86_64` | `x86_64` | `x86_64` | |
|
||||
| macOS / Apple Silicon | `arm64` | `arm64` `universal2` | `arm64` `universal2`| |
|
||||
| macOS / Apple Silicon | `arm64` | `arm64` | `arm64` | |
|
||||
|
||||
If not listed above, `auto` is the same as `native`.
|
||||
|
||||
|
||||
+2
-2
@@ -182,7 +182,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Build wheels
|
||||
run: pipx run cibuildwheel==2.8.1
|
||||
run: pipx run cibuildwheel==2.9.0
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
@@ -217,7 +217,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/
|
||||
- uses: actions/setup-python@v3
|
||||
|
||||
- name: Install cibuildwheel
|
||||
run: python -m pip install cibuildwheel==2.8.1
|
||||
run: python -m pip install cibuildwheel==2.9.0
|
||||
|
||||
- name: Build wheels
|
||||
run: python -m cibuildwheel --output-dir wheelhouse
|
||||
|
||||
+114
-114
@@ -23,16 +23,16 @@ title: Working examples
|
||||
| [psutil][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Cross-platform lib for process and system monitoring in Python |
|
||||
| [vaex][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization and exploration of big tabular data at a billion rows per second 🚀 |
|
||||
| [Google Benchmark][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A microbenchmark support library |
|
||||
| [Apache Beam][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Apache Beam is a unified programming model for Batch and Streaming data processing. |
|
||||
| [duckdb][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | DuckDB is an in-process SQL OLAP Database Management System |
|
||||
| [Apache Beam][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Apache Beam is a unified programming model for Batch and Streaming data processing. |
|
||||
| [asyncpg][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A fast PostgreSQL Database Client Library for Python/asyncio. |
|
||||
| [PyGame][] | ![github icon][] | ![apple icon][] ![linux icon][] | pygame (the library) is a Free and Open Source python programming language library for making multimedia applications like games built on top of the excellent SDL library. C, Python, Native, OpenGL. |
|
||||
| [scikit-image][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Image processing library. Uses cibuildwheel to build and test a project that uses Cython with platform-native code. |
|
||||
| [cmake][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Multitagged binary builds for all supported platforms, using cibw 2 config configuration. |
|
||||
| [twisted-iocpsupport][] | ![github icon][] | ![windows icon][] | A submodule of Twisted that hooks into native C APIs using Cython. |
|
||||
| [websockets][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | Library for building WebSocket servers and clients. Mostly written in Python, with a small C 'speedups' extension module. |
|
||||
| [cvxpy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A Python-embedded modeling language for convex optimization problems. |
|
||||
| [PyOxidizer][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A modern Python application packaging and distribution tool |
|
||||
| [cvxpy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A Python-embedded modeling language for convex optimization problems. |
|
||||
| [Triton][] | ![github icon][] | ![linux icon][] | Self hosted runners |
|
||||
| [UltraJSON][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Ultra fast JSON decoder and encoder written in C with Python bindings |
|
||||
| [River][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | 🌊 Online machine learning in Python |
|
||||
@@ -40,8 +40,8 @@ title: Working examples
|
||||
| [pyzmq][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python bindings for zeromq, the networking library. Uses Cython and CFFI. |
|
||||
| [aiortc][] | ![github icon][] | ![apple icon][] ![linux icon][] | WebRTC and ORTC implementation for Python using asyncio. |
|
||||
| [vispy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Main repository for Vispy |
|
||||
| [Confluent client for Kafka][] | ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | setup in `tools/wheels/build-wheels.bat` |
|
||||
| [Implicit][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes GPU support for linux wheels |
|
||||
| [Confluent client for Kafka][] | ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | setup in `tools/wheels/build-wheels.bat` |
|
||||
| [tinyobjloader][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Tiny but powerful single file wavefront obj loader |
|
||||
| [Dependency Injector][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Dependency injection framework for Python, uses Windows TravisCI |
|
||||
| [coverage.py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The coverage tool for Python |
|
||||
@@ -60,8 +60,8 @@ title: Working examples
|
||||
| [aioquic][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | QUIC and HTTP/3 implementation in Python |
|
||||
| [ruptures][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Extensive Cython + NumPy [pyproject.toml](https://github.com/deepcharles/ruptures/blob/master/pyproject.toml) example. |
|
||||
| [DeepForest][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | An Efficient, Scalable and Optimized Python Framework for Deep Forest (2021.2.1) |
|
||||
| [google neuroglancer][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | WebGL-based viewer for volumetric data |
|
||||
| [Psycopg 3][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A modern implementation of a PostgreSQL adapter for Python |
|
||||
| [google neuroglancer][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | WebGL-based viewer for volumetric data |
|
||||
| [Parselmouth][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python interface to the Praat software package, using pybind11, C++17 and CMake, with the core Praat static library built only once and shared between wheels. |
|
||||
| [AutoPy][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. |
|
||||
| [H3-py][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for H3, a hierarchical hexagonal geospatial indexing system |
|
||||
@@ -74,12 +74,12 @@ title: Working examples
|
||||
| [tgcalls][] | ![github icon][] | ![apple icon][] ![windows icon][] | Python `pybind11` binding to Telegram's WebRTC library with third party dependencies like `OpenSSL`, `MozJPEG`, `FFmpeg`, etc. |
|
||||
| [dd-trace-py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Uses custom alternate arch emulation on GitHub |
|
||||
| [pybind11 python_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a Python-based build system |
|
||||
| [sourmash][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Quickly search, compare, and analyze genomic and metagenomic data sets. |
|
||||
| [time-machine][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Time mocking library using only the CPython C API. |
|
||||
| [sourmash][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Quickly search, compare, and analyze genomic and metagenomic data sets. |
|
||||
| [CTranslate2][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes libraries from the [Intel oneAPI toolkit](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html) and CUDA kernels compiled for multiple GPU architectures. |
|
||||
| [cyvcf2][] | ![github icon][] | ![apple icon][] ![linux icon][] | cython + htslib == fast VCF and BCF processing |
|
||||
| [matrixprofile][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python 3 library making time series data mining tasks, utilizing matrix profile algorithms, accessible to everyone. |
|
||||
| [abess][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A fast best-subset selection library. It uses cibuildwheel to build a large project with C++ extensions. |
|
||||
| [matrixprofile][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python 3 library making time series data mining tasks, utilizing matrix profile algorithms, accessible to everyone. |
|
||||
| [jq.py][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | Python bindings for jq |
|
||||
| [iminuit][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Jupyter-friendly Python interface for C++ MINUIT2 |
|
||||
| [Tokenizer][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast and customizable text tokenization library with BPE and SentencePiece support |
|
||||
@@ -96,9 +96,9 @@ title: Working examples
|
||||
| [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. |
|
||||
| [cf-units][] | ![github icon][] | ![apple icon][] ![linux icon][] | Units of measure as required by the Climate and Forecast (CF) Metadata Conventions |
|
||||
| [Imagecodecs (fork)][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] | Over 20 external dependencies in compiled libraries, custom docker image, `libomp`, `openblas` and `install_name_tool` for macOS. |
|
||||
| [clang-format][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Scikit-build wrapper around LLVM's CMake, all platforms, generic wheels. |
|
||||
| [pillow-heif][] | ![github icon][] | ![apple icon][] ![linux icon][] | Python CFFI binding to libheif library with third party dependencies like `libde265`, `x265`, `libaom` with test & publishing on PyPi. |
|
||||
| [power-grid-model][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python/C++ library for distribution power system analysis |
|
||||
| [clang-format][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Scikit-build wrapper around LLVM's CMake, all platforms, generic wheels. |
|
||||
| [numpythia][] | ![github icon][] | ![apple icon][] ![linux icon][] | The interface between PYTHIA and NumPy |
|
||||
| [pyjet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The interface between FastJet and NumPy |
|
||||
| [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 |
|
||||
@@ -124,16 +124,16 @@ title: Working examples
|
||||
[psutil]: https://github.com/giampaolo/psutil
|
||||
[vaex]: https://github.com/vaexio/vaex
|
||||
[Google Benchmark]: https://github.com/google/benchmark
|
||||
[Apache Beam]: https://github.com/apache/beam
|
||||
[duckdb]: https://github.com/duckdb/duckdb
|
||||
[Apache Beam]: https://github.com/apache/beam
|
||||
[asyncpg]: https://github.com/MagicStack/asyncpg
|
||||
[PyGame]: https://github.com/pygame/pygame
|
||||
[scikit-image]: https://github.com/scikit-image/scikit-image
|
||||
[cmake]: https://github.com/scikit-build/cmake-python-distributions
|
||||
[twisted-iocpsupport]: https://github.com/twisted/twisted-iocpsupport
|
||||
[websockets]: https://github.com/aaugustin/websockets
|
||||
[cvxpy]: https://github.com/cvxpy/cvxpy
|
||||
[PyOxidizer]: https://github.com/indygreg/PyOxidizer
|
||||
[cvxpy]: https://github.com/cvxpy/cvxpy
|
||||
[Triton]: https://github.com/openai/triton
|
||||
[UltraJSON]: https://github.com/ultrajson/ultrajson
|
||||
[River]: https://github.com/online-ml/river
|
||||
@@ -141,8 +141,8 @@ title: Working examples
|
||||
[pyzmq]: https://github.com/zeromq/pyzmq
|
||||
[aiortc]: https://github.com/aiortc/aiortc
|
||||
[vispy]: https://github.com/vispy/vispy
|
||||
[Confluent client for Kafka]: https://github.com/confluentinc/confluent-kafka-python
|
||||
[Implicit]: https://github.com/benfred/implicit
|
||||
[Confluent client for Kafka]: https://github.com/confluentinc/confluent-kafka-python
|
||||
[tinyobjloader]: https://github.com/tinyobjloader/tinyobjloader
|
||||
[Dependency Injector]: https://github.com/ets-labs/python-dependency-injector
|
||||
[coverage.py]: https://github.com/nedbat/coveragepy
|
||||
@@ -161,8 +161,8 @@ title: Working examples
|
||||
[aioquic]: https://github.com/aiortc/aioquic
|
||||
[ruptures]: https://github.com/deepcharles/ruptures
|
||||
[DeepForest]: https://github.com/LAMDA-NJU/Deep-Forest
|
||||
[google neuroglancer]: https://github.com/google/neuroglancer
|
||||
[Psycopg 3]: https://github.com/psycopg/psycopg
|
||||
[google neuroglancer]: https://github.com/google/neuroglancer
|
||||
[Parselmouth]: https://github.com/YannickJadoul/Parselmouth
|
||||
[AutoPy]: https://github.com/autopilot-rs/autopy
|
||||
[H3-py]: https://github.com/uber/h3-py
|
||||
@@ -175,12 +175,12 @@ title: Working examples
|
||||
[tgcalls]: https://github.com/MarshalX/tgcalls
|
||||
[dd-trace-py]: https://github.com/DataDog/dd-trace-py
|
||||
[pybind11 python_example]: https://github.com/pybind/python_example
|
||||
[sourmash]: https://github.com/dib-lab/sourmash
|
||||
[time-machine]: https://github.com/adamchainz/time-machine
|
||||
[sourmash]: https://github.com/dib-lab/sourmash
|
||||
[CTranslate2]: https://github.com/OpenNMT/CTranslate2
|
||||
[cyvcf2]: https://github.com/brentp/cyvcf2
|
||||
[matrixprofile]: https://github.com/matrix-profile-foundation/matrixprofile
|
||||
[abess]: https://github.com/abess-team/abess
|
||||
[matrixprofile]: https://github.com/matrix-profile-foundation/matrixprofile
|
||||
[jq.py]: https://github.com/mwilliamson/jq.py
|
||||
[iminuit]: https://github.com/scikit-hep/iminuit
|
||||
[Tokenizer]: https://github.com/OpenNMT/Tokenizer
|
||||
@@ -197,9 +197,9 @@ title: Working examples
|
||||
[polaroid]: https://github.com/daggy1234/polaroid
|
||||
[cf-units]: https://github.com/SciTools/cf-units
|
||||
[Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build
|
||||
[clang-format]: https://github.com/ssciwr/clang-format-wheel
|
||||
[pillow-heif]: https://github.com/bigcat88/pillow_heif
|
||||
[power-grid-model]: https://github.com/alliander-opensource/power-grid-model
|
||||
[clang-format]: https://github.com/ssciwr/clang-format-wheel
|
||||
[numpythia]: https://github.com/scikit-hep/numpythia
|
||||
[pyjet]: https://github.com/scikit-hep/pyjet
|
||||
[pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example
|
||||
@@ -220,106 +220,106 @@ title: Working examples
|
||||
[apple icon]: data/readme_icons/apple.svg
|
||||
[linux icon]: data/readme_icons/linux.svg
|
||||
|
||||
<!-- scikit-learn: 50835, last pushed 0 days ago -->
|
||||
<!-- NumPy: 21019, last pushed 0 days ago -->
|
||||
<!-- Tornado: 20645, last pushed 2 days ago -->
|
||||
<!-- pytorch-fairseq: 18637, last pushed 0 days ago -->
|
||||
<!-- Matplotlib: 15862, last pushed 0 days ago -->
|
||||
<!-- NCNN: 15025, last pushed 0 days ago -->
|
||||
<!-- Kivy: 14810, last pushed 0 days ago -->
|
||||
<!-- Prophet: 14707, last pushed 2 days ago -->
|
||||
<!-- MyPy: 13492, last pushed 1 days ago -->
|
||||
<!-- pydantic: 10511, last pushed 0 days ago -->
|
||||
<!-- MemRay: 8889, last pushed 2 days ago -->
|
||||
<!-- uvloop: 8735, last pushed 4 days ago -->
|
||||
<!-- psutil: 8545, last pushed 10 days ago -->
|
||||
<!-- vaex: 7189, last pushed 0 days ago -->
|
||||
<!-- Google Benchmark: 6678, last pushed 0 days ago -->
|
||||
<!-- Apache Beam: 5721, last pushed 0 days ago -->
|
||||
<!-- duckdb: 5584, last pushed 0 days ago -->
|
||||
<!-- asyncpg: 5563, last pushed 5 days ago -->
|
||||
<!-- PyGame: 4996, last pushed 0 days ago -->
|
||||
<!-- scikit-image: 4992, last pushed 1 days ago -->
|
||||
<!-- cmake: 4935, last pushed 0 days ago -->
|
||||
<!-- twisted-iocpsupport: 4673, last pushed 2 days ago -->
|
||||
<!-- websockets: 4075, last pushed 7 days ago -->
|
||||
<!-- cvxpy: 4015, last pushed 0 days ago -->
|
||||
<!-- PyOxidizer: 3924, last pushed 8 days ago -->
|
||||
<!-- Triton: 3812, last pushed 0 days ago -->
|
||||
<!-- UltraJSON: 3755, last pushed 4 days ago -->
|
||||
<!-- River: 3497, last pushed 0 days ago -->
|
||||
<!-- OpenSpiel: 3258, last pushed 1 days ago -->
|
||||
<!-- pyzmq: 3131, last pushed 11 days ago -->
|
||||
<!-- aiortc: 3005, last pushed 29 days ago -->
|
||||
<!-- vispy: 2905, last pushed 3 days ago -->
|
||||
<!-- Confluent client for Kafka: 2862, last pushed 3 days ago -->
|
||||
<!-- Implicit: 2856, last pushed 4 days ago -->
|
||||
<!-- tinyobjloader: 2599, last pushed 19 days ago -->
|
||||
<!-- Dependency Injector: 2250, last pushed 1 days ago -->
|
||||
<!-- coverage.py: 2111, last pushed 7 days ago -->
|
||||
<!-- PyCryptodome: 2062, last pushed 14 days ago -->
|
||||
<!-- PyYAML: 1888, last pushed 8 days ago -->
|
||||
<!-- numexpr: 1780, last pushed 5 days ago -->
|
||||
<!-- h5py: 1758, last pushed 19 days ago -->
|
||||
<!-- Wrapt: 1711, last pushed 84 days ago -->
|
||||
<!-- PyAV: 1609, last pushed 3 days ago -->
|
||||
<!-- SimpleJSON: 1500, last pushed 23 days ago -->
|
||||
<!-- pikepdf: 1411, last pushed 1 days ago -->
|
||||
<!-- OpenColorIO: 1344, last pushed 12 days ago -->
|
||||
<!-- Line Profiler: 1290, last pushed 2 days ago -->
|
||||
<!-- PyTables: 1139, last pushed 96 days ago -->
|
||||
<!-- OpenTimelineIO: 1074, last pushed 0 days ago -->
|
||||
<!-- aioquic: 995, last pushed 6 days ago -->
|
||||
<!-- ruptures: 994, last pushed 17 days ago -->
|
||||
<!-- DeepForest: 770, last pushed 71 days ago -->
|
||||
<!-- google neuroglancer: 741, last pushed 2 days ago -->
|
||||
<!-- Psycopg 3: 734, last pushed 0 days ago -->
|
||||
<!-- Parselmouth: 671, last pushed 14 days ago -->
|
||||
<!-- AutoPy: 662, last pushed 211 days ago -->
|
||||
<!-- H3-py: 549, last pushed 1 days ago -->
|
||||
<!-- Rtree: 490, last pushed 96 days ago -->
|
||||
<!-- markupsafe: 483, last pushed 20 days ago -->
|
||||
<!-- python-rapidjson: 456, last pushed 4 days ago -->
|
||||
<!-- python-snappy: 443, last pushed 130 days ago -->
|
||||
<!-- pybind11 cmake_example: 423, last pushed 1 days ago -->
|
||||
<!-- KDEpy: 388, last pushed 164 days ago -->
|
||||
<!-- tgcalls: 375, last pushed 23 days ago -->
|
||||
<!-- dd-trace-py: 344, last pushed 0 days ago -->
|
||||
<!-- pybind11 python_example: 339, last pushed 2 days ago -->
|
||||
<!-- sourmash: 313, last pushed 0 days ago -->
|
||||
<!-- time-machine: 312, last pushed 5 days ago -->
|
||||
<!-- CTranslate2: 310, last pushed 3 days ago -->
|
||||
<!-- cyvcf2: 301, last pushed 65 days ago -->
|
||||
<!-- matrixprofile: 273, last pushed 20 days ago -->
|
||||
<!-- abess: 272, last pushed 9 days ago -->
|
||||
<!-- jq.py: 221, last pushed 168 days ago -->
|
||||
<!-- iminuit: 206, last pushed 0 days ago -->
|
||||
<!-- Tokenizer: 188, last pushed 3 days ago -->
|
||||
<!-- PyGLM: 146, last pushed 118 days ago -->
|
||||
<!-- boost-histogram: 116, last pushed 5 days ago -->
|
||||
<!-- bx-python: 114, last pushed 200 days ago -->
|
||||
<!-- TgCrypto: 108, last pushed 142 days ago -->
|
||||
<!-- iDynTree: 107, last pushed 4 days ago -->
|
||||
<!-- Python-WebRTC: 92, last pushed 136 days ago -->
|
||||
<!-- pybase64: 86, last pushed 5 days ago -->
|
||||
<!-- Arbor: 76, last pushed 3 days ago -->
|
||||
<!-- fathon: 63, last pushed 52 days ago -->
|
||||
<!-- etebase-py: 58, last pushed 18 days ago -->
|
||||
<!-- polaroid: 51, last pushed 74 days ago -->
|
||||
<!-- cf-units: 49, last pushed 0 days ago -->
|
||||
<!-- Imagecodecs (fork): 46, last pushed 39 days ago -->
|
||||
<!-- clang-format: 41, last pushed 19 days ago -->
|
||||
<!-- pillow-heif: 38, last pushed 2 days ago -->
|
||||
<!-- power-grid-model: 37, last pushed 3 days ago -->
|
||||
<!-- numpythia: 34, last pushed 18 days ago -->
|
||||
<!-- pyjet: 33, last pushed 23 days ago -->
|
||||
<!-- pybind11 scikit_build_example: 29, last pushed 6 days ago -->
|
||||
<!-- ninja: 24, last pushed 6 days ago -->
|
||||
<!-- GSD: 19, last pushed 19 days ago -->
|
||||
<!-- pyinstrument_cext: 10, last pushed 289 days ago -->
|
||||
<!-- CorrectionLib: 10, last pushed 5 days ago -->
|
||||
<!-- xmlstarlet: 9, last pushed 13 days ago -->
|
||||
<!-- SiPM: 6, last pushed 53 days ago -->
|
||||
<!-- scikit-learn: 51026, last pushed 0 days ago -->
|
||||
<!-- NumPy: 21131, last pushed 0 days ago -->
|
||||
<!-- Tornado: 20669, last pushed 9 days ago -->
|
||||
<!-- pytorch-fairseq: 18851, last pushed 0 days ago -->
|
||||
<!-- Matplotlib: 15939, last pushed 0 days ago -->
|
||||
<!-- NCNN: 15158, last pushed 0 days ago -->
|
||||
<!-- Kivy: 14873, last pushed 0 days ago -->
|
||||
<!-- Prophet: 14779, last pushed 4 days ago -->
|
||||
<!-- MyPy: 13581, last pushed 0 days ago -->
|
||||
<!-- pydantic: 10706, last pushed 0 days ago -->
|
||||
<!-- MemRay: 8980, last pushed 0 days ago -->
|
||||
<!-- uvloop: 8778, last pushed 3 days ago -->
|
||||
<!-- psutil: 8593, last pushed 7 days ago -->
|
||||
<!-- vaex: 7216, last pushed 1 days ago -->
|
||||
<!-- Google Benchmark: 6724, last pushed 0 days ago -->
|
||||
<!-- duckdb: 5814, last pushed 0 days ago -->
|
||||
<!-- Apache Beam: 5766, last pushed 0 days ago -->
|
||||
<!-- asyncpg: 5591, last pushed 6 days ago -->
|
||||
<!-- PyGame: 5104, last pushed 0 days ago -->
|
||||
<!-- scikit-image: 5010, last pushed 1 days ago -->
|
||||
<!-- cmake: 4975, last pushed 0 days ago -->
|
||||
<!-- twisted-iocpsupport: 4697, last pushed 1 days ago -->
|
||||
<!-- websockets: 4103, last pushed 0 days ago -->
|
||||
<!-- PyOxidizer: 4064, last pushed 0 days ago -->
|
||||
<!-- cvxpy: 4038, last pushed 0 days ago -->
|
||||
<!-- Triton: 3860, last pushed 0 days ago -->
|
||||
<!-- UltraJSON: 3784, last pushed 1 days ago -->
|
||||
<!-- River: 3517, last pushed 2 days ago -->
|
||||
<!-- OpenSpiel: 3275, last pushed 0 days ago -->
|
||||
<!-- pyzmq: 3138, last pushed 1 days ago -->
|
||||
<!-- aiortc: 3032, last pushed 46 days ago -->
|
||||
<!-- vispy: 2913, last pushed 4 days ago -->
|
||||
<!-- Implicit: 2906, last pushed 0 days ago -->
|
||||
<!-- Confluent client for Kafka: 2885, last pushed 6 days ago -->
|
||||
<!-- tinyobjloader: 2606, last pushed 36 days ago -->
|
||||
<!-- Dependency Injector: 2277, last pushed 6 days ago -->
|
||||
<!-- coverage.py: 2136, last pushed 3 days ago -->
|
||||
<!-- PyCryptodome: 2085, last pushed 7 days ago -->
|
||||
<!-- PyYAML: 1897, last pushed 24 days ago -->
|
||||
<!-- numexpr: 1793, last pushed 21 days ago -->
|
||||
<!-- h5py: 1762, last pushed 8 days ago -->
|
||||
<!-- Wrapt: 1716, last pushed 100 days ago -->
|
||||
<!-- PyAV: 1626, last pushed 15 days ago -->
|
||||
<!-- SimpleJSON: 1507, last pushed 40 days ago -->
|
||||
<!-- pikepdf: 1449, last pushed 1 days ago -->
|
||||
<!-- OpenColorIO: 1351, last pushed 29 days ago -->
|
||||
<!-- Line Profiler: 1310, last pushed 18 days ago -->
|
||||
<!-- PyTables: 1142, last pushed 113 days ago -->
|
||||
<!-- OpenTimelineIO: 1083, last pushed 0 days ago -->
|
||||
<!-- aioquic: 1012, last pushed 23 days ago -->
|
||||
<!-- ruptures: 1011, last pushed 34 days ago -->
|
||||
<!-- DeepForest: 768, last pushed 88 days ago -->
|
||||
<!-- Psycopg 3: 750, last pushed 1 days ago -->
|
||||
<!-- google neuroglancer: 744, last pushed 0 days ago -->
|
||||
<!-- Parselmouth: 673, last pushed 31 days ago -->
|
||||
<!-- AutoPy: 666, last pushed 228 days ago -->
|
||||
<!-- H3-py: 552, last pushed 0 days ago -->
|
||||
<!-- Rtree: 497, last pushed 113 days ago -->
|
||||
<!-- markupsafe: 487, last pushed 8 days ago -->
|
||||
<!-- python-rapidjson: 456, last pushed 21 days ago -->
|
||||
<!-- python-snappy: 443, last pushed 147 days ago -->
|
||||
<!-- pybind11 cmake_example: 426, last pushed 12 days ago -->
|
||||
<!-- KDEpy: 394, last pushed 181 days ago -->
|
||||
<!-- tgcalls: 382, last pushed 39 days ago -->
|
||||
<!-- dd-trace-py: 350, last pushed 0 days ago -->
|
||||
<!-- pybind11 python_example: 349, last pushed 9 days ago -->
|
||||
<!-- time-machine: 317, last pushed 1 days ago -->
|
||||
<!-- sourmash: 317, last pushed 0 days ago -->
|
||||
<!-- CTranslate2: 315, last pushed 5 days ago -->
|
||||
<!-- cyvcf2: 300, last pushed 6 days ago -->
|
||||
<!-- abess: 275, last pushed 1 days ago -->
|
||||
<!-- matrixprofile: 275, last pushed 37 days ago -->
|
||||
<!-- jq.py: 223, last pushed 185 days ago -->
|
||||
<!-- iminuit: 209, last pushed 1 days ago -->
|
||||
<!-- Tokenizer: 187, last pushed 5 days ago -->
|
||||
<!-- PyGLM: 148, last pushed 134 days ago -->
|
||||
<!-- boost-histogram: 115, last pushed 1 days ago -->
|
||||
<!-- bx-python: 114, last pushed 217 days ago -->
|
||||
<!-- TgCrypto: 110, last pushed 159 days ago -->
|
||||
<!-- iDynTree: 109, last pushed 3 days ago -->
|
||||
<!-- Python-WebRTC: 92, last pushed 152 days ago -->
|
||||
<!-- pybase64: 85, last pushed 1 days ago -->
|
||||
<!-- Arbor: 77, last pushed 0 days ago -->
|
||||
<!-- fathon: 65, last pushed 69 days ago -->
|
||||
<!-- etebase-py: 58, last pushed 34 days ago -->
|
||||
<!-- polaroid: 51, last pushed 90 days ago -->
|
||||
<!-- cf-units: 49, last pushed 1 days ago -->
|
||||
<!-- Imagecodecs (fork): 47, last pushed 1 days ago -->
|
||||
<!-- pillow-heif: 44, last pushed 0 days ago -->
|
||||
<!-- power-grid-model: 42, last pushed 1 days ago -->
|
||||
<!-- clang-format: 41, last pushed 8 days ago -->
|
||||
<!-- numpythia: 34, last pushed 7 days ago -->
|
||||
<!-- pyjet: 33, last pushed 7 days ago -->
|
||||
<!-- pybind11 scikit_build_example: 31, last pushed 9 days ago -->
|
||||
<!-- ninja: 24, last pushed 1 days ago -->
|
||||
<!-- GSD: 19, last pushed 9 days ago -->
|
||||
<!-- pyinstrument_cext: 10, last pushed 306 days ago -->
|
||||
<!-- CorrectionLib: 10, last pushed 0 days ago -->
|
||||
<!-- xmlstarlet: 9, last pushed 9 days ago -->
|
||||
<!-- SiPM: 7, last pushed 70 days ago -->
|
||||
|
||||
<!-- END bin/projects.py -->
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ stack: python 3.7
|
||||
init:
|
||||
- cmd: set PATH=C:\Python37;C:\Python37\Scripts;%PATH%
|
||||
|
||||
install: python -m pip install cibuildwheel==2.8.1
|
||||
install: python -m pip install cibuildwheel==2.9.0
|
||||
|
||||
build_script: python -m cibuildwheel --output-dir wheelhouse
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ jobs:
|
||||
- bash: |
|
||||
set -o errexit
|
||||
python3 -m pip install --upgrade pip
|
||||
pip3 install cibuildwheel==2.8.1
|
||||
pip3 install cibuildwheel==2.9.0
|
||||
displayName: Install dependencies
|
||||
- bash: cibuildwheel --output-dir wheelhouse .
|
||||
displayName: Build wheels
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
- bash: |
|
||||
set -o errexit
|
||||
python3 -m pip install --upgrade pip
|
||||
python3 -m pip install cibuildwheel==2.8.1
|
||||
python3 -m pip install cibuildwheel==2.9.0
|
||||
displayName: Install dependencies
|
||||
- bash: cibuildwheel --output-dir wheelhouse .
|
||||
displayName: Build wheels
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
- bash: |
|
||||
set -o errexit
|
||||
python -m pip install --upgrade pip
|
||||
pip install cibuildwheel==2.8.1
|
||||
pip install cibuildwheel==2.9.0
|
||||
displayName: Install dependencies
|
||||
- bash: cibuildwheel --output-dir wheelhouse .
|
||||
displayName: Build wheels
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
- run:
|
||||
name: Build the Linux wheels.
|
||||
command: |
|
||||
pip3 install --user cibuildwheel==2.8.1
|
||||
pip3 install --user cibuildwheel==2.9.0
|
||||
cibuildwheel --output-dir wheelhouse
|
||||
- store_artifacts:
|
||||
path: wheelhouse/
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
- run:
|
||||
name: Build the OS X wheels.
|
||||
command: |
|
||||
pip3 install cibuildwheel==2.8.1
|
||||
pip3 install cibuildwheel==2.9.0
|
||||
cibuildwheel --output-dir wheelhouse
|
||||
- store_artifacts:
|
||||
path: wheelhouse/
|
||||
|
||||
@@ -10,9 +10,9 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.8.1
|
||||
uses: pypa/cibuildwheel@v2.9.0
|
||||
env:
|
||||
CIBW_ARCHS_MACOS: x86_64 universal2
|
||||
CIBW_ARCHS_MACOS: x86_64 arm64
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.8.1
|
||||
uses: pypa/cibuildwheel@v2.9.0
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.8.1
|
||||
uses: pypa/cibuildwheel@v2.9.0
|
||||
# env:
|
||||
# CIBW_SOME_OPTION: value
|
||||
# ...
|
||||
|
||||
@@ -13,19 +13,14 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: actions/setup-python@v3
|
||||
name: Install Python
|
||||
with:
|
||||
python-version: '3.7'
|
||||
|
||||
- name: Set up QEMU
|
||||
if: runner.os == 'Linux'
|
||||
uses: docker/setup-qemu-action@v1
|
||||
uses: docker/setup-qemu-action@v2
|
||||
with:
|
||||
platforms: all
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.8.1
|
||||
uses: pypa/cibuildwheel@v2.9.0
|
||||
env:
|
||||
# configure cibuildwheel to build native archs ('auto'), and some
|
||||
# emulated ones
|
||||
|
||||
@@ -12,7 +12,7 @@ linux:
|
||||
DOCKER_TLS_CERTDIR: ""
|
||||
script:
|
||||
- curl -sSL https://get.docker.com/ | sh
|
||||
- python -m pip install cibuildwheel==2.8.1
|
||||
- python -m pip install cibuildwheel==2.9.0
|
||||
- cibuildwheel --output-dir wheelhouse
|
||||
artifacts:
|
||||
paths:
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
||||
|
||||
install:
|
||||
- python3 -m pip install cibuildwheel==2.8.1
|
||||
- python3 -m pip install cibuildwheel==2.9.0
|
||||
|
||||
script:
|
||||
# build the wheels, put them into './dist'
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
||||
|
||||
install:
|
||||
- python3 -m pip install cibuildwheel==2.8.1
|
||||
- python3 -m pip install cibuildwheel==2.9.0
|
||||
|
||||
script:
|
||||
# build the wheels, put them into './wheelhouse'
|
||||
|
||||
@@ -54,7 +54,7 @@ jobs:
|
||||
- stage: deploy
|
||||
name: Build and deploy Linux wheels
|
||||
services: docker
|
||||
install: python3 -m pip install cibuildwheel==2.8.1 twine
|
||||
install: python3 -m pip install cibuildwheel==2.9.0 twine
|
||||
script: python3 -m cibuildwheel --output-dir wheelhouse
|
||||
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||
# Deploy on windows
|
||||
@@ -62,7 +62,7 @@ jobs:
|
||||
name: Build and deploy Windows wheels
|
||||
os: windows
|
||||
language: shell
|
||||
install: python3 -m pip install cibuildwheel==2.8.1 twine
|
||||
install: python3 -m pip install cibuildwheel==2.9.0 twine
|
||||
script: python3 -m cibuildwheel --output-dir wheelhouse
|
||||
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||
|
||||
|
||||
+21
-2
@@ -65,8 +65,27 @@ def update_constraints(session: nox.Session) -> None:
|
||||
"""
|
||||
Update the dependencies inplace.
|
||||
"""
|
||||
session.install("requests", "pip-tools")
|
||||
session.run("python", "bin/update_dependencies.py")
|
||||
session.install("pip-tools")
|
||||
assert isinstance(session.python, str)
|
||||
python_version = session.python.replace(".", "")
|
||||
env = os.environ.copy()
|
||||
# CUSTOM_COMPILE_COMMAND is a pip-compile option that tells users how to
|
||||
# regenerate the constraints files
|
||||
env["CUSTOM_COMPILE_COMMAND"] = f"nox -s {session.name}"
|
||||
session.run(
|
||||
"pip-compile",
|
||||
"--allow-unsafe",
|
||||
"--upgrade",
|
||||
"cibuildwheel/resources/constraints.in",
|
||||
f"--output-file=cibuildwheel/resources/constraints-python{python_version}.txt",
|
||||
env=env,
|
||||
)
|
||||
if session.python == PYTHON_ALL_VERSIONS[-1]:
|
||||
RESOURCES = DIR / "cibuildwheel" / "resources"
|
||||
shutil.copyfile(
|
||||
RESOURCES / f"constraints-python{python_version}.txt",
|
||||
RESOURCES / "constraints.txt",
|
||||
)
|
||||
|
||||
|
||||
@nox.session
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[metadata]
|
||||
name = cibuildwheel
|
||||
version = 2.8.1
|
||||
version = 2.9.0
|
||||
description = Build Python wheels on CI with minimal configuration.
|
||||
long_description = file: README.md
|
||||
long_description_content_type = text/markdown
|
||||
|
||||
@@ -11,7 +11,7 @@ basic_project = test_projects.new_c_project()
|
||||
|
||||
ALL_MACOS_WHEELS = {
|
||||
*utils.expected_wheels("spam", "0.1.0", machine_arch="x86_64"),
|
||||
*utils.expected_wheels("spam", "0.1.0", machine_arch="arm64"),
|
||||
*utils.expected_wheels("spam", "0.1.0", machine_arch="arm64", include_universal2=True),
|
||||
}
|
||||
|
||||
|
||||
|
||||
+8
-7
@@ -116,6 +116,7 @@ def expected_wheels(
|
||||
macosx_deployment_target="10.9",
|
||||
machine_arch=None,
|
||||
python_abi_tags=None,
|
||||
include_universal2=False,
|
||||
):
|
||||
"""
|
||||
Returns a list of expected wheels from a run of cibuildwheel.
|
||||
@@ -199,14 +200,14 @@ def expected_wheels(
|
||||
arm64_macosx_deployment_target = _get_arm64_macosx_deployment_target(
|
||||
macosx_deployment_target
|
||||
)
|
||||
platform_tags = [
|
||||
f'macosx_{macosx_deployment_target.replace(".", "_")}_universal2',
|
||||
f'macosx_{arm64_macosx_deployment_target.replace(".", "_")}_arm64',
|
||||
]
|
||||
platform_tags = [f'macosx_{arm64_macosx_deployment_target.replace(".", "_")}_arm64']
|
||||
else:
|
||||
platform_tags = [
|
||||
f'macosx_{macosx_deployment_target.replace(".", "_")}_x86_64',
|
||||
]
|
||||
platform_tags = [f'macosx_{macosx_deployment_target.replace(".", "_")}_x86_64']
|
||||
|
||||
if include_universal2:
|
||||
platform_tags.append(
|
||||
f'macosx_{macosx_deployment_target.replace(".", "_")}_universal2',
|
||||
)
|
||||
|
||||
else:
|
||||
raise Exception("unsupported platform")
|
||||
|
||||
@@ -11,7 +11,7 @@ def test_build():
|
||||
assert build_selector("cp36-manylinux_x86_64")
|
||||
assert build_selector("cp37-manylinux_x86_64")
|
||||
assert build_selector("cp310-manylinux_x86_64")
|
||||
assert not build_selector("cp311-manylinux_x86_64")
|
||||
assert build_selector("cp311-manylinux_x86_64")
|
||||
assert build_selector("pp36-manylinux_x86_64")
|
||||
assert build_selector("pp37-manylinux_x86_64")
|
||||
assert build_selector("cp36-manylinux_i686")
|
||||
@@ -30,7 +30,7 @@ def test_build():
|
||||
assert build_selector("cp36-win_amd64")
|
||||
assert build_selector("cp37-win_amd64")
|
||||
assert build_selector("cp310-win_amd64")
|
||||
assert not build_selector("cp311-win_amd64")
|
||||
assert build_selector("cp311-win_amd64")
|
||||
assert not build_selector("pp36-win_amd64")
|
||||
assert not build_selector("pp37-win_amd64")
|
||||
|
||||
|
||||
@@ -60,8 +60,12 @@ def test_linux_container_split(tmp_path: Path, monkeypatch):
|
||||
pprint(build_steps)
|
||||
|
||||
assert build_steps[0].container_image == "normal_container_image"
|
||||
assert identifiers(build_steps[0]) == ["cp36-manylinux_x86_64", "cp37-manylinux_x86_64"]
|
||||
assert before_alls(build_steps[0]) == ["", ""]
|
||||
assert identifiers(build_steps[0]) == [
|
||||
"cp36-manylinux_x86_64",
|
||||
"cp37-manylinux_x86_64",
|
||||
"cp311-manylinux_x86_64",
|
||||
]
|
||||
assert before_alls(build_steps[0]) == ["", "", ""]
|
||||
|
||||
assert build_steps[1].container_image == "other_container_image"
|
||||
assert identifiers(build_steps[1]) == ["cp38-manylinux_x86_64", "cp310-manylinux_x86_64"]
|
||||
|
||||
@@ -13,7 +13,7 @@ import pytest
|
||||
from cibuildwheel import linux, util
|
||||
from cibuildwheel.__main__ import main
|
||||
|
||||
ALL_IDS = {"cp36", "cp37", "cp38", "cp39", "cp310", "pp37", "pp38", "pp39"}
|
||||
ALL_IDS = {"cp36", "cp37", "cp38", "cp39", "cp310", "cp311", "pp37", "pp38", "pp39"}
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -137,7 +137,8 @@ before-all = "true"
|
||||
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
assert identifiers == {
|
||||
f"{x}-manylinux_x86_64" for x in ALL_IDS - {"cp36", "cp310", "pp37", "pp38", "pp39"}
|
||||
f"{x}-manylinux_x86_64"
|
||||
for x in ALL_IDS - {"cp36", "cp310", "cp311", "pp37", "pp38", "pp39"}
|
||||
}
|
||||
assert kwargs["options"].build_options("cp37-manylinux_x86_64").before_all == ""
|
||||
|
||||
@@ -147,10 +148,7 @@ before-all = "true"
|
||||
assert not kwargs["container"]["simulate_32_bit"]
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
assert identifiers == {
|
||||
"cp310-manylinux_x86_64",
|
||||
"pp37-manylinux_x86_64",
|
||||
"pp38-manylinux_x86_64",
|
||||
"pp39-manylinux_x86_64",
|
||||
f"{x}-manylinux_x86_64" for x in {"cp310", "cp311", "pp37", "pp38", "pp39"}
|
||||
}
|
||||
|
||||
kwargs = build_in_container.call_args_list[3][1]
|
||||
|
||||
@@ -160,9 +160,28 @@ repairs-wheel-command = "repair-project-linux"
|
||||
"""
|
||||
)
|
||||
|
||||
with pytest.raises(ConfigOptionError):
|
||||
with pytest.raises(ConfigOptionError) as excinfo:
|
||||
OptionsReader(pyproject_toml, platform="linux")
|
||||
|
||||
assert "repair-wheel-command" in str(excinfo.value)
|
||||
|
||||
|
||||
def test_underscores_in_key(tmp_path):
|
||||
# Note that platform contents are only checked when running
|
||||
# for that platform.
|
||||
pyproject_toml = tmp_path / "pyproject.toml"
|
||||
pyproject_toml.write_text(
|
||||
"""
|
||||
[tool.cibuildwheel]
|
||||
repair_wheel_command = "repair-project-linux"
|
||||
"""
|
||||
)
|
||||
|
||||
with pytest.raises(ConfigOptionError) as excinfo:
|
||||
OptionsReader(pyproject_toml, platform="linux")
|
||||
|
||||
assert "repair-wheel-command" in str(excinfo.value)
|
||||
|
||||
|
||||
def test_unexpected_table(tmp_path):
|
||||
pyproject_toml = tmp_path / "pyproject.toml"
|
||||
|
||||
Reference in New Issue
Block a user