Skip to content

Commit

Permalink
Build mypyc wheels for CPython 3.11 (#3276)
Browse files Browse the repository at this point in the history
Bumps cibuildwheel from 2.8.1 to 2.10.0 which has 3.11 building enabled
by default. Unfortunately mypyc errors out on 3.11:

src/black/files.py:29:9: error: Name "tomllib" already defined (by an import)  [no-redef]

... so we have to also hide the fallback import of tomli on older 3.11
alphas from mypy[c].
  • Loading branch information
ichard26 committed Sep 23, 2022
1 parent 6ae8457 commit 75d5c0e
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/pypi_upload.yml
Expand Up @@ -58,7 +58,7 @@ jobs:
- uses: actions/checkout@v3

- name: Build wheels via cibuildwheel
uses: pypa/cibuildwheel@v2.8.1
uses: pypa/cibuildwheel@v2.10.0
env:
CIBW_ARCHS_MACOS: "${{ matrix.macos_arch }}"
# This isn't supported in pyproject.toml which makes sense (but is annoying).
Expand Down
2 changes: 2 additions & 0 deletions CHANGES.md
Expand Up @@ -25,6 +25,8 @@

<!-- Changes to how Black is packaged, such as dependency requirements -->

- Faster compiled wheels are now available for CPython 3.11 (#3276)

### Parser

<!-- Changes to the parser or to version autodetection -->
Expand Down
4 changes: 4 additions & 0 deletions pyproject.toml
Expand Up @@ -55,6 +55,9 @@ MYPYC_DEBUG_LEVEL = "0"
# The dependencies required to build wheels with mypyc aren't specified in
# [build-system].requires so we'll have to manage the build environment ourselves.
PIP_NO_BUILD_ISOLATION = "no"
# CPython 3.11 wheels aren't available for aiohttp and building a Cython extension
# from source also doesn't work.
AIOHTTP_NO_EXTENSIONS = "1"

[tool.cibuildwheel.linux]
before-build = [
Expand All @@ -69,6 +72,7 @@ MYPYC_DEBUG_LEVEL = "0"
PIP_NO_BUILD_ISOLATION = "no"
# Black needs Clang to compile successfully on Linux.
CC = "clang"
AIOHTTP_NO_EXTENSIONS = "1"

[tool.cibuildwheel.windows]
# For some reason, (compiled) mypyc is failing to start up with "ImportError: DLL load
Expand Down
3 changes: 2 additions & 1 deletion src/black/files.py
Expand Up @@ -26,7 +26,8 @@
import tomllib
except ImportError:
# Help users on older alphas
import tomli as tomllib
if not TYPE_CHECKING:
import tomli as tomllib
else:
import tomli as tomllib

Expand Down

0 comments on commit 75d5c0e

Please sign in to comment.