Merge remote-tracking branch 'origin/main' into macos-13-xlarge
This commit is contained in:
@@ -5,3 +5,7 @@ updates:
|
|||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
|
groups:
|
||||||
|
actions:
|
||||||
|
patterns:
|
||||||
|
- "*"
|
||||||
|
|||||||
@@ -16,8 +16,9 @@ jobs:
|
|||||||
- name: Build SDist and wheel
|
- name: Build SDist and wheel
|
||||||
run: pipx run build
|
run: pipx run build
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
name: cibw-sdist
|
||||||
path: dist/*
|
path: dist/*
|
||||||
|
|
||||||
- name: Check metadata
|
- name: Check metadata
|
||||||
@@ -32,9 +33,10 @@ jobs:
|
|||||||
id-token: write
|
id-token: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: artifact
|
pattern: cibw-*
|
||||||
path: dist
|
path: dist
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
- uses: pypa/gh-action-pypi-publish@release/v1
|
- uses: pypa/gh-action-pypi-publish@release/v1
|
||||||
|
|||||||
@@ -85,10 +85,10 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
CIBW_ARCHS_MACOS: x86_64 universal2 arm64
|
CIBW_ARCHS_MACOS: x86_64 universal2 arm64
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: sample_wheels_action
|
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
||||||
path: wheelhouse
|
path: wheelhouse/*.whl
|
||||||
|
|
||||||
- name: Test cibuildwheel
|
- name: Test cibuildwheel
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
+19
-2
@@ -14,7 +14,7 @@ repos:
|
|||||||
- id: trailing-whitespace
|
- id: trailing-whitespace
|
||||||
|
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: v0.1.6
|
rev: v0.1.14
|
||||||
hooks:
|
hooks:
|
||||||
- id: ruff
|
- id: ruff
|
||||||
args: ["--fix", "--show-fixes"]
|
args: ["--fix", "--show-fixes"]
|
||||||
@@ -27,7 +27,7 @@ repos:
|
|||||||
args: [--include-version-classifiers, --min-py-version=3.8, --max-py-version=3.12]
|
args: [--include-version-classifiers, --min-py-version=3.8, --max-py-version=3.12]
|
||||||
|
|
||||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||||
rev: v1.7.1
|
rev: v1.8.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: mypy
|
- id: mypy
|
||||||
name: mypy 3.8 on cibuildwheel/
|
name: mypy 3.8 on cibuildwheel/
|
||||||
@@ -79,3 +79,20 @@ repos:
|
|||||||
- id: codespell
|
- id: codespell
|
||||||
args: ["-L", "sur", "-w"]
|
args: ["-L", "sur", "-w"]
|
||||||
exclude: ^docs/working-examples\.md$ # Autogenerated
|
exclude: ^docs/working-examples\.md$ # Autogenerated
|
||||||
|
|
||||||
|
|
||||||
|
- repo: https://github.com/python-jsonschema/check-jsonschema
|
||||||
|
rev: 0.27.0
|
||||||
|
hooks:
|
||||||
|
- id: check-dependabot
|
||||||
|
- id: check-github-actions
|
||||||
|
- id: check-github-workflows
|
||||||
|
- id: check-gitlab-ci
|
||||||
|
- id: check-readthedocs
|
||||||
|
- id: check-travis
|
||||||
|
- id: check-jsonschema
|
||||||
|
name: Check projects
|
||||||
|
args: [--schemafile, docs/data/projects.schema.json]
|
||||||
|
files: '^docs/data/projects.yml$'
|
||||||
|
- id: check-metaschema
|
||||||
|
files: '^docs/data/projects.schema.json$'
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ cibuildwheel
|
|||||||
[](https://ci.appveyor.com/project/joerick/cibuildwheel/branch/main)
|
[](https://ci.appveyor.com/project/joerick/cibuildwheel/branch/main)
|
||||||
[](https://circleci.com/gh/pypa/cibuildwheel)
|
[](https://circleci.com/gh/pypa/cibuildwheel)
|
||||||
[](https://dev.azure.com/joerick0429/cibuildwheel/_build/latest?definitionId=4&branchName=main)
|
[](https://dev.azure.com/joerick0429/cibuildwheel/_build/latest?definitionId=4&branchName=main)
|
||||||
[](https://cirrus-ci.com/github/pypa/cibuildwheel)
|
|
||||||
|
|
||||||
|
|
||||||
[Documentation](https://cibuildwheel.readthedocs.org)
|
[Documentation](https://cibuildwheel.readthedocs.org)
|
||||||
@@ -92,7 +91,7 @@ jobs:
|
|||||||
- uses: actions/setup-python@v3
|
- uses: actions/setup-python@v3
|
||||||
|
|
||||||
- name: Install cibuildwheel
|
- name: Install cibuildwheel
|
||||||
run: python -m pip install cibuildwheel==2.16.2
|
run: python -m pip install cibuildwheel==2.16.5
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
run: python -m cibuildwheel --output-dir wheelhouse
|
run: python -m cibuildwheel --output-dir wheelhouse
|
||||||
@@ -100,8 +99,9 @@ jobs:
|
|||||||
# env:
|
# env:
|
||||||
# CIBW_SOME_OPTION: value
|
# CIBW_SOME_OPTION: value
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
||||||
path: ./wheelhouse/*.whl
|
path: ./wheelhouse/*.whl
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -208,6 +208,27 @@ Changelog
|
|||||||
|
|
||||||
<!-- this section was generated by bin/update_readme_changelog.py -- do not edit manually -->
|
<!-- this section was generated by bin/update_readme_changelog.py -- do not edit manually -->
|
||||||
|
|
||||||
|
### v2.16.5
|
||||||
|
|
||||||
|
_30 January 2024_
|
||||||
|
|
||||||
|
- 🐛 Fix an incompatibility with the GitHub Action and new GitHub Runner images for Windows that bundle Powershell 7.3+ (#1741)
|
||||||
|
- 🛠 Preliminary support for new `macos-14` arm64 runners (#1743)
|
||||||
|
|
||||||
|
### v2.16.4
|
||||||
|
|
||||||
|
_28 January 2024_
|
||||||
|
|
||||||
|
- 🛠 Update manylinux pins to upgrade from a problematic PyPy version. (#1737)
|
||||||
|
|
||||||
|
### v2.16.3
|
||||||
|
|
||||||
|
_26 January 2024_
|
||||||
|
|
||||||
|
- 🐛 Fix a bug when building from sdist, where relative paths to files in the package didn't work because the working directory was wrong (#1687)
|
||||||
|
- 🛠 Adds the ability to disable mounting the host filesystem in containers to `/host`, through the `disable_host_mount` suboption on [`CIBW_CONTAINER_ENGINE`](https://cibuildwheel.readthedocs.io/en/stable/options/#container-engine).
|
||||||
|
- 📚 A lot of docs improvements! (#1708, #1705, #1686, #1679, #1667, #1665)
|
||||||
|
|
||||||
### v2.16.2
|
### v2.16.2
|
||||||
|
|
||||||
_3 October 2023_
|
_3 October 2023_
|
||||||
@@ -226,31 +247,6 @@ _26 September 2023_
|
|||||||
- 🛠 Updates the prerelease CPython 3.12 version to 3.12.0rc3 (#1625)
|
- 🛠 Updates the prerelease CPython 3.12 version to 3.12.0rc3 (#1625)
|
||||||
- 🛠 Only calls `linux32` in containers when necessary (#1599)
|
- 🛠 Only calls `linux32` in containers when necessary (#1599)
|
||||||
|
|
||||||
### v2.16.0
|
|
||||||
|
|
||||||
_18 September 2023_
|
|
||||||
|
|
||||||
- ✨ Add the ability to pass additional flags to a build frontend through the [CIBW_BUILD_FRONTEND](https://cibuildwheel.readthedocs.io/en/stable/options/#build-frontend) option (#1588).
|
|
||||||
- ✨ The environment variable SOURCE_DATE_EPOCH is now automatically passed through to container Linux builds (useful for [reproducible builds](https://reproducible-builds.org/docs/source-date-epoch/)!) (#1589)
|
|
||||||
- 🛠 Updates the prerelease CPython 3.12 version to 3.12.0rc2 (#1604)
|
|
||||||
- 🐛 Fix `requires_python` auto-detection from setup.py when the call to `setup()` is within an `if __name__ == "__main__"` block (#1613)
|
|
||||||
- 🐛 Fix a bug that prevented building Linux wheels in Docker on a Windows host (#1573)
|
|
||||||
- 🐛 `--only` can now select prerelease-pythons (#1564)
|
|
||||||
- 📚 Docs & examples updates (#1582, #1593, #1598, #1615)
|
|
||||||
|
|
||||||
### v2.15.0
|
|
||||||
|
|
||||||
_8 August 2023_
|
|
||||||
|
|
||||||
- 🌟 CPython 3.12 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.12.0rc1, which is guaranteed to be ABI compatible with the final release. (#1565)
|
|
||||||
- ✨ Adds musllinux_1_2 support - this allows packagers to build for musl-based Linux distributions on a more recent Alpine image, and a newer musl libc. (#1561)
|
|
||||||
|
|
||||||
### v2.14.1
|
|
||||||
|
|
||||||
_15 July 2023_
|
|
||||||
|
|
||||||
- 🛠 Updates the prerelease CPython 3.12 version to 3.12.0b4 (#1550)
|
|
||||||
|
|
||||||
<!-- END bin/update_readme_changelog.py -->
|
<!-- END bin/update_readme_changelog.py -->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
+13
-4
@@ -31,10 +31,14 @@ runs:
|
|||||||
python-version: "3.8 - 3.12"
|
python-version: "3.8 - 3.12"
|
||||||
update-environment: false
|
update-environment: false
|
||||||
|
|
||||||
|
# macos-14 (M1) may be missing pipx (due to it not having CPython)
|
||||||
|
- run: |
|
||||||
|
"${{ steps.python.outputs.python-path }}" -m pip install pipx
|
||||||
|
shell: bash
|
||||||
|
|
||||||
# Redirecting stderr to stdout to fix interleaving issue in Actions.
|
# Redirecting stderr to stdout to fix interleaving issue in Actions.
|
||||||
- run: >
|
- run: >
|
||||||
pipx run
|
"${{ steps.python.outputs.python-path }}" -m pipx run
|
||||||
--python '${{ steps.python.outputs.python-path }}'
|
|
||||||
--spec '${{ github.action_path }}'
|
--spec '${{ github.action_path }}'
|
||||||
cibuildwheel
|
cibuildwheel
|
||||||
"${{ inputs.package-dir }}"
|
"${{ inputs.package-dir }}"
|
||||||
@@ -46,9 +50,14 @@ runs:
|
|||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
|
|
||||||
# Windows needs powershell to interact nicely with Meson
|
# Windows needs powershell to interact nicely with Meson
|
||||||
|
# $PSNativeCommandArgumentPassing was introduced in pwsh 7.3 and the
|
||||||
|
# legacy behaviour is needed for backwards compatibility with how this
|
||||||
|
# was called in the past.
|
||||||
- run: >
|
- run: >
|
||||||
pipx run
|
if ($PSNativeCommandArgumentPassing) {
|
||||||
--python "${{ steps.python.outputs.python-path }}"
|
$PSNativeCommandArgumentPassing = 'Legacy'
|
||||||
|
};
|
||||||
|
& "${{ steps.python.outputs.python-path }}" -m pipx run
|
||||||
--spec "${{ github.action_path }}"
|
--spec "${{ github.action_path }}"
|
||||||
cibuildwheel
|
cibuildwheel
|
||||||
"${{ inputs.package-dir }}"
|
"${{ inputs.package-dir }}"
|
||||||
|
|||||||
@@ -66,9 +66,9 @@ properties:
|
|||||||
oneOf:
|
oneOf:
|
||||||
- enum: [docker, podman]
|
- enum: [docker, podman]
|
||||||
- type: string
|
- type: string
|
||||||
pattern: '^docker; ?create_args:'
|
pattern: '^docker; ?(create_args|disable_host_mount):'
|
||||||
- type: string
|
- type: string
|
||||||
pattern: '^podman; ?create_args:'
|
pattern: '^podman; ?(create_args|disable_host_mount):'
|
||||||
- type: object
|
- type: object
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
required: [name]
|
required: [name]
|
||||||
@@ -79,6 +79,8 @@ properties:
|
|||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
|
disable-host-mount:
|
||||||
|
type: boolean
|
||||||
dependency-versions:
|
dependency-versions:
|
||||||
default: pinned
|
default: pinned
|
||||||
description: Specify how cibuildwheel controls the versions of the tools it uses
|
description: Specify how cibuildwheel controls the versions of the tools it uses
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
__version__ = "2.16.2"
|
__version__ = "2.16.5"
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ def main() -> None:
|
|||||||
# This is now the new package dir
|
# This is now the new package dir
|
||||||
args.package_dir = project_dir.resolve()
|
args.package_dir = project_dir.resolve()
|
||||||
|
|
||||||
with chdir(temp_dir):
|
with chdir(project_dir):
|
||||||
build_in_directory(args)
|
build_in_directory(args)
|
||||||
finally:
|
finally:
|
||||||
# avoid https://github.com/python/cpython/issues/86962 by performing
|
# avoid https://github.com/python/cpython/issues/86962 by performing
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class Printable(Protocol):
|
|||||||
|
|
||||||
|
|
||||||
def dump_python_configurations(
|
def dump_python_configurations(
|
||||||
inp: Mapping[str, Mapping[str, Sequence[Mapping[str, Printable]]]]
|
inp: Mapping[str, Mapping[str, Sequence[Mapping[str, Printable]]]],
|
||||||
) -> str:
|
) -> str:
|
||||||
output = StringIO()
|
output = StringIO()
|
||||||
for header, values in inp.items():
|
for header, values in inp.items():
|
||||||
|
|||||||
@@ -33,11 +33,14 @@ ContainerEngineName = Literal["docker", "podman"]
|
|||||||
class OCIContainerEngineConfig:
|
class OCIContainerEngineConfig:
|
||||||
name: ContainerEngineName
|
name: ContainerEngineName
|
||||||
create_args: Sequence[str] = ()
|
create_args: Sequence[str] = ()
|
||||||
|
disable_host_mount: bool = False
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def from_config_string(config_string: str) -> OCIContainerEngineConfig:
|
def from_config_string(config_string: str) -> OCIContainerEngineConfig:
|
||||||
config_dict = parse_key_value_string(
|
config_dict = parse_key_value_string(
|
||||||
config_string, ["name"], ["create_args", "create-args"]
|
config_string,
|
||||||
|
["name"],
|
||||||
|
["create_args", "create-args", "disable_host_mount", "disable-host-mount"],
|
||||||
)
|
)
|
||||||
name = " ".join(config_dict["name"])
|
name = " ".join(config_dict["name"])
|
||||||
if name not in {"docker", "podman"}:
|
if name not in {"docker", "podman"}:
|
||||||
@@ -45,15 +48,28 @@ class OCIContainerEngineConfig:
|
|||||||
raise ValueError(msg)
|
raise ValueError(msg)
|
||||||
|
|
||||||
name = typing.cast(ContainerEngineName, name)
|
name = typing.cast(ContainerEngineName, name)
|
||||||
# some flexibility in the option name to cope with TOML conventions
|
# some flexibility in the option names to cope with TOML conventions
|
||||||
create_args = config_dict.get("create_args") or config_dict.get("create-args") or []
|
create_args = config_dict.get("create_args") or config_dict.get("create-args") or []
|
||||||
return OCIContainerEngineConfig(name=name, create_args=create_args)
|
disable_host_mount_options = (
|
||||||
|
config_dict.get("disable_host_mount") or config_dict.get("disable-host-mount") or []
|
||||||
|
)
|
||||||
|
disable_host_mount = (
|
||||||
|
strtobool(disable_host_mount_options[-1]) if disable_host_mount_options else False
|
||||||
|
)
|
||||||
|
|
||||||
|
return OCIContainerEngineConfig(
|
||||||
|
name=name, create_args=create_args, disable_host_mount=disable_host_mount
|
||||||
|
)
|
||||||
|
|
||||||
def options_summary(self) -> str | dict[str, str]:
|
def options_summary(self) -> str | dict[str, str]:
|
||||||
if not self.create_args:
|
if not self.create_args:
|
||||||
return self.name
|
return self.name
|
||||||
else:
|
else:
|
||||||
return {"name": self.name, "create_args": repr(self.create_args)}
|
return {
|
||||||
|
"name": self.name,
|
||||||
|
"create_args": repr(self.create_args),
|
||||||
|
"disable_host_mount": str(self.disable_host_mount),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_ENGINE = OCIContainerEngineConfig("docker")
|
DEFAULT_ENGINE = OCIContainerEngineConfig("docker")
|
||||||
@@ -137,7 +153,7 @@ class OCIContainer:
|
|||||||
"--env=SOURCE_DATE_EPOCH",
|
"--env=SOURCE_DATE_EPOCH",
|
||||||
f"--name={self.name}",
|
f"--name={self.name}",
|
||||||
"--interactive",
|
"--interactive",
|
||||||
"--volume=/:/host", # ignored on CircleCI
|
*(["--volume=/:/host"] if not self.engine.disable_host_mount else []),
|
||||||
*network_args,
|
*network_args,
|
||||||
*self.engine.create_args,
|
*self.engine.create_args,
|
||||||
self.image,
|
self.image,
|
||||||
|
|||||||
@@ -378,6 +378,9 @@ def _inner_fmt(k: str, v: Any, table: TableFmt) -> Iterator[str]:
|
|||||||
for inner_v in v:
|
for inner_v in v:
|
||||||
qv = quote_function(inner_v)
|
qv = quote_function(inner_v)
|
||||||
yield table["item"].format(k=k, v=qv)
|
yield table["item"].format(k=k, v=qv)
|
||||||
|
elif isinstance(v, bool):
|
||||||
|
qv = quote_function(str(v))
|
||||||
|
yield table["item"].format(k=k, v=qv)
|
||||||
else:
|
else:
|
||||||
qv = quote_function(v)
|
qv = quote_function(v)
|
||||||
yield table["item"].format(k=k, v=qv)
|
yield table["item"].format(k=k, v=qv)
|
||||||
|
|||||||
@@ -106,10 +106,10 @@ python_configurations = [
|
|||||||
{ identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-osx64.tar.bz2" },
|
{ 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_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" },
|
{ identifier = "pp38-macosx_arm64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_arm64.tar.bz2" },
|
||||||
{ identifier = "pp39-macosx_x86_64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.13-macos_x86_64.tar.bz2" },
|
{ identifier = "pp39-macosx_x86_64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.15-macos_x86_64.tar.bz2" },
|
||||||
{ identifier = "pp39-macosx_arm64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.13-macos_arm64.tar.bz2" },
|
{ identifier = "pp39-macosx_arm64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.15-macos_arm64.tar.bz2" },
|
||||||
{ identifier = "pp310-macosx_x86_64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.13-macos_x86_64.tar.bz2" },
|
{ identifier = "pp310-macosx_x86_64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.15-macos_x86_64.tar.bz2" },
|
||||||
{ identifier = "pp310-macosx_arm64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.13-macos_arm64.tar.bz2" },
|
{ identifier = "pp310-macosx_arm64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.15-macos_arm64.tar.bz2" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[windows]
|
[windows]
|
||||||
@@ -134,6 +134,6 @@ python_configurations = [
|
|||||||
{ identifier = "cp312-win_arm64", version = "3.12.1", 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 = "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 = "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" },
|
{ identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.15-win64.zip" },
|
||||||
{ identifier = "pp310-win_amd64", version = "3.10", arch = "64", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.13-win64.zip" },
|
{ identifier = "pp310-win_amd64", version = "3.10", arch = "64", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.15-win64.zip" },
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -172,11 +172,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"pattern": "^docker; ?create_args:"
|
"pattern": "^docker; ?(create_args|disable_host_mount):"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"pattern": "^podman; ?create_args:"
|
"pattern": "^podman; ?(create_args|disable_host_mount):"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "object",
|
"type": "object",
|
||||||
@@ -196,6 +196,9 @@
|
|||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"disable-host-mount": {
|
||||||
|
"type": "boolean"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
#
|
#
|
||||||
# nox -s update_constraints-3.10
|
# nox -s update_constraints-3.10
|
||||||
#
|
#
|
||||||
delocate==0.10.6
|
delocate==0.10.7
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.7
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.13.1
|
filelock==3.13.1
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -22,7 +22,7 @@ wheel==0.42.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
pip==23.3.1
|
pip==23.3.2
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
setuptools==69.0.2
|
setuptools==69.0.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
#
|
#
|
||||||
# nox -s update_constraints-3.11
|
# nox -s update_constraints-3.11
|
||||||
#
|
#
|
||||||
delocate==0.10.6
|
delocate==0.10.7
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.7
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.13.1
|
filelock==3.13.1
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -22,7 +22,7 @@ wheel==0.42.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
pip==23.3.1
|
pip==23.3.2
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
setuptools==69.0.2
|
setuptools==69.0.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
#
|
#
|
||||||
# nox -s update_constraints-3.12
|
# nox -s update_constraints-3.12
|
||||||
#
|
#
|
||||||
delocate==0.10.6
|
delocate==0.10.7
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.7
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.13.1
|
filelock==3.13.1
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -22,7 +22,7 @@ wheel==0.42.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
pip==23.3.1
|
pip==23.3.2
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
setuptools==69.0.2
|
setuptools==69.0.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
#
|
#
|
||||||
# nox -s update_constraints-3.7
|
# nox -s update_constraints-3.7
|
||||||
#
|
#
|
||||||
delocate==0.10.6
|
delocate==0.10.7
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.7
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.12.2
|
filelock==3.12.2
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -29,7 +29,7 @@ zipp==3.15.0
|
|||||||
# via importlib-metadata
|
# via importlib-metadata
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
pip==23.3.1
|
pip==23.3.2
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
setuptools==68.0.0
|
setuptools==68.0.0
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
#
|
#
|
||||||
# nox -s update_constraints-3.8
|
# nox -s update_constraints-3.8
|
||||||
#
|
#
|
||||||
delocate==0.10.6
|
delocate==0.10.7
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.7
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.13.1
|
filelock==3.13.1
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -22,7 +22,7 @@ wheel==0.42.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
pip==23.3.1
|
pip==23.3.2
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
setuptools==69.0.2
|
setuptools==69.0.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
#
|
#
|
||||||
# nox -s update_constraints-3.9
|
# nox -s update_constraints-3.9
|
||||||
#
|
#
|
||||||
delocate==0.10.6
|
delocate==0.10.7
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.7
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.13.1
|
filelock==3.13.1
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -22,7 +22,7 @@ wheel==0.42.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
pip==23.3.1
|
pip==23.3.2
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
setuptools==69.0.2
|
setuptools==69.0.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
#
|
#
|
||||||
# nox -s update_constraints-3.12
|
# nox -s update_constraints-3.12
|
||||||
#
|
#
|
||||||
delocate==0.10.6
|
delocate==0.10.7
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.7
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.13.1
|
filelock==3.13.1
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -22,7 +22,7 @@ wheel==0.42.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
pip==23.3.1
|
pip==23.3.2
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
setuptools==69.0.2
|
setuptools==69.0.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|||||||
@@ -1,54 +1,54 @@
|
|||||||
[x86_64]
|
[x86_64]
|
||||||
manylinux1 = quay.io/pypa/manylinux1_x86_64:2023-12-10-cee9633
|
manylinux1 = quay.io/pypa/manylinux1_x86_64:2024-01-28-7b6687a
|
||||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
|
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-12-09-3915976
|
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024-01-23-12ffabc
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463
|
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-12-09-3915976
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024-01-23-12ffabc
|
||||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-12-09-3915976
|
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024-01-23-12ffabc
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2023-12-09-3915976
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2024-01-23-12ffabc
|
||||||
|
|
||||||
[i686]
|
[i686]
|
||||||
manylinux1 = quay.io/pypa/manylinux1_i686:2023-12-10-cee9633
|
manylinux1 = quay.io/pypa/manylinux1_i686:2024-01-28-7b6687a
|
||||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
|
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-12-09-3915976
|
manylinux2014 = quay.io/pypa/manylinux2014_i686:2024-01-23-12ffabc
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463
|
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-12-09-3915976
|
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2024-01-23-12ffabc
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2023-12-09-3915976
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2024-01-23-12ffabc
|
||||||
|
|
||||||
[pypy_x86_64]
|
[pypy_x86_64]
|
||||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
|
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-12-09-3915976
|
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024-01-23-12ffabc
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463
|
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-12-09-3915976
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024-01-23-12ffabc
|
||||||
|
|
||||||
[pypy_i686]
|
[pypy_i686]
|
||||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
|
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-12-09-3915976
|
manylinux2014 = quay.io/pypa/manylinux2014_i686:2024-01-23-12ffabc
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463
|
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463
|
||||||
|
|
||||||
[aarch64]
|
[aarch64]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-12-09-3915976
|
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024-01-23-12ffabc
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463
|
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-12-09-3915976
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024-01-23-12ffabc
|
||||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-12-09-3915976
|
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024-01-23-12ffabc
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2023-12-09-3915976
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2024-01-23-12ffabc
|
||||||
|
|
||||||
[ppc64le]
|
[ppc64le]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-12-09-3915976
|
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2024-01-23-12ffabc
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463
|
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-12-09-3915976
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2024-01-23-12ffabc
|
||||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-12-09-3915976
|
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024-01-23-12ffabc
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2023-12-09-3915976
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2024-01-23-12ffabc
|
||||||
|
|
||||||
[s390x]
|
[s390x]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-12-09-3915976
|
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2024-01-23-12ffabc
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463
|
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-12-09-3915976
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2024-01-23-12ffabc
|
||||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-12-09-3915976
|
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024-01-23-12ffabc
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2023-12-09-3915976
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2024-01-23-12ffabc
|
||||||
|
|
||||||
[pypy_aarch64]
|
[pypy_aarch64]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-12-09-3915976
|
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024-01-23-12ffabc
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463
|
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-12-09-3915976
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024-01-23-12ffabc
|
||||||
|
|
||||||
|
|||||||
@@ -738,7 +738,7 @@ def parse_key_value_string(
|
|||||||
# split by semicolon
|
# split by semicolon
|
||||||
fields = [list(group) for k, group in itertools.groupby(parts, lambda x: x == ";") if not k]
|
fields = [list(group) for k, group in itertools.groupby(parts, lambda x: x == ";") if not k]
|
||||||
|
|
||||||
result: dict[str, list[str]] = defaultdict(list)
|
result: defaultdict[str, list[str]] = defaultdict(list)
|
||||||
for field_i, field in enumerate(fields):
|
for field_i, field in enumerate(fields):
|
||||||
# check to see if the option name is specified
|
# check to see if the option name is specified
|
||||||
field_name, sep, first_value = field[0].partition(":")
|
field_name, sep, first_value = field[0].partition(":")
|
||||||
@@ -759,4 +759,4 @@ def parse_key_value_string(
|
|||||||
|
|
||||||
result[field_name] += values
|
result[field_name] += values
|
||||||
|
|
||||||
return result
|
return dict(result)
|
||||||
|
|||||||
@@ -4,6 +4,27 @@ title: Changelog
|
|||||||
|
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
### v2.16.5
|
||||||
|
|
||||||
|
_30 January 2024_
|
||||||
|
|
||||||
|
- 🐛 Fix an incompatibility with the GitHub Action and new GitHub Runner images for Windows that bundle Powershell 7.3+ (#1741)
|
||||||
|
- 🛠 Preliminary support for new `macos-14` arm64 runners (#1743)
|
||||||
|
|
||||||
|
### v2.16.4
|
||||||
|
|
||||||
|
_28 January 2024_
|
||||||
|
|
||||||
|
- 🛠 Update manylinux pins to upgrade from a problematic PyPy version. (#1737)
|
||||||
|
|
||||||
|
### v2.16.3
|
||||||
|
|
||||||
|
_26 January 2024_
|
||||||
|
|
||||||
|
- 🐛 Fix a bug when building from sdist, where relative paths to files in the package didn't work because the working directory was wrong (#1687)
|
||||||
|
- 🛠 Adds the ability to disable mounting the host filesystem in containers to `/host`, through the `disable_host_mount` suboption on [`CIBW_CONTAINER_ENGINE`](https://cibuildwheel.readthedocs.io/en/stable/options/#container-engine).
|
||||||
|
- 📚 A lot of docs improvements! (#1708, #1705, #1686, #1679, #1667, #1665)
|
||||||
|
|
||||||
### v2.16.2
|
### v2.16.2
|
||||||
|
|
||||||
_3 October 2023_
|
_3 October 2023_
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||||
|
"$id": "https://github.com/pypa/cibuildwheel/blob/main/cibuildwheel/docs/data/projects.schema.json",
|
||||||
|
"type": "array",
|
||||||
|
"description": "The projects file for cibuildwheel",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": false,
|
||||||
|
"properties": {
|
||||||
|
"name": { "type": "string" },
|
||||||
|
"gh": { "type": "string", "pattern": "[^/]*/[^/]*" },
|
||||||
|
"stars": { "$ref": "#/items/properties/gh" },
|
||||||
|
"pypi": { "type": "string" },
|
||||||
|
"notes": { "type": "string" },
|
||||||
|
"ci": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"enum": [
|
||||||
|
"github",
|
||||||
|
"travisci",
|
||||||
|
"appveyor",
|
||||||
|
"circleci",
|
||||||
|
"gitlab",
|
||||||
|
"cirrusci",
|
||||||
|
"azurepipelines"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ci_config": { "type": "string" },
|
||||||
|
"os": {
|
||||||
|
"type": "array",
|
||||||
|
"items": { "enum": ["windows", "apple", "linux"] }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["name", "gh", "ci", "os"]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -603,13 +603,13 @@
|
|||||||
gh: tensorchord/envd
|
gh: tensorchord/envd
|
||||||
ci: [github]
|
ci: [github]
|
||||||
os: [apple, linux, windows]
|
os: [apple, linux, windows]
|
||||||
note: A machine learning development environment build tool
|
notes: A machine learning development environment build tool
|
||||||
|
|
||||||
- name: mosec
|
- name: mosec
|
||||||
gh: mosecorg/mosec
|
gh: mosecorg/mosec
|
||||||
ci: [github]
|
ci: [github]
|
||||||
os: [linux, apple]
|
os: [linux, apple]
|
||||||
note: A machine learning model serving framework powered by Rust
|
notes: A machine learning model serving framework powered by Rust
|
||||||
|
|
||||||
- name: ril
|
- name: ril
|
||||||
gh: Cryptex-github/ril-py
|
gh: Cryptex-github/ril-py
|
||||||
@@ -638,3 +638,10 @@
|
|||||||
os: [windows, linux, apple]
|
os: [windows, linux, apple]
|
||||||
pypi: werpy
|
pypi: werpy
|
||||||
notes: An ultra-fast python package using optimized dynamic programming to compute the Word Error Rate (WER).
|
notes: An ultra-fast python package using optimized dynamic programming to compute the Word Error Rate (WER).
|
||||||
|
|
||||||
|
- name: keyvi
|
||||||
|
gh: KeyviDev/keyvi
|
||||||
|
ci: [github]
|
||||||
|
os: [linux, apple]
|
||||||
|
pypi: keyvi
|
||||||
|
notes: FST based key value index highly optimized for size and lookup performance, utilizes ccache action for improved runtime
|
||||||
|
|||||||
@@ -56,8 +56,9 @@ well as several useful actions. Alongside your existing job(s) that runs cibuild
|
|||||||
- name: Build SDist
|
- name: Build SDist
|
||||||
run: pipx run build --sdist
|
run: pipx run build --sdist
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
name: cibw-sdist
|
||||||
path: dist/*.tar.gz
|
path: dist/*.tar.gz
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -74,10 +75,11 @@ This requires setting this GitHub workflow in your project's PyPI settings (for
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: github.event_name == 'release' && github.event.action == 'published'
|
if: github.event_name == 'release' && github.event.action == 'published'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: artifact
|
pattern: cibw-*
|
||||||
path: dist
|
path: dist
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
- uses: pypa/gh-action-pypi-publish@release/v1
|
- uses: pypa/gh-action-pypi-publish@release/v1
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -315,3 +315,9 @@ h1, h2, h3, h4, h5, h6 {
|
|||||||
.wy-menu-vertical li.current a {
|
.wy-menu-vertical li.current a {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* word wrap in table cells */
|
||||||
|
.wy-table-responsive table td, .wy-table-responsive table th {
|
||||||
|
white-space: normal;
|
||||||
|
line-height: 1.4;
|
||||||
|
}
|
||||||
|
|||||||
+4
-4
@@ -14,7 +14,7 @@ Linux wheels are built in [`manylinux`/`musllinux` containers](https://github.co
|
|||||||
|
|
||||||
`cibuildwheel` supports this by providing the [`CIBW_ENVIRONMENT`](options.md#environment) and [`CIBW_BEFORE_ALL`](options.md#before-all) options to setup the build environment inside the running container.
|
`cibuildwheel` supports this by providing the [`CIBW_ENVIRONMENT`](options.md#environment) and [`CIBW_BEFORE_ALL`](options.md#before-all) options to setup the build environment inside the running container.
|
||||||
|
|
||||||
- The project directory is copied into the container as `/project`, the output directory for the wheels to be copied out is `/output`. In general, this is handled transparently by `cibuildwheel`. For a more finegrained level of control however, the root of the host file system is mounted as `/host`, allowing for example to access shared files, caches, etc. on the host file system. Note that `/host` is not available on CircleCI due to their Docker policies.
|
- The project directory is copied into the container as `/project`, the output directory for the wheels to be copied out is `/output`. In general, this is handled transparently by `cibuildwheel`. For a more finegrained level of control however, the root of the host file system is mounted as `/host`, allowing for example to access shared files, caches, etc. on the host file system. Note that `/host` is not available on CircleCI and GitLab CI due to their Docker policies.
|
||||||
|
|
||||||
- Alternative Docker images can be specified with the `CIBW_MANYLINUX_*_IMAGE`/`CIBW_MUSLLINUX_*_IMAGE` options to allow for a custom, preconfigured build environment for the Linux builds. See [options](options.md#linux-image) for more details.
|
- Alternative Docker images can be specified with the `CIBW_MANYLINUX_*_IMAGE`/`CIBW_MUSLLINUX_*_IMAGE` options to allow for a custom, preconfigured build environment for the Linux builds. See [options](options.md#linux-image) for more details.
|
||||||
|
|
||||||
@@ -142,7 +142,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:
|
If you use GitHub Actions for builds, you can use cibuildwheel as an action:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: pypa/cibuildwheel@v2.16.2
|
uses: pypa/cibuildwheel@v2.16.5
|
||||||
```
|
```
|
||||||
|
|
||||||
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.
|
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.
|
||||||
@@ -164,7 +164,7 @@ The second option, and the only one that supports other CI systems, is using a `
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# requirements-cibw.txt
|
# requirements-cibw.txt
|
||||||
cibuildwheel==2.16.2
|
cibuildwheel==2.16.5
|
||||||
```
|
```
|
||||||
|
|
||||||
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:
|
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:
|
||||||
@@ -307,7 +307,7 @@ Solutions to this vary, but the simplest is to use pipx:
|
|||||||
# most runners have pipx preinstalled, but in case you don't
|
# most runners have pipx preinstalled, but in case you don't
|
||||||
python3 -m pip install pipx
|
python3 -m pip install pipx
|
||||||
|
|
||||||
pipx run cibuildwheel==2.16.2 --output-dir wheelhouse
|
pipx run cibuildwheel==2.16.5 --output-dir wheelhouse
|
||||||
pipx run twine upload wheelhouse/*.whl
|
pipx run twine upload wheelhouse/*.whl
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ How it works
|
|||||||
This diagram summarises the steps that cibuildwheel takes on each platform to build your package's wheels.
|
This diagram summarises the steps that cibuildwheel takes on each platform to build your package's wheels.
|
||||||
|
|
||||||
{%
|
{%
|
||||||
include-markdown "diagram.md"
|
include "diagram.html"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
This isn't exhaustive, for a full list of the things cibuildwheel can do, check the [options](options.md) page.
|
This isn't exhaustive, for a full list of the things cibuildwheel can do, check the [options](options.md) page.
|
||||||
|
|||||||
+15
-7
@@ -1071,8 +1071,8 @@ Auditwheel detects the version of the manylinux / musllinux standard in the imag
|
|||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
- `docker[;create_args: ...]`
|
- `docker[;create_args: ...][;disable_host_mount: true/false]`
|
||||||
- `podman[;create_args: ...]`
|
- `podman[;create_args: ...][;disable_host_mount: true/false]`
|
||||||
|
|
||||||
Default: `docker`
|
Default: `docker`
|
||||||
|
|
||||||
@@ -1081,11 +1081,13 @@ Set the container engine to use. Docker is the default, or you can switch to
|
|||||||
running and `docker` available on PATH. To use Podman, it needs to be
|
running and `docker` available on PATH. To use Podman, it needs to be
|
||||||
installed and `podman` available on PATH.
|
installed and `podman` available on PATH.
|
||||||
|
|
||||||
Arguments can be supplied to the container engine. Currently, the only option
|
Options can be supplied after the name.
|
||||||
that's customisable is 'create_args'. Parameters to create_args are
|
|
||||||
space-separated strings, which are passed to the container engine on the
|
| Option name | Description
|
||||||
command line when it's creating the container. If you want to include spaces
|
|---|---
|
||||||
inside a parameter, use shell-style quoting.
|
| `create_args` | Space-separated strings, which are passed to the container engine on the command line when it's creating the container. If you want to include spaces inside a parameter, use shell-style quoting.
|
||||||
|
| `disable_host_mount` | By default, cibuildwheel will mount the root of the host filesystem as a volume at `/host` in the container. To disable the host mount, pass `true` to this option.
|
||||||
|
|
||||||
|
|
||||||
!!! tip
|
!!! tip
|
||||||
|
|
||||||
@@ -1106,6 +1108,9 @@ inside a parameter, use shell-style quoting.
|
|||||||
|
|
||||||
# pass command line options to 'docker create'
|
# pass command line options to 'docker create'
|
||||||
CIBW_CONTAINER_ENGINE: "docker; create_args: --gpus all"
|
CIBW_CONTAINER_ENGINE: "docker; create_args: --gpus all"
|
||||||
|
|
||||||
|
# disable the /host mount
|
||||||
|
CIBW_CONTAINER_ENGINE: "docker; disable_host_mount: true"
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! tab examples "pyproject.toml"
|
!!! tab examples "pyproject.toml"
|
||||||
@@ -1117,6 +1122,9 @@ inside a parameter, use shell-style quoting.
|
|||||||
|
|
||||||
# pass command line options to 'docker create'
|
# pass command line options to 'docker create'
|
||||||
container-engine = { name = "docker", create-args = ["--gpus", "all"]}
|
container-engine = { name = "docker", create-args = ["--gpus", "all"]}
|
||||||
|
|
||||||
|
# disable the /host mount
|
||||||
|
container-engine = { name = "docker", disable-host-mount = true }
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+9
-7
@@ -61,7 +61,7 @@ You should see the builds taking place. You can experiment with options using en
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
# run a command to set up the build system
|
# run a command to set up the build system
|
||||||
export CIBW_BEFORE_ALL='apt install libpng-dev'
|
export CIBW_BEFORE_ALL='uname -a'
|
||||||
|
|
||||||
cibuildwheel --platform linux
|
cibuildwheel --platform linux
|
||||||
```
|
```
|
||||||
@@ -69,7 +69,7 @@ You should see the builds taking place. You can experiment with options using en
|
|||||||
> CMD (Windows)
|
> CMD (Windows)
|
||||||
|
|
||||||
```bat
|
```bat
|
||||||
set CIBW_BEFORE_ALL='apt install libpng-dev'
|
set CIBW_BEFORE_ALL='uname -a'
|
||||||
|
|
||||||
cibuildwheel --platform linux
|
cibuildwheel --platform linux
|
||||||
```
|
```
|
||||||
@@ -82,7 +82,7 @@ You should see the builds taking place. You can experiment with options using en
|
|||||||
|
|
||||||
```
|
```
|
||||||
[tool.cibuildwheel]
|
[tool.cibuildwheel]
|
||||||
before-all = "apt install libpng-dev"
|
before-all = "uname -a"
|
||||||
```
|
```
|
||||||
|
|
||||||
Then invoke cibuildwheel, like:
|
Then invoke cibuildwheel, like:
|
||||||
@@ -184,10 +184,11 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
run: pipx run cibuildwheel==2.16.2
|
run: pipx run cibuildwheel==2.16.5
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
||||||
path: ./wheelhouse/*.whl
|
path: ./wheelhouse/*.whl
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -219,13 +220,14 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/
|
|||||||
- uses: actions/setup-python@v3
|
- uses: actions/setup-python@v3
|
||||||
|
|
||||||
- name: Install cibuildwheel
|
- name: Install cibuildwheel
|
||||||
run: python -m pip install cibuildwheel==2.16.2
|
run: python -m pip install cibuildwheel==2.16.5
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
run: python -m cibuildwheel --output-dir wheelhouse
|
run: python -m cibuildwheel --output-dir wheelhouse
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
||||||
path: ./wheelhouse/*.whl
|
path: ./wheelhouse/*.whl
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
+24
-24
@@ -18,12 +18,12 @@ title: Working examples
|
|||||||
| [MyPy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | The compiled version of MyPy using MyPyC. |
|
| [MyPy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | The compiled version of MyPy using MyPyC. |
|
||||||
| [Kivy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS |
|
| [Kivy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS |
|
||||||
| [duckdb][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | DuckDB is an in-process SQL OLAP Database Management System |
|
| [duckdb][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | DuckDB is an in-process SQL OLAP Database Management System |
|
||||||
| [MemRay][] | ![github icon][] | ![linux icon][] | The endgame Python memory profiler |
|
| [MemRay][] | ![github icon][] | ![linux icon][] | Memray is a memory profiler for Python |
|
||||||
| [uvloop][] | ![github icon][] | ![apple icon][] ![linux icon][] | Ultra fast asyncio event loop. |
|
| [uvloop][] | ![github icon][] | ![apple icon][] ![linux icon][] | Ultra fast asyncio event loop. |
|
||||||
| [psutil][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Cross-platform lib for process and system monitoring in Python |
|
| [psutil][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Cross-platform lib for process and system monitoring in Python |
|
||||||
| [Triton][] | ![github icon][] | ![linux icon][] | Self hosted runners |
|
| [Triton][] | ![github icon][] | ![linux icon][] | Self hosted runners |
|
||||||
| [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 |
|
| [Google Benchmark][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A microbenchmark support library |
|
||||||
|
| [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 🚀 |
|
||||||
| [Apache Beam][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Apache Beam is a unified programming model for Batch and Streaming data processing. |
|
| [Apache Beam][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Apache Beam is a unified programming model for Batch and Streaming data processing. |
|
||||||
| [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. |
|
| [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. |
|
||||||
| [asyncpg][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A fast PostgreSQL Database Client Library for Python/asyncio. |
|
| [asyncpg][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A fast PostgreSQL Database Client Library for Python/asyncio. |
|
||||||
@@ -45,11 +45,11 @@ title: Working examples
|
|||||||
| [tinyobjloader][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Tiny but powerful single file wavefront obj loader |
|
| [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 |
|
| [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 |
|
| [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 |
|
|
||||||
| [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. |
|
| [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. |
|
||||||
|
| [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 |
|
| [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. |
|
| [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 |
|
| [numexpr][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast numerical array expression evaluator for Python, NumPy, Pandas, PyTables 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. |
|
| [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 |
|
| [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. |
|
| [Wrapt][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python module for decorators, wrappers and monkey patching. |
|
||||||
@@ -58,8 +58,8 @@ title: Working examples
|
|||||||
| [SimpleJSON][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | simplejson is a simple, fast, extensible JSON encoder/decoder for Python |
|
| [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 |
|
| [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. |
|
| [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. |
|
|
||||||
| [Psycopg 3][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A modern implementation of a PostgreSQL adapter for Python |
|
| [Psycopg 3][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A modern implementation of a PostgreSQL adapter for Python |
|
||||||
|
| [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 |
|
| [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. |
|
| [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) |
|
| [DeepForest][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | An Efficient, Scalable and Optimized Python Framework for Deep Forest (2021.2.1) |
|
||||||
@@ -70,8 +70,8 @@ title: Working examples
|
|||||||
| [Picologging][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A high-performance logging library for Python. |
|
| [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 |
|
| [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. |
|
| [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. |
|
| [time-machine][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Time mocking library using only the CPython C API. |
|
||||||
|
| [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a CMake-based build system |
|
||||||
| [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python |
|
| [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python |
|
||||||
| [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] ![appveyor icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson |
|
| [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] ![appveyor icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson |
|
||||||
| [python-snappy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for the snappy google library |
|
| [python-snappy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for the snappy google library |
|
||||||
@@ -79,22 +79,22 @@ title: Working examples
|
|||||||
| [dd-trace-py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Uses custom alternate arch emulation on GitHub |
|
| [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 |
|
| [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. |
|
| [sourmash][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Quickly search, compare, and analyze genomic and metagenomic data sets. |
|
||||||
| [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. |
|
| [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. |
|
||||||
|
| [cyvcf2][] | ![github icon][] | ![apple icon][] ![linux icon][] | cython + htslib == fast VCF and BCF processing |
|
||||||
| [jq.py][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | Python bindings for jq |
|
| [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 |
|
| [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 |
|
| [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 |
|
| [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. |
|
|
||||||
| [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. |
|
| [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 |
|
| [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. |
|
| [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. |
|
| [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 |
|
| [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 |
|
| [pybase64][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast Base64 encoding/decoding in Python |
|
||||||
| [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 |
|
| [power-grid-model][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python/C++ library for distribution power system analysis |
|
||||||
|
| [fathon][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | python package for DFA (Detrended Fluctuation Analysis) and related algorithms |
|
||||||
| [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. |
|
| [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. |
|
| [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. |
|
||||||
| [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 |
|
| [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 |
|
||||||
@@ -108,11 +108,11 @@ title: Working examples
|
|||||||
| [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. |
|
| [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. |
|
||||||
| [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. |
|
| [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. |
|
| [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. |
|
|
||||||
| [xmlstarlet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python 3.6+ CFFI bindings with true MSVC build. |
|
| [xmlstarlet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python 3.6+ CFFI bindings with true MSVC build. |
|
||||||
|
| [CorrectionLib][] | ![github icon][] | ![apple icon][] ![linux icon][] | Structured JSON powered correction library for HEP, designed for the CMS experiment at CERN. |
|
||||||
|
| [aalink][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Async Python interface for Ableton Link. |
|
||||||
| [pyinstrument_cext][] | ![travisci icon][] ![appveyor icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A simple C extension, without external dependencies |
|
| [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). |
|
| [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 |
|
| [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 |
|
||||||
|
|
||||||
[scikit-learn]: https://github.com/scikit-learn/scikit-learn
|
[scikit-learn]: https://github.com/scikit-learn/scikit-learn
|
||||||
@@ -129,8 +129,8 @@ title: Working examples
|
|||||||
[uvloop]: https://github.com/MagicStack/uvloop
|
[uvloop]: https://github.com/MagicStack/uvloop
|
||||||
[psutil]: https://github.com/giampaolo/psutil
|
[psutil]: https://github.com/giampaolo/psutil
|
||||||
[Triton]: https://github.com/openai/triton
|
[Triton]: https://github.com/openai/triton
|
||||||
[vaex]: https://github.com/vaexio/vaex
|
|
||||||
[Google Benchmark]: https://github.com/google/benchmark
|
[Google Benchmark]: https://github.com/google/benchmark
|
||||||
|
[vaex]: https://github.com/vaexio/vaex
|
||||||
[Apache Beam]: https://github.com/apache/beam
|
[Apache Beam]: https://github.com/apache/beam
|
||||||
[PyGame]: https://github.com/pygame/pygame
|
[PyGame]: https://github.com/pygame/pygame
|
||||||
[asyncpg]: https://github.com/MagicStack/asyncpg
|
[asyncpg]: https://github.com/MagicStack/asyncpg
|
||||||
@@ -152,8 +152,8 @@ title: Working examples
|
|||||||
[tinyobjloader]: https://github.com/tinyobjloader/tinyobjloader
|
[tinyobjloader]: https://github.com/tinyobjloader/tinyobjloader
|
||||||
[coverage.py]: https://github.com/nedbat/coveragepy
|
[coverage.py]: https://github.com/nedbat/coveragepy
|
||||||
[PyCryptodome]: https://github.com/Legrandin/pycryptodome
|
[PyCryptodome]: https://github.com/Legrandin/pycryptodome
|
||||||
[PyYAML]: https://github.com/yaml/pyyaml
|
|
||||||
[CTranslate2]: https://github.com/OpenNMT/CTranslate2
|
[CTranslate2]: https://github.com/OpenNMT/CTranslate2
|
||||||
|
[PyYAML]: https://github.com/yaml/pyyaml
|
||||||
[Line Profiler]: https://github.com/pyutils/line_profiler
|
[Line Profiler]: https://github.com/pyutils/line_profiler
|
||||||
[PyAV]: https://github.com/PyAV-Org/PyAV
|
[PyAV]: https://github.com/PyAV-Org/PyAV
|
||||||
[numexpr]: https://github.com/pydata/numexpr
|
[numexpr]: https://github.com/pydata/numexpr
|
||||||
@@ -165,8 +165,8 @@ title: Working examples
|
|||||||
[SimpleJSON]: https://github.com/simplejson/simplejson
|
[SimpleJSON]: https://github.com/simplejson/simplejson
|
||||||
[aioquic]: https://github.com/aiortc/aioquic
|
[aioquic]: https://github.com/aiortc/aioquic
|
||||||
[ruptures]: https://github.com/deepcharles/ruptures
|
[ruptures]: https://github.com/deepcharles/ruptures
|
||||||
[OpenTimelineIO]: https://github.com/PixarAnimationStudios/OpenTimelineIO
|
|
||||||
[Psycopg 3]: https://github.com/psycopg/psycopg
|
[Psycopg 3]: https://github.com/psycopg/psycopg
|
||||||
|
[OpenTimelineIO]: https://github.com/PixarAnimationStudios/OpenTimelineIO
|
||||||
[PyTables]: https://github.com/PyTables/PyTables
|
[PyTables]: https://github.com/PyTables/PyTables
|
||||||
[Parselmouth]: https://github.com/YannickJadoul/Parselmouth
|
[Parselmouth]: https://github.com/YannickJadoul/Parselmouth
|
||||||
[DeepForest]: https://github.com/LAMDA-NJU/Deep-Forest
|
[DeepForest]: https://github.com/LAMDA-NJU/Deep-Forest
|
||||||
@@ -177,8 +177,8 @@ title: Working examples
|
|||||||
[Picologging]: https://github.com/microsoft/picologging
|
[Picologging]: https://github.com/microsoft/picologging
|
||||||
[Rtree]: https://github.com/Toblerity/rtree
|
[Rtree]: https://github.com/Toblerity/rtree
|
||||||
[markupsafe]: https://github.com/pallets/markupsafe
|
[markupsafe]: https://github.com/pallets/markupsafe
|
||||||
[pybind11 cmake_example]: https://github.com/pybind/cmake_example
|
|
||||||
[time-machine]: https://github.com/adamchainz/time-machine
|
[time-machine]: https://github.com/adamchainz/time-machine
|
||||||
|
[pybind11 cmake_example]: https://github.com/pybind/cmake_example
|
||||||
[KDEpy]: https://github.com/tommyod/KDEpy
|
[KDEpy]: https://github.com/tommyod/KDEpy
|
||||||
[python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson
|
[python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson
|
||||||
[python-snappy]: https://github.com/andrix/python-snappy
|
[python-snappy]: https://github.com/andrix/python-snappy
|
||||||
@@ -186,22 +186,22 @@ title: Working examples
|
|||||||
[dd-trace-py]: https://github.com/DataDog/dd-trace-py
|
[dd-trace-py]: https://github.com/DataDog/dd-trace-py
|
||||||
[pybind11 python_example]: https://github.com/pybind/python_example
|
[pybind11 python_example]: https://github.com/pybind/python_example
|
||||||
[sourmash]: https://github.com/dib-lab/sourmash
|
[sourmash]: https://github.com/dib-lab/sourmash
|
||||||
[cyvcf2]: https://github.com/brentp/cyvcf2
|
|
||||||
[matrixprofile]: https://github.com/matrix-profile-foundation/matrixprofile
|
|
||||||
[abess]: https://github.com/abess-team/abess
|
[abess]: https://github.com/abess-team/abess
|
||||||
|
[matrixprofile]: https://github.com/matrix-profile-foundation/matrixprofile
|
||||||
|
[cyvcf2]: https://github.com/brentp/cyvcf2
|
||||||
[jq.py]: https://github.com/mwilliamson/jq.py
|
[jq.py]: https://github.com/mwilliamson/jq.py
|
||||||
[iminuit]: https://github.com/scikit-hep/iminuit
|
[iminuit]: https://github.com/scikit-hep/iminuit
|
||||||
[Tokenizer]: https://github.com/OpenNMT/Tokenizer
|
[Tokenizer]: https://github.com/OpenNMT/Tokenizer
|
||||||
[PyGLM]: https://github.com/Zuzu-Typ/PyGLM
|
[PyGLM]: https://github.com/Zuzu-Typ/PyGLM
|
||||||
[TgCrypto]: https://github.com/pyrogram/tgcrypto
|
|
||||||
[pillow-heif]: https://github.com/bigcat88/pillow_heif
|
[pillow-heif]: https://github.com/bigcat88/pillow_heif
|
||||||
[iDynTree]: https://github.com/robotology/idyntree
|
[TgCrypto]: https://github.com/pyrogram/tgcrypto
|
||||||
[bx-python]: https://github.com/bxlab/bx-python
|
[bx-python]: https://github.com/bxlab/bx-python
|
||||||
|
[iDynTree]: https://github.com/robotology/idyntree
|
||||||
[boost-histogram]: https://github.com/scikit-hep/boost-histogram
|
[boost-histogram]: https://github.com/scikit-hep/boost-histogram
|
||||||
[Python-WebRTC]: https://github.com/MarshalX/python-webrtc
|
[Python-WebRTC]: https://github.com/MarshalX/python-webrtc
|
||||||
[pybase64]: https://github.com/mayeut/pybase64
|
[pybase64]: https://github.com/mayeut/pybase64
|
||||||
[fathon]: https://github.com/stfbnc/fathon
|
|
||||||
[power-grid-model]: https://github.com/alliander-opensource/power-grid-model
|
[power-grid-model]: https://github.com/alliander-opensource/power-grid-model
|
||||||
|
[fathon]: https://github.com/stfbnc/fathon
|
||||||
[Arbor]: https://github.com/arbor-sim/arbor
|
[Arbor]: https://github.com/arbor-sim/arbor
|
||||||
[Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build
|
[Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build
|
||||||
[pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example
|
[pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example
|
||||||
@@ -215,11 +215,11 @@ title: Working examples
|
|||||||
[ril]: https://github.com/Cryptex-github/ril-py
|
[ril]: https://github.com/Cryptex-github/ril-py
|
||||||
[GSD]: https://github.com/glotzerlab/gsd
|
[GSD]: https://github.com/glotzerlab/gsd
|
||||||
[SiPM]: https://github.com/EdoPro98/SimSiPM
|
[SiPM]: https://github.com/EdoPro98/SimSiPM
|
||||||
[CorrectionLib]: https://github.com/cms-nanoAOD/correctionlib
|
|
||||||
[xmlstarlet]: https://github.com/dimitern/xmlstarlet
|
[xmlstarlet]: https://github.com/dimitern/xmlstarlet
|
||||||
|
[CorrectionLib]: https://github.com/cms-nanoAOD/correctionlib
|
||||||
|
[aalink]: https://github.com/artfwo/aalink
|
||||||
[pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext
|
[pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext
|
||||||
[werpy]: https://github.com/analyticsinmotion/werpy
|
[werpy]: https://github.com/analyticsinmotion/werpy
|
||||||
[aalink]: https://github.com/artfwo/aalink
|
|
||||||
[pybind11 cross build example]: https://github.com/wbarnha/pybind_cmake_example_crossbuild
|
[pybind11 cross build example]: https://github.com/wbarnha/pybind_cmake_example_crossbuild
|
||||||
|
|
||||||
[appveyor icon]: data/readme_icons/appveyor.svg
|
[appveyor icon]: data/readme_icons/appveyor.svg
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ stack: python 3.7
|
|||||||
init:
|
init:
|
||||||
- cmd: set PATH=C:\Python37;C:\Python37\Scripts;%PATH%
|
- cmd: set PATH=C:\Python37;C:\Python37\Scripts;%PATH%
|
||||||
|
|
||||||
install: python -m pip install cibuildwheel==2.16.2
|
install: python -m pip install cibuildwheel==2.16.5
|
||||||
|
|
||||||
build_script: python -m cibuildwheel --output-dir wheelhouse
|
build_script: python -m cibuildwheel --output-dir wheelhouse
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ jobs:
|
|||||||
- bash: |
|
- bash: |
|
||||||
set -o errexit
|
set -o errexit
|
||||||
python3 -m pip install --upgrade pip
|
python3 -m pip install --upgrade pip
|
||||||
pip3 install cibuildwheel==2.16.2
|
pip3 install cibuildwheel==2.16.5
|
||||||
displayName: Install dependencies
|
displayName: Install dependencies
|
||||||
- bash: cibuildwheel --output-dir wheelhouse .
|
- bash: cibuildwheel --output-dir wheelhouse .
|
||||||
displayName: Build wheels
|
displayName: Build wheels
|
||||||
@@ -20,7 +20,7 @@ jobs:
|
|||||||
- bash: |
|
- bash: |
|
||||||
set -o errexit
|
set -o errexit
|
||||||
python3 -m pip install --upgrade pip
|
python3 -m pip install --upgrade pip
|
||||||
python3 -m pip install cibuildwheel==2.16.2
|
python3 -m pip install cibuildwheel==2.16.5
|
||||||
displayName: Install dependencies
|
displayName: Install dependencies
|
||||||
- bash: cibuildwheel --output-dir wheelhouse .
|
- bash: cibuildwheel --output-dir wheelhouse .
|
||||||
displayName: Build wheels
|
displayName: Build wheels
|
||||||
@@ -34,7 +34,7 @@ jobs:
|
|||||||
- bash: |
|
- bash: |
|
||||||
set -o errexit
|
set -o errexit
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
pip install cibuildwheel==2.16.2
|
pip install cibuildwheel==2.16.5
|
||||||
displayName: Install dependencies
|
displayName: Install dependencies
|
||||||
- bash: cibuildwheel --output-dir wheelhouse .
|
- bash: cibuildwheel --output-dir wheelhouse .
|
||||||
displayName: Build wheels
|
displayName: Build wheels
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ jobs:
|
|||||||
- run:
|
- run:
|
||||||
name: Build the Linux wheels.
|
name: Build the Linux wheels.
|
||||||
command: |
|
command: |
|
||||||
pip3 install --user cibuildwheel==2.16.2
|
pip3 install --user cibuildwheel==2.16.5
|
||||||
cibuildwheel --output-dir wheelhouse
|
cibuildwheel --output-dir wheelhouse
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: wheelhouse/
|
path: wheelhouse/
|
||||||
@@ -28,7 +28,7 @@ jobs:
|
|||||||
- run:
|
- run:
|
||||||
name: Build the Linux aarch64 wheels.
|
name: Build the Linux aarch64 wheels.
|
||||||
command: |
|
command: |
|
||||||
python3 -m pip install --user cibuildwheel==2.16.2
|
python3 -m pip install --user cibuildwheel==2.16.5
|
||||||
python3 -m cibuildwheel --output-dir wheelhouse
|
python3 -m cibuildwheel --output-dir wheelhouse
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: wheelhouse/
|
path: wheelhouse/
|
||||||
@@ -42,7 +42,7 @@ jobs:
|
|||||||
- run:
|
- run:
|
||||||
name: Build the OS X wheels.
|
name: Build the OS X wheels.
|
||||||
command: |
|
command: |
|
||||||
pip3 install cibuildwheel==2.16.2
|
pip3 install cibuildwheel==2.16.5
|
||||||
cibuildwheel --output-dir wheelhouse
|
cibuildwheel --output-dir wheelhouse
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: wheelhouse/
|
path: wheelhouse/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
build_and_store_wheels: &BUILD_AND_STORE_WHEELS
|
build_and_store_wheels: &BUILD_AND_STORE_WHEELS
|
||||||
install_cibuildwheel_script:
|
install_cibuildwheel_script:
|
||||||
- python -m pip install cibuildwheel==2.16.2
|
- python -m pip install cibuildwheel==2.16.5
|
||||||
run_cibuildwheel_script:
|
run_cibuildwheel_script:
|
||||||
- cibuildwheel
|
- cibuildwheel
|
||||||
wheels_artifacts:
|
wheels_artifacts:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
build_and_store_wheels: &BUILD_AND_STORE_WHEELS
|
build_and_store_wheels: &BUILD_AND_STORE_WHEELS
|
||||||
install_cibuildwheel_script:
|
install_cibuildwheel_script:
|
||||||
- python -m pip install cibuildwheel==2.16.2
|
- python -m pip install cibuildwheel==2.16.5
|
||||||
run_cibuildwheel_script:
|
run_cibuildwheel_script:
|
||||||
- cibuildwheel
|
- cibuildwheel
|
||||||
wheels_artifacts:
|
wheels_artifacts:
|
||||||
|
|||||||
@@ -22,10 +22,11 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
uses: pypa/cibuildwheel@v2.16.2
|
uses: pypa/cibuildwheel@v2.16.5
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
||||||
path: ./wheelhouse/*.whl
|
path: ./wheelhouse/*.whl
|
||||||
|
|
||||||
build_sdist:
|
build_sdist:
|
||||||
@@ -37,8 +38,9 @@ jobs:
|
|||||||
- name: Build sdist
|
- name: Build sdist
|
||||||
run: pipx run build --sdist
|
run: pipx run build --sdist
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
name: cibw-sdist
|
||||||
path: dist/*.tar.gz
|
path: dist/*.tar.gz
|
||||||
|
|
||||||
upload_pypi:
|
upload_pypi:
|
||||||
@@ -51,12 +53,12 @@ jobs:
|
|||||||
# or, alternatively, upload to PyPI on every tag starting with 'v' (remove on: release above to use this)
|
# or, alternatively, upload to PyPI on every tag starting with 'v' (remove on: release above to use this)
|
||||||
# if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
# if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
# unpacks default artifact into dist/
|
# unpacks all CIBW artifacts into dist/
|
||||||
# if `name: artifact` is omitted, the action will create extra parent dir
|
pattern: cibw-*
|
||||||
name: artifact
|
|
||||||
path: dist
|
path: dist
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
- uses: pypa/gh-action-pypi-publish@release/v1
|
- uses: pypa/gh-action-pypi-publish@release/v1
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
uses: pypa/cibuildwheel@v2.16.2
|
uses: pypa/cibuildwheel@v2.16.5
|
||||||
# env:
|
# env:
|
||||||
# CIBW_SOME_OPTION: value
|
# CIBW_SOME_OPTION: value
|
||||||
# ...
|
# ...
|
||||||
@@ -23,6 +23,7 @@ jobs:
|
|||||||
# output-dir: wheelhouse
|
# output-dir: wheelhouse
|
||||||
# config-file: "{package}/pyproject.toml"
|
# config-file: "{package}/pyproject.toml"
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
||||||
path: ./wheelhouse/*.whl
|
path: ./wheelhouse/*.whl
|
||||||
|
|||||||
@@ -20,12 +20,13 @@ jobs:
|
|||||||
platforms: all
|
platforms: all
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
uses: pypa/cibuildwheel@v2.16.2
|
uses: pypa/cibuildwheel@v2.16.5
|
||||||
env:
|
env:
|
||||||
# configure cibuildwheel to build native archs ('auto'), and some
|
# configure cibuildwheel to build native archs ('auto'), and some
|
||||||
# emulated ones
|
# emulated ones
|
||||||
CIBW_ARCHS_LINUX: auto aarch64 ppc64le s390x
|
CIBW_ARCHS_LINUX: auto aarch64 ppc64le s390x
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
||||||
path: ./wheelhouse/*.whl
|
path: ./wheelhouse/*.whl
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ linux:
|
|||||||
DOCKER_TLS_CERTDIR: ""
|
DOCKER_TLS_CERTDIR: ""
|
||||||
script:
|
script:
|
||||||
- curl -sSL https://get.docker.com/ | sh
|
- curl -sSL https://get.docker.com/ | sh
|
||||||
- python -m pip install cibuildwheel==2.16.2
|
- python -m pip install cibuildwheel==2.16.5
|
||||||
- cibuildwheel --output-dir wheelhouse
|
- cibuildwheel --output-dir wheelhouse
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
@@ -23,7 +23,7 @@ windows:
|
|||||||
before_script:
|
before_script:
|
||||||
- choco install python -y --version 3.8.6
|
- choco install python -y --version 3.8.6
|
||||||
- choco install git.install -y
|
- choco install git.install -y
|
||||||
- py -m pip install cibuildwheel==2.16.2
|
- py -m pip install cibuildwheel==2.16.5
|
||||||
script:
|
script:
|
||||||
- py -m cibuildwheel --output-dir wheelhouse --platform windows
|
- py -m cibuildwheel --output-dir wheelhouse --platform windows
|
||||||
artifacts:
|
artifacts:
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ linux:
|
|||||||
- curl -sSL https://get.docker.com/ | sh
|
- curl -sSL https://get.docker.com/ | sh
|
||||||
# Warning: This is extremely slow, be careful with how many wheels you build
|
# Warning: This is extremely slow, be careful with how many wheels you build
|
||||||
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||||
- python -m pip install cibuildwheel==2.16.2
|
- python -m pip install cibuildwheel==2.16.5
|
||||||
# Assuming your CI runner's default architecture is x86_64...
|
# Assuming your CI runner's default architecture is x86_64...
|
||||||
- cibuildwheel --output-dir wheelhouse --platform linux --archs aarch64
|
- cibuildwheel --output-dir wheelhouse --platform linux --archs aarch64
|
||||||
artifacts:
|
artifacts:
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ jobs:
|
|||||||
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- python3 -m pip install cibuildwheel==2.16.2
|
- python3 -m pip install cibuildwheel==2.16.5
|
||||||
|
|
||||||
script:
|
script:
|
||||||
# build the wheels, put them into './dist'
|
# build the wheels, put them into './dist'
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ jobs:
|
|||||||
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- python3 -m pip install cibuildwheel==2.16.2
|
- python3 -m pip install cibuildwheel==2.16.5
|
||||||
|
|
||||||
script:
|
script:
|
||||||
# build the wheels, put them into './wheelhouse'
|
# build the wheels, put them into './wheelhouse'
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ jobs:
|
|||||||
- stage: deploy
|
- stage: deploy
|
||||||
name: Build and deploy Linux wheels
|
name: Build and deploy Linux wheels
|
||||||
services: docker
|
services: docker
|
||||||
install: python3 -m pip install cibuildwheel==2.16.2 twine
|
install: python3 -m pip install cibuildwheel==2.16.5 twine
|
||||||
script: python3 -m cibuildwheel --output-dir wheelhouse
|
script: python3 -m cibuildwheel --output-dir wheelhouse
|
||||||
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||||
# Deploy on windows
|
# Deploy on windows
|
||||||
@@ -62,7 +62,7 @@ jobs:
|
|||||||
name: Build and deploy Windows wheels
|
name: Build and deploy Windows wheels
|
||||||
os: windows
|
os: windows
|
||||||
language: shell
|
language: shell
|
||||||
install: python3 -m pip install cibuildwheel==2.16.2 twine
|
install: python3 -m pip install cibuildwheel==2.16.5 twine
|
||||||
script: python3 -m cibuildwheel --output-dir wheelhouse
|
script: python3 -m cibuildwheel --output-dir wheelhouse
|
||||||
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[metadata]
|
[metadata]
|
||||||
name = cibuildwheel
|
name = cibuildwheel
|
||||||
version = 2.16.2
|
version = 2.16.5
|
||||||
description = Build Python wheels on CI with minimal configuration.
|
description = Build Python wheels on CI with minimal configuration.
|
||||||
long_description = file: README.md
|
long_description = file: README.md
|
||||||
long_description_content_type = text/markdown
|
long_description_content_type = text/markdown
|
||||||
|
|||||||
+14
-1
@@ -61,10 +61,23 @@ def test_simple(tmp_path):
|
|||||||
sdist_dir.mkdir()
|
sdist_dir.mkdir()
|
||||||
sdist_path = make_sdist(basic_project, sdist_dir)
|
sdist_path = make_sdist(basic_project, sdist_dir)
|
||||||
|
|
||||||
|
setup_py_assertion_snippet = textwrap.dedent(
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
|
||||||
|
assert os.path.exists('setup.py')
|
||||||
|
assert os.path.exists('{package}/setup.py')
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
setup_py_assertion_cmd = f'python3 -c "{setup_py_assertion_snippet !s}"'
|
||||||
|
|
||||||
# build the wheels from sdist
|
# build the wheels from sdist
|
||||||
actual_wheels = cibuildwheel_from_sdist_run(
|
actual_wheels = cibuildwheel_from_sdist_run(
|
||||||
sdist_path,
|
sdist_path,
|
||||||
add_env={"CIBW_BUILD": "cp39-*"},
|
add_env={
|
||||||
|
"CIBW_BEFORE_BUILD": setup_py_assertion_cmd,
|
||||||
|
"CIBW_BUILD": "cp39-*",
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
# check that the expected wheels are produced
|
# check that the expected wheels are produced
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import tomli_w
|
|||||||
|
|
||||||
from cibuildwheel.environment import EnvironmentAssignmentBash
|
from cibuildwheel.environment import EnvironmentAssignmentBash
|
||||||
from cibuildwheel.oci_container import OCIContainer, OCIContainerEngineConfig
|
from cibuildwheel.oci_container import OCIContainer, OCIContainerEngineConfig
|
||||||
from cibuildwheel.util import detect_ci_provider
|
from cibuildwheel.util import CIProvider, detect_ci_provider
|
||||||
|
|
||||||
# Test utilities
|
# Test utilities
|
||||||
|
|
||||||
@@ -415,3 +415,29 @@ def test_enforce_32_bit(container_engine, image, shell_args):
|
|||||||
text=True,
|
text=True,
|
||||||
).stdout
|
).stdout
|
||||||
assert json.loads(container_args) == shell_args
|
assert json.loads(container_args) == shell_args
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
("config", "should_have_host_mount"),
|
||||||
|
[
|
||||||
|
("{name}", True),
|
||||||
|
("{name}; disable_host_mount: false", True),
|
||||||
|
("{name}; disable_host_mount: true", False),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
def test_disable_host_mount(tmp_path: Path, container_engine, config, should_have_host_mount):
|
||||||
|
if detect_ci_provider() in {CIProvider.circle_ci, CIProvider.gitlab}:
|
||||||
|
pytest.skip("Skipping test because docker on this platform does not support host mounts")
|
||||||
|
|
||||||
|
engine = OCIContainerEngineConfig.from_config_string(config.format(name=container_engine.name))
|
||||||
|
|
||||||
|
sentinel_file = tmp_path / "sentinel"
|
||||||
|
sentinel_file.write_text("12345")
|
||||||
|
|
||||||
|
with OCIContainer(engine=engine, image=DEFAULT_IMAGE) as container:
|
||||||
|
host_mount_path = "/host" + str(sentinel_file)
|
||||||
|
if should_have_host_mount:
|
||||||
|
assert container.call(["cat", host_mount_path], capture_output=True) == "12345"
|
||||||
|
else:
|
||||||
|
with pytest.raises(subprocess.CalledProcessError):
|
||||||
|
container.call(["cat", host_mount_path], capture_output=True)
|
||||||
|
|||||||
@@ -201,41 +201,61 @@ def test_toml_environment_quoting(tmp_path: Path, toml_assignment, result_value)
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
("toml_assignment", "result_name", "result_create_args"),
|
("toml_assignment", "result_name", "result_create_args", "result_disable_host_mount"),
|
||||||
[
|
[
|
||||||
(
|
(
|
||||||
'container-engine = "podman"',
|
'container-engine = "podman"',
|
||||||
"podman",
|
"podman",
|
||||||
[],
|
[],
|
||||||
|
False,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
'container-engine = {name = "podman"}',
|
'container-engine = {name = "podman"}',
|
||||||
"podman",
|
"podman",
|
||||||
[],
|
[],
|
||||||
|
False,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
'container-engine = "docker; create_args: --some-option"',
|
'container-engine = "docker; create_args: --some-option"',
|
||||||
"docker",
|
"docker",
|
||||||
["--some-option"],
|
["--some-option"],
|
||||||
|
False,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
'container-engine = {name = "docker", create-args = ["--some-option"]}',
|
'container-engine = {name = "docker", create-args = ["--some-option"]}',
|
||||||
"docker",
|
"docker",
|
||||||
["--some-option"],
|
["--some-option"],
|
||||||
|
False,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
'container-engine = {name = "docker", create-args = ["--some-option", "value that contains spaces"]}',
|
'container-engine = {name = "docker", create-args = ["--some-option", "value that contains spaces"]}',
|
||||||
"docker",
|
"docker",
|
||||||
["--some-option", "value that contains spaces"],
|
["--some-option", "value that contains spaces"],
|
||||||
|
False,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
'container-engine = {name = "docker", create-args = ["--some-option", "value;that;contains;semicolons"]}',
|
'container-engine = {name = "docker", create-args = ["--some-option", "value;that;contains;semicolons"]}',
|
||||||
"docker",
|
"docker",
|
||||||
["--some-option", "value;that;contains;semicolons"],
|
["--some-option", "value;that;contains;semicolons"],
|
||||||
|
False,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'container-engine = {name = "docker", disable-host-mount = true}',
|
||||||
|
"docker",
|
||||||
|
[],
|
||||||
|
True,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'container-engine = {name = "docker", disable_host_mount = true}',
|
||||||
|
"docker",
|
||||||
|
[],
|
||||||
|
True,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_container_engine_option(tmp_path: Path, toml_assignment, result_name, result_create_args):
|
def test_container_engine_option(
|
||||||
|
tmp_path: Path, toml_assignment, result_name, result_create_args, result_disable_host_mount
|
||||||
|
):
|
||||||
args = CommandLineArguments.defaults()
|
args = CommandLineArguments.defaults()
|
||||||
args.package_dir = tmp_path
|
args.package_dir = tmp_path
|
||||||
|
|
||||||
@@ -253,6 +273,7 @@ def test_container_engine_option(tmp_path: Path, toml_assignment, result_name, r
|
|||||||
|
|
||||||
assert parsed_container_engine.name == result_name
|
assert parsed_container_engine.name == result_name
|
||||||
assert parsed_container_engine.create_args == result_create_args
|
assert parsed_container_engine.create_args == result_create_args
|
||||||
|
assert parsed_container_engine.disable_host_mount == result_disable_host_mount
|
||||||
|
|
||||||
|
|
||||||
def test_environment_pass_references():
|
def test_environment_pass_references():
|
||||||
|
|||||||
Reference in New Issue
Block a user