Compare commits

...
44 Commits
Author SHA1 Message Date
Henry Schreiner 3254807509 Update test.yml 2024-01-30 18:01:10 -05:00
Henry Schreiner 7f908b0257 ci: pre-install pipx on M1 2024-01-30 12:06:31 -05:00
Henry Schreiner 3c0df0b567 Update .github/workflows/test.yml 2024-01-30 11:42:21 -05:00
mayeut ec181518ca chore(CI): test on GHA macos-13-xlarge runner
PyPA is now on an enterprise plan.
Let's use the new macos-13-xlarge runner in order to test on macOS arm64.
2023-12-16 10:24:47 +01:00
Joe Rickerby a3e5b541dc Update LICENSE year 2023-12-13 08:53:18 +00:00
cibuildwheel-bot[bot] 9195da8c1a [Bot] Update dependencies (#1694)
Update dependencies

Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com>
2023-12-12 09:08:11 +01:00
dependabot[bot] 606879f2d3 chore(deps): bump actions/setup-python from 4 to 5 (#1695)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 09:07:26 +01:00
Joe Rickerby 886ba0f662 Merge pull request #1681 from pypa/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2023-12-06 18:20:31 +00:00
Joe Rickerby 8e9a703abc Merge pull request #1678 from pypa/update-dependencies-pr
[Bot] Update dependencies
2023-12-06 18:20:09 +00:00
Joe Rickerby 4dba644b8d Merge pull request #1667 from pypa/joerick-patch-1
docs: Address some confusion around the CIBW_ENVIRONMENT option.
2023-12-06 18:19:12 +00:00
Joe Rickerby 796361d9f9 Merge pull request #1680 from webknjaz/patch-2
[docs] Drop `wheel` from `pyproject.toml` example @ options page
2023-11-27 22:41:27 +00:00
pre-commit-ci[bot] 22aff1bc25 [pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/pre-commit/mirrors-mypy: v1.7.0 → v1.7.1](https://github.com/pre-commit/mirrors-mypy/compare/v1.7.0...v1.7.1)
2023-11-27 18:21:19 +00:00
Sviatoslav Sydorenko 86ef5eed8a [docs] Drop wheel from pyproject.toml example @ options page 2023-11-27 18:53:00 +01:00
Joe Rickerby a4f8eb3544 Merge pull request #1679 from webknjaz/patch-1
Stop suggesting adding `wheel` to `pyproject.toml`
2023-11-27 16:38:48 +00:00
Sviatoslav Sydorenko 270c626d6b Stop suggesting adding wheel to pyproject.toml
This was a historic mistake in the `setuptools`' docs that many projects copied. But `wheel` is already a dependency injected by `setuptools` when needed. So let's not suggest people to depend on it when producing sdists.
2023-11-27 16:29:10 +01:00
cibuildwheel-bot[bot] ae0c33b395 Update dependencies 2023-11-27 06:13:56 +00:00
Joe Rickerby 6c6c51ef3b Merge pull request #1665 from hugovk/skip-quotes
Use quotes when silencing warning
2023-11-24 10:36:43 +00:00
Joe Rickerby ebf48d4122 Merge pull request #1668 from pypa/update-dependencies-pr
[Bot] Update dependencies
2023-11-23 13:50:47 +00:00
Joe Rickerby 9213ca194d Merge pull request #1670 from pypa/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2023-11-23 13:50:32 +00:00
Joe Rickerby b371ae35d1 Merge pull request #1674 from rossarmstrong/main
Update projects.yml to add new repo for working examples
2023-11-23 13:50:15 +00:00
pre-commit-ci[bot] 92ee0fda43 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-11-23 13:41:26 +00:00
pre-commit-ci[bot] 5baa3de6df [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-11-23 12:41:13 +00:00
Ross Armstrong a561ae0f9d Update projects.yml to add new repo for working examples 2023-11-23 23:32:42 +11:00
pre-commit-ci[bot] 277abc5ffa [pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.5 → v0.1.6](https://github.com/astral-sh/ruff-pre-commit/compare/v0.1.5...v0.1.6)
2023-11-20 18:21:27 +00:00
cibuildwheel-bot[bot] a70a6346c5 Update dependencies 2023-11-20 06:14:21 +00:00
pre-commit-ci[bot] 859ebaf371 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-11-19 13:05:54 +00:00
Joe Rickerby 39d9b00eeb [docs] Address some confusion around the CIBW_ENVIRONMENT option.
Ref #1666
2023-11-19 13:04:19 +00:00
Hugo van Kemenade e577a9fbdf Use quotes when silencing warning 2023-11-18 12:37:50 +02:00
cibuildwheel-bot[bot] 77c57bdfa8 [Bot] Update dependencies (#1660)
Update dependencies

Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com>
2023-11-14 18:05:32 -05:00
Joe Rickerby 81812d05a3 Merge pull request #1661 from pypa/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2023-11-14 13:54:54 +00:00
pre-commit-ci[bot] cc25f71674 [pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.4 → v0.1.5](https://github.com/astral-sh/ruff-pre-commit/compare/v0.1.4...v0.1.5)
- [github.com/pre-commit/mirrors-mypy: v1.6.1 → v1.7.0](https://github.com/pre-commit/mirrors-mypy/compare/v1.6.1...v1.7.0)
2023-11-13 18:39:50 +00:00
cibuildwheel-bot[bot] 6853b08120 [Bot] Update dependencies (#1655)
Update dependencies

Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com>
2023-11-10 11:25:49 -05:00
pre-commit-ci[bot] c38a3d7026 [pre-commit.ci] pre-commit autoupdate (#1656)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.3 → v0.1.4](https://github.com/astral-sh/ruff-pre-commit/compare/v0.1.3...v0.1.4)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-11-10 11:25:30 -05:00
Matthieu Darbois 2090f0ddce chore: limit Cirrus CI usage (#1643)
New usage limits are now enforced on Cirrus CI.
Limit runs to the minimum.
2023-11-01 18:08:55 -04:00
cibuildwheel-bot[bot] cec051f4b8 [Bot] Update dependencies (#1652)
Update dependencies

Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com>
2023-10-30 22:35:03 -04:00
Henry Schreiner 89d5bd58f5 chore: test and use 3.12 as host (#1650)
* chore: test and use 3.12 as host

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* chore: address feedback

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2023-10-27 01:21:59 -04:00
Henry Schreiner 4586062efb chore: move to ruff-format (#1651)
* chore: move to ruff-format

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* Apply suggestions from code review

* Apply suggestions from code review

* chore: bump Ruff

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2023-10-27 01:21:20 -04:00
Henry Schreiner 1efccd03b5 fix: minor ruff updates (#1649)
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2023-10-26 10:57:23 -04:00
pre-commit-ci[bot] c4fdf66efc [pre-commit.ci] pre-commit autoupdate (#1647)
updates:
- [github.com/psf/black-pre-commit-mirror: 23.9.1 → 23.10.0](https://github.com/psf/black-pre-commit-mirror/compare/23.9.1...23.10.0)
- [github.com/astral-sh/ruff-pre-commit: v0.0.292 → v0.1.1](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.292...v0.1.1)
- [github.com/pre-commit/mirrors-mypy: v1.6.0 → v1.6.1](https://github.com/pre-commit/mirrors-mypy/compare/v1.6.0...v1.6.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-10-25 10:48:37 -04:00
cibuildwheel-bot[bot] 75f6b45a75 [Bot] Update dependencies (#1644)
Update dependencies

Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com>
2023-10-23 11:51:44 -04:00
pre-commit-ci[bot]andHenry Schreiner c2e19fb391 [pre-commit.ci] pre-commit autoupdate (#1645)
* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/pre-commit/mirrors-mypy: v1.5.1 → v1.6.0](https://github.com/pre-commit/mirrors-mypy/compare/v1.5.1...v1.6.0)

* chore: update ignore code

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
2023-10-23 11:51:26 -04:00
pre-commit-ci[bot] b29dda3b4d [pre-commit.ci] pre-commit autoupdate (#1640)
updates:
- [github.com/pre-commit/pre-commit-hooks: v4.4.0 → v4.5.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.4.0...v4.5.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-10-13 11:19:33 -04:00
cibuildwheel-bot[bot] 0ec6d97029 [Bot] Update dependencies (#1639)
Update dependencies

Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com>
2023-10-09 09:37:22 -04:00
Henry Schreiner 36e40805e8 fix(schema): small bug + prepare for SchemaStore (#1638)
* fix(schema): small bug + prepare for SchemaStore

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* fix(schema): schema kw is supposed to have a number sign

* fix(schema): differing conventions

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2023-10-09 09:36:09 -04:00
42 changed files with 258 additions and 236 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
skip: changesIncludeOnly('docs/*', '.pre-commit-config.yaml')
only_if: changesInclude('.cirrus.yml') || ($BRANCH == "main" && !changesIncludeOnly('docs/*', '.pre-commit-config.yaml'))
run_tests: &RUN_TESTS
install_cibuildwheel_script:
+5 -5
View File
@@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: "3.x"
- uses: pre-commit/action@v3.0.0
@@ -38,15 +38,15 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, windows-latest, macos-11]
python_version: ['3.11']
os: [ubuntu-20.04, windows-latest, macos-11, macos-14]
python_version: ['3.12']
include:
- os: ubuntu-22.04
python_version: '3.8'
timeout-minutes: 180
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
name: Install Python ${{ matrix.python_version }}
with:
python-version: ${{ matrix.python_version }}
@@ -101,7 +101,7 @@ jobs:
timeout-minutes: 180
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install dependencies
+2 -2
View File
@@ -18,13 +18,13 @@ jobs:
update-dependencies:
name: Update dependencies
if: github.repository_owner == 'pypa' || github.event_name != 'schedule'
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: wntrblm/nox@2023.04.22
with:
python-versions: "3.7, 3.8, 3.9, 3.10, 3.11, 3.12-dev"
python-versions: "3.7, 3.8, 3.9, 3.10, 3.11, 3.12"
- name: "Run update: dependencies"
run: nox --force-color -s update_constraints
+7 -11
View File
@@ -1,7 +1,7 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v4.5.0
hooks:
- id: check-case-conflict
- id: check-merge-conflict
@@ -13,25 +13,21 @@ repos:
- id: mixed-line-ending
- id: trailing-whitespace
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 23.9.1
hooks:
- id: black
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.292
rev: v0.1.6
hooks:
- id: ruff
args: ["--fix", "--show-fixes"]
- id: ruff-format
- repo: https://github.com/asottile/setup-cfg-fmt
rev: v2.5.0
hooks:
- id: setup-cfg-fmt
args: [--include-version-classifiers, --min-py-version=3.8, --max-py-version=3.11]
args: [--include-version-classifiers, --min-py-version=3.8, --max-py-version=3.12]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.5.1
rev: v1.7.1
hooks:
- id: mypy
name: mypy 3.8 on cibuildwheel/
@@ -52,9 +48,9 @@ repos:
- types-requests
- validate-pyproject
- id: mypy
name: mypy 3.11
name: mypy 3.12
exclude: ^cibuildwheel/resources/.*py$
args: ["--python-version=3.11"]
args: ["--python-version=3.12"]
additional_dependencies: *mypy-dependencies
- repo: https://github.com/shellcheck-py/shellcheck-py
+2 -2
View File
@@ -1,6 +1,6 @@
This is a summary of the Python versions and platforms covered by the different CI platforms:
This is a summary of the host Python versions and platforms covered by the different CI platforms:
| | 3.8 | 3.9 | 3.10 | 3.11 |
| | 3.8 | 3.9 | 3.10 | 3.12 |
|---------|--------------------------------------------------------|-----------------------|-----------|----------------|
| Linux | AppVeyor¹ / Azure Pipelines / GitLab¹ / GitHub Actions | CircleCI¹ / Travis CI | Cirrus CI | GitHub Actions |
| macOS | AppVeyor¹ / Azure Pipelines | CircleCI¹ / Travis CI | Cirrus CI | GitHub Actions |
+1 -1
View File
@@ -1,6 +1,6 @@
This project is licensed under the 'BSD 2-clause license'.
Copyright (c) 2017-2019, Joe Rickerby and contributors. All rights reserved.
Copyright (c) 2017-2023, Joe Rickerby and contributors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
+2 -2
View File
@@ -25,10 +25,10 @@ runs:
using: composite
steps:
# Set up a non-EOL, cibuildwheel & pipx supported Python version
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
id: python
with:
python-version: "3.8 - 3.11"
python-version: "3.8 - 3.12"
update-environment: false
# Redirecting stderr to stdout to fix interleaving issue in Actions.
+40 -3
View File
@@ -1,11 +1,16 @@
#!/usr/bin/env python
import argparse
import copy
import json
from typing import Any
import yaml
parser = argparse.ArgumentParser()
parser.add_argument("--schemastore", action="store_true", help="Generate schema_store version")
args = parser.parse_args()
starter = """
$id: https://github.com/pypa/cibuildwheel/blob/main/cibuildwheel/resources/cibuildwheel.schema.json
$schema: http://json-schema.org/draft-07/schema
@@ -146,6 +151,9 @@ properties:
schema = yaml.safe_load(starter)
if args.schemastore:
schema["$id"] += "#"
string_array = yaml.safe_load(
"""
- type: string
@@ -177,7 +185,7 @@ string_table = yaml.safe_load(
additionalProperties: false
patternProperties:
.+:
- type: string
type: string
"""
)
@@ -210,7 +218,13 @@ items:
for key, value in schema["properties"].items():
value["title"] = f'CIBW_{key.replace("-", "_").upper()}'
non_global_options = {k: {"$ref": f"#/properties/{k}"} for k in schema["properties"]}
if args.schemastore:
non_global_options = {
k: {"$ref": f"#/properties/tool/properties/cibuildwheel/properties/{k}"}
for k in schema["properties"]
}
else:
non_global_options = {k: {"$ref": f"#/properties/{k}"} for k in schema["properties"]}
del non_global_options["build"]
del non_global_options["skip"]
del non_global_options["container-engine"]
@@ -257,4 +271,27 @@ del oses["linux"]["properties"]["dependency-versions"]
schema["properties"]["overrides"] = overrides
schema["properties"] |= oses
print(json.dumps(schema, indent=2))
if not args.schemastore:
print(json.dumps(schema, indent=2))
raise SystemExit(0)
schema_store_txt = """
$id: https://json.schemastore.org/cibuildwheel.json
$schema: http://json-schema.org/draft-07/schema#
additionalProperties: false
description: cibuildwheel's toml file, generated with ./bin/generate_schema.py --schemastore from cibuildwheel.
type: object
properties:
tool:
type: object
properties:
cibuildwheel:
type: object
"""
schema_store = yaml.safe_load(schema_store_txt)
schema_store["properties"]["tool"]["properties"]["cibuildwheel"]["properties"] = schema[
"properties"
]
print(json.dumps(schema_store, indent=2))
+7 -2
View File
@@ -7,7 +7,7 @@ import shutil
import sys
import textwrap
import time
from collections import namedtuple
import typing
from glob import glob
from pathlib import Path
from subprocess import run
@@ -34,7 +34,12 @@ def generate_basic_project(path):
project.generate(path)
CIService = namedtuple("CIService", "name dst_config_path badge_md")
class CIService(typing.NamedTuple):
name: str
dst_config_path: str
badge_md: str
services = [
CIService(
name="appveyor",
+1 -1
View File
@@ -7,7 +7,7 @@ import sys
from pathlib import Path
try:
from html2image import Html2Image # type: ignore[import]
from html2image import Html2Image # type: ignore[import-not-found]
except ImportError:
sys.exit(
"""
+2 -4
View File
@@ -204,10 +204,8 @@ class CPythonVersions:
unsorted_versions = spec.filter(self.versions_dict)
sorted_versions = sorted(unsorted_versions, reverse=True)
if version <= Version("3.8.9999"):
file_ident = "macosx10.9.pkg"
else:
file_ident = "macos11.pkg"
macver = "x10.9" if version <= Version("3.8.9999") else "11"
file_ident = f"macos{macver}.pkg"
for new_version in sorted_versions:
# Find the first patch version that contains the requested file
+3 -2
View File
@@ -3,11 +3,12 @@ from __future__ import annotations
import sys
if sys.version_info < (3, 11):
from typing_extensions import NotRequired, assert_never
from typing_extensions import NotRequired, Self, assert_never
else:
from typing import NotRequired, assert_never
from typing import NotRequired, Self, assert_never
__all__ = (
"assert_never",
"NotRequired",
"Self",
)
+3 -3
View File
@@ -491,7 +491,7 @@ def build(options: Options, tmp_path: Path) -> None:
tested. The ability to test the arm64 wheels will be added in a
future release of cibuildwheel, once Apple Silicon CI runners
are widely available. To silence this warning, set
`CIBW_TEST_SKIP: *-macosx_arm64`.
`CIBW_TEST_SKIP: "*-macosx_arm64"`.
"""
)
)
@@ -504,7 +504,7 @@ def build(options: Options, tmp_path: Path) -> None:
arm64 part of a universal2 wheel will be added in a future
release of cibuildwheel, once Apple Silicon CI runners are
widely available. To silence this warning, set
`CIBW_TEST_SKIP: *-macosx_universal2:arm64`.
`CIBW_TEST_SKIP: "*-macosx_universal2:arm64"`.
"""
)
)
@@ -525,7 +525,7 @@ def build(options: Options, tmp_path: Path) -> None:
Silicon machine. This is because we use the x86_64 installer of
CPython 3.8. See the discussion in
https://github.com/pypa/cibuildwheel/pull/1169 for the details. To
silence this warning, set `CIBW_TEST_SKIP: cp38-macosx_*:arm64`.
silence this warning, set `CIBW_TEST_SKIP: "cp38-macosx_*:arm64"`.
"""
)
)
+2 -1
View File
@@ -16,6 +16,7 @@ from pathlib import Path, PurePath, PurePosixPath
from types import TracebackType
from typing import IO, Dict, Literal
from ._compat.typing import Self
from .typing import PathOrStr, PopenBytes
from .util import (
CIProvider,
@@ -105,7 +106,7 @@ class OCIContainer:
self.name: str | None = None
self.engine = engine
def __enter__(self) -> OCIContainer:
def __enter__(self) -> Self:
self.name = f"cibuildwheel-{uuid.uuid4()}"
# work-around for Travis-CI PPC64le Docker runs since 2021:
+12 -12
View File
@@ -97,12 +97,12 @@ python_configurations = [
{ identifier = "cp310-macosx_x86_64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.11/python-3.10.11-macos11.pkg" },
{ identifier = "cp310-macosx_arm64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.11/python-3.10.11-macos11.pkg" },
{ identifier = "cp310-macosx_universal2", version = "3.10", url = "https://www.python.org/ftp/python/3.10.11/python-3.10.11-macos11.pkg" },
{ identifier = "cp311-macosx_x86_64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.6/python-3.11.6-macos11.pkg" },
{ identifier = "cp311-macosx_arm64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.6/python-3.11.6-macos11.pkg" },
{ identifier = "cp311-macosx_universal2", version = "3.11", url = "https://www.python.org/ftp/python/3.11.6/python-3.11.6-macos11.pkg" },
{ identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0-macos11.pkg" },
{ identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0-macos11.pkg" },
{ identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0-macos11.pkg" },
{ identifier = "cp311-macosx_x86_64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.7/python-3.11.7-macos11.pkg" },
{ identifier = "cp311-macosx_arm64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.7/python-3.11.7-macos11.pkg" },
{ identifier = "cp311-macosx_universal2", version = "3.11", url = "https://www.python.org/ftp/python/3.11.7/python-3.11.7-macos11.pkg" },
{ identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.1/python-3.12.1-macos11.pkg" },
{ identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.1/python-3.12.1-macos11.pkg" },
{ identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.1/python-3.12.1-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.11-macos_x86_64.tar.bz2" },
{ identifier = "pp38-macosx_arm64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_arm64.tar.bz2" },
@@ -124,14 +124,14 @@ python_configurations = [
{ identifier = "cp39-win_amd64", version = "3.9.13", arch = "64" },
{ identifier = "cp310-win32", version = "3.10.11", arch = "32" },
{ identifier = "cp310-win_amd64", version = "3.10.11", arch = "64" },
{ identifier = "cp311-win32", version = "3.11.6", arch = "32" },
{ identifier = "cp311-win_amd64", version = "3.11.6", arch = "64" },
{ identifier = "cp312-win32", version = "3.12.0", arch = "32" },
{ identifier = "cp312-win_amd64", version = "3.12.0", arch = "64" },
{ identifier = "cp311-win32", version = "3.11.7", arch = "32" },
{ identifier = "cp311-win_amd64", version = "3.11.7", arch = "64" },
{ identifier = "cp312-win32", version = "3.12.1", arch = "32" },
{ identifier = "cp312-win_amd64", version = "3.12.1", arch = "64" },
{ identifier = "cp39-win_arm64", version = "3.9.10", arch = "ARM64" },
{ identifier = "cp310-win_arm64", version = "3.10.11", arch = "ARM64" },
{ identifier = "cp311-win_arm64", version = "3.11.6", arch = "ARM64" },
{ identifier = "cp312-win_arm64", version = "3.12.0", arch = "ARM64" },
{ identifier = "cp311-win_arm64", version = "3.11.7", arch = "ARM64" },
{ identifier = "cp312-win_arm64", version = "3.12.1", 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.11-win64.zip" },
{ identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.13-win64.zip" },
@@ -218,11 +218,9 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
".+": [
{
"type": "string"
}
]
".+": {
"type": "string"
}
}
}
],
@@ -4,25 +4,25 @@
#
# nox -s update_constraints-3.10
#
delocate==0.10.4
delocate==0.10.6
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.7
# via virtualenv
filelock==3.12.4
filelock==3.13.1
# via virtualenv
packaging==23.2
# via delocate
platformdirs==3.11.0
platformdirs==4.1.0
# via virtualenv
typing-extensions==4.8.0
typing-extensions==4.9.0
# via delocate
virtualenv==20.24.5
virtualenv==20.25.0
# via -r cibuildwheel/resources/constraints.in
wheel==0.41.2
wheel==0.42.0
# via -r cibuildwheel/resources/constraints.in
# The following packages are considered to be unsafe in a requirements file:
pip==23.2.1
pip==23.3.1
# via -r cibuildwheel/resources/constraints.in
setuptools==68.2.2
setuptools==69.0.2
# via -r cibuildwheel/resources/constraints.in
@@ -4,25 +4,25 @@
#
# nox -s update_constraints-3.11
#
delocate==0.10.4
delocate==0.10.6
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.7
# via virtualenv
filelock==3.12.4
filelock==3.13.1
# via virtualenv
packaging==23.2
# via delocate
platformdirs==3.11.0
platformdirs==4.1.0
# via virtualenv
typing-extensions==4.8.0
typing-extensions==4.9.0
# via delocate
virtualenv==20.24.5
virtualenv==20.25.0
# via -r cibuildwheel/resources/constraints.in
wheel==0.41.2
wheel==0.42.0
# via -r cibuildwheel/resources/constraints.in
# The following packages are considered to be unsafe in a requirements file:
pip==23.2.1
pip==23.3.1
# via -r cibuildwheel/resources/constraints.in
setuptools==68.2.2
setuptools==69.0.2
# via -r cibuildwheel/resources/constraints.in
@@ -4,25 +4,25 @@
#
# nox -s update_constraints-3.12
#
delocate==0.10.4
delocate==0.10.6
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.7
# via virtualenv
filelock==3.12.4
filelock==3.13.1
# via virtualenv
packaging==23.2
# via delocate
platformdirs==3.11.0
platformdirs==4.1.0
# via virtualenv
typing-extensions==4.8.0
typing-extensions==4.9.0
# via delocate
virtualenv==20.24.5
virtualenv==20.25.0
# via -r cibuildwheel/resources/constraints.in
wheel==0.41.2
wheel==0.42.0
# via -r cibuildwheel/resources/constraints.in
# The following packages are considered to be unsafe in a requirements file:
pip==23.2.1
pip==23.3.1
# via -r cibuildwheel/resources/constraints.in
setuptools==68.2.2
setuptools==69.0.2
# via -r cibuildwheel/resources/constraints.in
@@ -4,7 +4,7 @@
#
# nox -s update_constraints-3.7
#
delocate==0.10.4
delocate==0.10.6
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.7
# via virtualenv
@@ -14,22 +14,22 @@ importlib-metadata==6.7.0
# via virtualenv
packaging==23.2
# via delocate
platformdirs==3.11.0
platformdirs==4.0.0
# via virtualenv
typing-extensions==4.7.1
# via
# delocate
# importlib-metadata
# platformdirs
virtualenv==20.24.5
virtualenv==20.25.0
# via -r cibuildwheel/resources/constraints.in
wheel==0.41.2
wheel==0.42.0
# via -r cibuildwheel/resources/constraints.in
zipp==3.15.0
# via importlib-metadata
# The following packages are considered to be unsafe in a requirements file:
pip==23.2.1
pip==23.3.1
# via -r cibuildwheel/resources/constraints.in
setuptools==68.0.0
# via -r cibuildwheel/resources/constraints.in
@@ -4,25 +4,25 @@
#
# nox -s update_constraints-3.8
#
delocate==0.10.4
delocate==0.10.6
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.7
# via virtualenv
filelock==3.12.4
filelock==3.13.1
# via virtualenv
packaging==23.2
# via delocate
platformdirs==3.11.0
platformdirs==4.1.0
# via virtualenv
typing-extensions==4.8.0
typing-extensions==4.9.0
# via delocate
virtualenv==20.24.5
virtualenv==20.25.0
# via -r cibuildwheel/resources/constraints.in
wheel==0.41.2
wheel==0.42.0
# via -r cibuildwheel/resources/constraints.in
# The following packages are considered to be unsafe in a requirements file:
pip==23.2.1
pip==23.3.1
# via -r cibuildwheel/resources/constraints.in
setuptools==68.2.2
setuptools==69.0.2
# via -r cibuildwheel/resources/constraints.in
@@ -4,25 +4,25 @@
#
# nox -s update_constraints-3.9
#
delocate==0.10.4
delocate==0.10.6
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.7
# via virtualenv
filelock==3.12.4
filelock==3.13.1
# via virtualenv
packaging==23.2
# via delocate
platformdirs==3.11.0
platformdirs==4.1.0
# via virtualenv
typing-extensions==4.8.0
typing-extensions==4.9.0
# via delocate
virtualenv==20.24.5
virtualenv==20.25.0
# via -r cibuildwheel/resources/constraints.in
wheel==0.41.2
wheel==0.42.0
# via -r cibuildwheel/resources/constraints.in
# The following packages are considered to be unsafe in a requirements file:
pip==23.2.1
pip==23.3.1
# via -r cibuildwheel/resources/constraints.in
setuptools==68.2.2
setuptools==69.0.2
# via -r cibuildwheel/resources/constraints.in
+8 -8
View File
@@ -4,25 +4,25 @@
#
# nox -s update_constraints-3.12
#
delocate==0.10.4
delocate==0.10.6
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.7
# via virtualenv
filelock==3.12.4
filelock==3.13.1
# via virtualenv
packaging==23.2
# via delocate
platformdirs==3.11.0
platformdirs==4.1.0
# via virtualenv
typing-extensions==4.8.0
typing-extensions==4.9.0
# via delocate
virtualenv==20.24.5
virtualenv==20.25.0
# via -r cibuildwheel/resources/constraints.in
wheel==0.41.2
wheel==0.42.0
# via -r cibuildwheel/resources/constraints.in
# The following packages are considered to be unsafe in a requirements file:
pip==23.2.1
pip==23.3.1
# via -r cibuildwheel/resources/constraints.in
setuptools==68.2.2
setuptools==69.0.2
# via -r cibuildwheel/resources/constraints.in
+26 -26
View File
@@ -1,54 +1,54 @@
[x86_64]
manylinux1 = quay.io/pypa/manylinux1_x86_64:2023-10-01-4095a57
manylinux1 = quay.io/pypa/manylinux1_x86_64:2023-12-10-cee9633
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-10-03-72cdc42
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-12-09-3915976
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-10-03-72cdc42
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-10-03-72cdc42
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2023-10-03-72cdc42
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-12-09-3915976
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-12-09-3915976
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2023-12-09-3915976
[i686]
manylinux1 = quay.io/pypa/manylinux1_i686:2023-10-01-4095a57
manylinux1 = quay.io/pypa/manylinux1_i686:2023-12-10-cee9633
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-10-03-72cdc42
manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-12-09-3915976
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-10-03-72cdc42
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2023-10-03-72cdc42
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-12-09-3915976
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2023-12-09-3915976
[pypy_x86_64]
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-10-03-72cdc42
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-12-09-3915976
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-10-03-72cdc42
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-12-09-3915976
[pypy_i686]
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-10-03-72cdc42
manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-12-09-3915976
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463
[aarch64]
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-10-03-72cdc42
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-12-09-3915976
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-10-03-72cdc42
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-10-03-72cdc42
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2023-10-03-72cdc42
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-12-09-3915976
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-12-09-3915976
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2023-12-09-3915976
[ppc64le]
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-10-03-72cdc42
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-12-09-3915976
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-10-03-72cdc42
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-10-03-72cdc42
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2023-10-03-72cdc42
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-12-09-3915976
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-12-09-3915976
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2023-12-09-3915976
[s390x]
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-10-03-72cdc42
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-12-09-3915976
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-10-03-72cdc42
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-10-03-72cdc42
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2023-10-03-72cdc42
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-12-09-3915976
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-12-09-3915976
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2023-12-09-3915976
[pypy_aarch64]
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-10-03-72cdc42
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-12-09-3915976
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-10-03-72cdc42
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-12-09-3915976
+1 -4
View File
@@ -619,10 +619,7 @@ def virtualenv(
python,
venv_path,
)
if IS_WIN:
paths = [str(venv_path), str(venv_path / "Scripts")]
else:
paths = [str(venv_path / "bin")]
paths = [str(venv_path), str(venv_path / "Scripts")] if IS_WIN else [str(venv_path / "bin")]
env = os.environ.copy()
env["PATH"] = os.pathsep.join([*paths, env["PATH"]])
return env
+1 -1
View File
@@ -501,7 +501,7 @@ def build(options: Options, tmp_path: Path) -> None:
"""
While arm64 wheels can be built on other platforms, they cannot
be tested. An arm64 runner is required. To silence this warning,
set `CIBW_TEST_SKIP: *-win_arm64`.
set `CIBW_TEST_SKIP: "*-win_arm64"`.
"""
)
)
+7
View File
@@ -631,3 +631,10 @@
os: [windows, apple, linux]
pypi: aalink
notes: Async Python interface for Ableton Link.
- name: werpy
gh: analyticsinmotion/werpy
ci: [github]
os: [windows, linux, apple]
pypi: werpy
notes: An ultra-fast python package using optimized dynamic programming to compute the Word Error Rate (WER).
+2 -3
View File
@@ -75,7 +75,7 @@ With the exception of Cirrus CI, macOS CI runners are still Intel-based, and App
!!! important
When cross-compiling on Intel, it is not possible to test `arm64` and the `arm64` part of a `universal2` wheel.
`cibuildwheel` will raise a warning to notify you of this - these warnings be be silenced by skipping testing on these platforms: `CIBW_TEST_SKIP: *_arm64 *_universal2:arm64`.
`cibuildwheel` will raise a warning to notify you of this - these warnings be be silenced by skipping testing on these platforms: `CIBW_TEST_SKIP: "*_arm64 *_universal2:arm64"`.
!!! note
Your runner needs Xcode Command Line Tools 12.2 or later to build `universal2` or `arm64`.
@@ -216,7 +216,6 @@ to build, your pyproject.toml might include a section like this:
[build-system]
requires = [
"setuptools>=42",
"wheel",
"Cython",
]
@@ -395,7 +394,7 @@ To investigate the dependencies of a C extension (i.e., the `.pyd` file, a DLL i
### Windows ARM64 builds {: #windows-arm64}
`cibuildwheel` supports cross-compiling `ARM64` wheels on all Windows runners, but a native ARM64 runner is required for testing. On non-native runners, tests for ARM64 wheels will be automatically skipped with a warning. Add `*-win_arm64` to your `CIBW_TEST_SKIP` setting to suppress the warning.
`cibuildwheel` supports cross-compiling `ARM64` wheels on all Windows runners, but a native ARM64 runner is required for testing. On non-native runners, tests for ARM64 wheels will be automatically skipped with a warning. Add `"*-win_arm64"` to your `CIBW_TEST_SKIP` setting to suppress the warning.
Cross-compilation on Windows relies on a supported build backend. Supported backends use an environment variable to specify their target platform (the one they are compiling native modules for, as opposed to the one they are running on), which is set in [cibuildwheels/windows.py](https://github.com/pypa/cibuildwheel/blob/main/cibuildwheel/windows.py) before building. Currently, `setuptools>=65.4.1` and `setuptools_rust` are the only supported backends.
+9 -7
View File
@@ -587,11 +587,11 @@ Platform-specific environment variables also available:<br/>
### `CIBW_ENVIRONMENT` {: #environment}
> Set environment variables needed during the build
> Set environment variables
A list of environment variables to set during the build. Bash syntax should be used, even on Windows.
A list of environment variables to set during the build and test phases. Bash syntax should be used, even on Windows.
You must set this variable to pass variables to Linux builds (since they execute in a container). It also works for the other platforms.
You must use this variable to pass variables to Linux builds, since they execute in a container. It also works for the other platforms.
You can use `$PATH` syntax to insert other variables, or the `$(pwd)` syntax to insert the output of other shell commands.
@@ -673,10 +673,13 @@ Platform-specific environment variables are also available:<br/>
!!! note
cibuildwheel always defines the environment variable `CIBUILDWHEEL=1`. This can be useful for [building wheels with optional extensions](faq.md#building-packages-with-optional-c-extensions).
### `CIBW_ENVIRONMENT_PASS_LINUX` {: #environment-pass}
> Set environment variables on the host to pass-through to the container during the build.
!!! note
To do its work, cibuildwheel internally sets the options `PIP_CONSTRAINT`, `VIRTUALENV_PIP`, `DIST_EXTRA_CONFIG`, `SETUPTOOLS_EXT_SUFFIX`, `PIP_DISABLE_PIP_VERSION_CHECK`, `PIP_ROOT_USER_ACTION`. Your assignments to these options might be overridden.
A list of environment variables to pass into the linux container during the build. It has no effect on the other platforms, which can already access all environment variables directly.
### `CIBW_ENVIRONMENT_PASS_LINUX` {: #environment-pass}
> Set environment variables on the host to pass-through to the container.
A list of environment variables to pass into the linux container during each build and test. It has no effect on the other platforms, which can already access all environment variables directly.
To specify more than one environment variable, separate the variable names by spaces.
@@ -846,7 +849,6 @@ Platform-specific environment variables are also available:<br/>
[build-system]
requires = [
"setuptools>=42",
"wheel",
"Cython",
"numpy==1.13.3; python_version<'3.5'",
"oldest-supported-numpy; python_version>='3.5'",
+36 -34
View File
@@ -37,38 +37,38 @@ title: Working examples
| [UltraJSON][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Ultra fast JSON decoder and encoder written in C with Python bindings |
| [OpenSpiel][] | ![github icon][] | ![apple icon][] ![linux icon][] | OpenSpiel is a collection of environments and algorithms for research in general reinforcement learning and search/planning in games. |
| [aiortc][] | ![github icon][] | ![apple icon][] ![linux icon][] | WebRTC and ORTC implementation for Python using asyncio. |
| [pyzmq][] | ![github icon][] ![circleci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python bindings for zeromq, the networking library. Uses Cython on CPython and CFFI on PyPy. ARM wheels for linux are built natively on CircleCI. |
| [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 |
| [pyzmq][] | ![github icon][] ![circleci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python bindings for zeromq, the networking library. Uses Cython on CPython and CFFI on PyPy. ARM wheels for linux are built natively on CircleCI. |
| [Dependency Injector][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Dependency injection framework for Python, uses Windows TravisCI |
| [Implicit][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes GPU support for linux wheels |
| [vispy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Main repository for Vispy |
| [tinyobjloader][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Tiny but powerful single file wavefront obj loader |
| [coverage.py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The coverage tool for Python |
| [PyCryptodome][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A self-contained cryptographic library for Python |
| [PyYAML][] | ![github icon][] | ![apple icon][] | Canonical source repository for PyYAML |
| [Line Profiler][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Line-by-line profiling for Python |
| [numexpr][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas, bcolz and more |
| [PyAV][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Pythonic bindings for FFmpeg's libraries. |
| [h5py][] | ![azurepipelines icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | HDF5 for Python -- The h5py package is a Pythonic interface to the HDF5 binary data format. |
| [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. |
| [Wrapt][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python module for decorators, wrappers and monkey patching. |
| [Line Profiler][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Line-by-line profiling for Python |
| [PyAV][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Pythonic bindings for FFmpeg's libraries. |
| [numexpr][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas, bcolz and more |
| [h5py][] | ![azurepipelines icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | HDF5 for Python -- The h5py package is a Pythonic interface to the HDF5 binary data format. |
| [pikepdf][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python library for reading and writing PDF, powered by QPDF |
| [Wrapt][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python module for decorators, wrappers and monkey patching. |
| [envd][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | 🏕️ Reproducible development environment |
| [OpenColorIO][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A color management framework for visual effects and animation. |
| [SimpleJSON][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | simplejson is a simple, fast, extensible JSON encoder/decoder for Python |
| [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. |
| [OpenTimelineIO][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Open Source API and interchange format for editorial timeline information. |
| [PyTables][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python package to manage extremely large amounts of data |
| [Psycopg 3][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A modern implementation of a PostgreSQL adapter for Python |
| [PyTables][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python package to manage extremely large amounts of 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. |
| [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 |
| [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 |
| [mosec][] | ![github icon][] | ![linux icon][] ![apple icon][] | A high-performance ML model serving framework, offers dynamic batching and CPU/GPU pipelines to fully exploit your compute machine |
| [Rtree][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Rtree: spatial index for Python GIS ¶ |
| [Picologging][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A high-performance logging library for Python. |
| [Rtree][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Rtree: spatial index for Python GIS |
| [markupsafe][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Safely add untrusted strings to HTML/XML markup. |
| [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a CMake-based build system |
| [time-machine][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Time mocking library using only the CPython C API. |
@@ -87,30 +87,31 @@ title: Working examples
| [Tokenizer][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast and customizable text tokenization library with BPE and SentencePiece support |
| [PyGLM][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Fast OpenGL Mathematics (GLM) for Python |
| [TgCrypto][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. |
| [bx-python][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | A library that includes Cython extensions. |
| [iDynTree][] | ![github icon][] | ![linux icon][] | Uses manylinux_2_24 |
| [boost-histogram][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Supports full range of wheels, including PyPy and alternate archs. |
| [pillow-heif][] | ![github icon][] ![cirrusci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Bindings to libheif library with third party dependencies. Fully automated CI for tests and publishing including Apple Silicon builds. |
| [iDynTree][] | ![github icon][] | ![linux icon][] | Uses manylinux_2_24 |
| [bx-python][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | A library that includes Cython extensions. |
| [boost-histogram][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Supports full range of wheels, including PyPy and alternate archs. |
| [Python-WebRTC][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | a Python extension that provides bindings to WebRTC M92 |
| [pybase64][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast Base64 encoding/decoding in Python |
| [Arbor][] | ![github icon][] | ![apple icon][] ![linux icon][] | Arbor is a multi-compartment neuron simulation library; compatible with next-generation accelerators; best-practices applied to research software; focused on community-driven development. Includes a [small script](https://github.com/arbor-sim/arbor/blob/master/scripts/patchwheel.py) patching `rpath` in bundled libraries. |
| [fathon][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | python package for DFA (Detrended Fluctuation Analysis) and related algorithms |
| [power-grid-model][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python/C++ library for distribution power system analysis |
| [Arbor][] | ![github icon][] | ![apple icon][] ![linux icon][] | Arbor is a multi-compartment neuron simulation library; compatible with next-generation accelerators; best-practices applied to research software; focused on community-driven development. Includes a [small script](https://github.com/arbor-sim/arbor/blob/master/scripts/patchwheel.py) patching `rpath` in bundled libraries. |
| [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. |
| [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. |
| [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 |
| [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. |
| [etebase-py][] | ![travisci icon][] | ![linux icon][] | Python bindings to a Rust library using `setuptools-rust`, and `sccache` for improved speed. |
| [cf-units][] | ![github icon][] | ![apple icon][] ![linux icon][] | Units of measure as required by the Climate and Forecast (CF) Metadata Conventions |
| [clang-format][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Scikit-build wrapper around LLVM's CMake, all platforms, generic wheels. |
| [cf-units][] | ![github icon][] | ![apple icon][] ![linux icon][] | Units of measure as required by the Climate and Forecast (CF) Metadata Conventions |
| [ninja][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Multitagged binary builds for all supported platforms, using cibw 2 config configuration. |
| [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 |
| [ril][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A python binding to Rust Imaging library using maturin and Pyo3, utilizes Github Action cache to improve speed. Builds abi3 wheels. |
| [SiPM][] | ![github icon][] | ![apple icon][] ![linux icon][] | High performance library for SiPM detectors simulation using C++17, OpenMP and AVX2 intrinsics. |
| [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. |
| [SiPM][] | ![github icon][] | ![apple icon][] ![linux icon][] | High performance library for SiPM detectors simulation using C++17, OpenMP and AVX2 intrinsics. |
| [CorrectionLib][] | ![github icon][] | ![apple icon][] ![linux icon][] | Structured JSON powered correction library for HEP, designed for the CMS experiment at CERN. |
| [pyinstrument_cext][] | ![travisci icon][] ![appveyor icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A simple C extension, without external dependencies |
| [xmlstarlet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python 3.6+ CFFI bindings with true MSVC build. |
| [pyinstrument_cext][] | ![travisci icon][] ![appveyor icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A simple C extension, without external dependencies |
| [werpy][] | ![github icon][] | ![windows icon][] ![linux icon][] ![apple icon][] | An ultra-fast python package using optimized dynamic programming to compute the Word Error Rate (WER). |
| [aalink][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Async Python interface for Ableton Link. |
| [pybind11 cross build example][] | ![github icon][] ![gitlab icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Same as pybind11 cmake_example but used to demo Linux ARM + Windows + macOS builds on GitLab |
@@ -143,38 +144,38 @@ title: Working examples
[UltraJSON]: https://github.com/ultrajson/ultrajson
[OpenSpiel]: https://github.com/deepmind/open_spiel
[aiortc]: https://github.com/aiortc/aiortc
[pyzmq]: https://github.com/zeromq/pyzmq
[Confluent client for Kafka]: https://github.com/confluentinc/confluent-kafka-python
[Implicit]: https://github.com/benfred/implicit
[pyzmq]: https://github.com/zeromq/pyzmq
[Dependency Injector]: https://github.com/ets-labs/python-dependency-injector
[Implicit]: https://github.com/benfred/implicit
[vispy]: https://github.com/vispy/vispy
[tinyobjloader]: https://github.com/tinyobjloader/tinyobjloader
[coverage.py]: https://github.com/nedbat/coveragepy
[PyCryptodome]: https://github.com/Legrandin/pycryptodome
[PyYAML]: https://github.com/yaml/pyyaml
[Line Profiler]: https://github.com/pyutils/line_profiler
[numexpr]: https://github.com/pydata/numexpr
[PyAV]: https://github.com/PyAV-Org/PyAV
[h5py]: https://github.com/h5py/h5py
[CTranslate2]: https://github.com/OpenNMT/CTranslate2
[Wrapt]: https://github.com/GrahamDumpleton/wrapt
[Line Profiler]: https://github.com/pyutils/line_profiler
[PyAV]: https://github.com/PyAV-Org/PyAV
[numexpr]: https://github.com/pydata/numexpr
[h5py]: https://github.com/h5py/h5py
[pikepdf]: https://github.com/pikepdf/pikepdf
[Wrapt]: https://github.com/GrahamDumpleton/wrapt
[envd]: https://github.com/tensorchord/envd
[OpenColorIO]: https://github.com/AcademySoftwareFoundation/OpenColorIO
[SimpleJSON]: https://github.com/simplejson/simplejson
[aioquic]: https://github.com/aiortc/aioquic
[ruptures]: https://github.com/deepcharles/ruptures
[OpenTimelineIO]: https://github.com/PixarAnimationStudios/OpenTimelineIO
[PyTables]: https://github.com/PyTables/PyTables
[Psycopg 3]: https://github.com/psycopg/psycopg
[PyTables]: https://github.com/PyTables/PyTables
[Parselmouth]: https://github.com/YannickJadoul/Parselmouth
[DeepForest]: https://github.com/LAMDA-NJU/Deep-Forest
[google neuroglancer]: https://github.com/google/neuroglancer
[AutoPy]: https://github.com/autopilot-rs/autopy
[H3-py]: https://github.com/uber/h3-py
[mosec]: https://github.com/mosecorg/mosec
[Rtree]: https://github.com/Toblerity/rtree
[Picologging]: https://github.com/microsoft/picologging
[Rtree]: https://github.com/Toblerity/rtree
[markupsafe]: https://github.com/pallets/markupsafe
[pybind11 cmake_example]: https://github.com/pybind/cmake_example
[time-machine]: https://github.com/adamchainz/time-machine
@@ -193,30 +194,31 @@ title: Working examples
[Tokenizer]: https://github.com/OpenNMT/Tokenizer
[PyGLM]: https://github.com/Zuzu-Typ/PyGLM
[TgCrypto]: https://github.com/pyrogram/tgcrypto
[bx-python]: https://github.com/bxlab/bx-python
[iDynTree]: https://github.com/robotology/idyntree
[boost-histogram]: https://github.com/scikit-hep/boost-histogram
[pillow-heif]: https://github.com/bigcat88/pillow_heif
[iDynTree]: https://github.com/robotology/idyntree
[bx-python]: https://github.com/bxlab/bx-python
[boost-histogram]: https://github.com/scikit-hep/boost-histogram
[Python-WebRTC]: https://github.com/MarshalX/python-webrtc
[pybase64]: https://github.com/mayeut/pybase64
[Arbor]: https://github.com/arbor-sim/arbor
[fathon]: https://github.com/stfbnc/fathon
[power-grid-model]: https://github.com/alliander-opensource/power-grid-model
[Arbor]: https://github.com/arbor-sim/arbor
[Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build
[polaroid]: https://github.com/daggy1234/polaroid
[pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example
[polaroid]: https://github.com/daggy1234/polaroid
[etebase-py]: https://github.com/etesync/etebase-py
[cf-units]: https://github.com/SciTools/cf-units
[clang-format]: https://github.com/ssciwr/clang-format-wheel
[cf-units]: https://github.com/SciTools/cf-units
[ninja]: https://github.com/scikit-build/ninja-python-distributions
[numpythia]: https://github.com/scikit-hep/numpythia
[pyjet]: https://github.com/scikit-hep/pyjet
[ril]: https://github.com/Cryptex-github/ril-py
[SiPM]: https://github.com/EdoPro98/SimSiPM
[GSD]: https://github.com/glotzerlab/gsd
[SiPM]: https://github.com/EdoPro98/SimSiPM
[CorrectionLib]: https://github.com/cms-nanoAOD/correctionlib
[pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext
[xmlstarlet]: https://github.com/dimitern/xmlstarlet
[pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext
[werpy]: https://github.com/analyticsinmotion/werpy
[aalink]: https://github.com/artfwo/aalink
[pybind11 cross build example]: https://github.com/wbarnha/pybind_cmake_example_crossbuild
+3
View File
@@ -115,6 +115,9 @@ def update_proj(session: nox.Session) -> None:
@nox.session(reuse_venv=True)
def generate_schema(session: nox.Session) -> None:
"""
Generate the cibuildwheel.schema.json file.
"""
session.install("pyyaml")
output = session.run("python", "bin/generate_schema.py", silent=True)
assert isinstance(output, str)
+13 -12
View File
@@ -5,11 +5,6 @@ requires = [
build-backend = "setuptools.build_meta"
[tool.black]
line-length = 100
target-version = ['py38', 'py39', 'py310', 'py311']
[tool.pytest.ini_options]
minversion = "6.0"
addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
@@ -115,8 +110,12 @@ messages_control.disable = [
]
[tool.ruff]
select = [
"E", "F", "W", # flake8
target-version = "py38"
line-length = 100
[tool.ruff.lint]
extend-select = [
"B", # flake8-bugbear
"I", # isort
"ARG", # flake8-unused-arguments
@@ -136,19 +135,21 @@ select = [
"UP", # pyupgrade
"YTT", # flake8-2020
"EXE", # flake8-executable
"PYI", # flake8-pyi
]
extend-ignore = [
ignore = [
"PLR", # Design related pylint codes
"E501", # Line too long
"RET504", "RET505", "RET508", # else after control flow
"PT004", # Rename suggested for returnless fixtures
"PT007", # False positive (fixed upstream)
"PT007", # False positive
"PYI025", # Set as AbstractSet
"ISC001", # Conflicts with formatter
]
target-version = "py38"
typing-modules = ["cibuildwheel._compat.typing"]
flake8-unused-arguments.ignore-variadic-names = true
[tool.ruff.flake8-tidy-imports.banned-api]
[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."
@@ -159,6 +160,6 @@ flake8-unused-arguments.ignore-variadic-names = true
"tomllib".msg = "Use cibuildwheel._compat.tomllib instead."
"tomli".msg = "Use cibuildwheel._compat.tomllib instead."
[tool.ruff.per-file-ignores]
[tool.ruff.lint.per-file-ignores]
"unit_test/*" = ["PLC1901"]
"cibuildwheel/_compat/**.py" = ["TID251"]
+1
View File
@@ -20,6 +20,7 @@ classifiers =
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: Implementation :: CPython
Topic :: Software Development :: Build Tools
keywords = ci,wheel,packaging,pypi,travis,appveyor,macos,linux,windows
+1 -3
View File
@@ -3,9 +3,7 @@ from __future__ import annotations
from . import test_projects, utils
before_test_project = test_projects.new_c_project()
before_test_project.files[
"test/spam_test.py"
] = r"""
before_test_project.files["test/spam_test.py"] = r"""
import sys
import os
from unittest import TestCase
+1 -3
View File
@@ -99,9 +99,7 @@ cpp17_project = cpp_test_project.copy()
cpp17_project.template_context["extra_compile_args"] = [
"/std:c++17" if utils.platform == "windows" else "-std=c++17"
]
cpp17_project.template_context[
"spam_cpp_top_level_add"
] = r"""
cpp17_project.template_context["spam_cpp_top_level_add"] = r"""
#include <utility>
auto a = std::pair(5.0, false);
"""
+1 -3
View File
@@ -135,9 +135,7 @@ def test_dependency_constraints_file(tmp_path, build_frontend_env):
wheel=={wheel}
virtualenv=={virtualenv}
importlib-metadata<3,>=0.12; python_version < "3.8"
""".format(
**tool_versions
)
""".format(**tool_versions)
)
)
+1 -3
View File
@@ -8,9 +8,7 @@ from . import test_projects, utils
project_with_a_test = test_projects.new_c_project()
project_with_a_test.files[
"test/spam_test.py"
] = r"""
project_with_a_test.files["test/spam_test.py"] = r"""
import spam
def test_spam():
+1 -3
View File
@@ -19,9 +19,7 @@ basic_project = test_projects.new_c_project(
)
)
basic_project.files[
"pyproject.toml"
] = """
basic_project.files["pyproject.toml"] = """
[build-system]
requires = [
"setuptools >= 42",
+2 -6
View File
@@ -8,9 +8,7 @@ import pytest
from . import utils
pure_python_project = test_projects.TestProject()
pure_python_project.files[
"setup.py"
] = """
pure_python_project.files["setup.py"] = """
from setuptools import Extension, setup
setup(
@@ -20,9 +18,7 @@ setup(
)
"""
pure_python_project.files[
"spam.py"
] = """
pure_python_project.files["spam.py"] = """
def a_function():
pass
"""
+1 -3
View File
@@ -8,9 +8,7 @@ import pytest
from . import utils
basic_project = test_projects.new_c_project()
basic_project.files[
"repair.py"
] = """
basic_project.files["repair.py"] = """
import shutil
import sys
from pathlib import Path
+3 -9
View File
@@ -14,9 +14,7 @@ subdir_package_project.files["src/spam/spam.c"] = jinja2.Template(SPAM_C_TEMPLAT
subdir_package_project.template_context["spam_c_top_level_add"] = ""
subdir_package_project.template_context["spam_c_function_add"] = ""
subdir_package_project.files[
"src/spam/setup.py"
] = r"""
subdir_package_project.files["src/spam/setup.py"] = r"""
from setuptools import Extension, setup
setup(
@@ -26,15 +24,11 @@ setup(
)
"""
subdir_package_project.files[
"src/spam/test/run_tests.py"
] = r"""
subdir_package_project.files["src/spam/test/run_tests.py"] = r"""
print('run_tests.py executed!')
"""
subdir_package_project.files[
"bin/before_build.py"
] = r"""
subdir_package_project.files["bin/before_build.py"] = r"""
print('before_build.py executed!')
"""
+2 -6
View File
@@ -18,9 +18,7 @@ project_with_a_test = test_projects.new_c_project(
)
)
project_with_a_test.files[
"test/spam_test.py"
] = r'''
project_with_a_test.files["test/spam_test.py"] = r'''
import os
import platform
import sys
@@ -115,9 +113,7 @@ def test_extras_require(tmp_path):
project_with_a_failing_test = test_projects.new_c_project()
project_with_a_failing_test.files[
"test/spam_test.py"
] = r"""
project_with_a_failing_test.files["test/spam_test.py"] = r"""
from unittest import TestCase
class TestSpam(TestCase):