From 75d5c0e3fbf5de67b995c80e12229b7525ff6bb9 Mon Sep 17 00:00:00 2001 From: Richard Si <63936253+ichard26@users.noreply.github.com> Date: Thu, 22 Sep 2022 23:11:56 -0400 Subject: [PATCH] Build mypyc wheels for CPython 3.11 (#3276) 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]. --- .github/workflows/pypi_upload.yml | 2 +- CHANGES.md | 2 ++ pyproject.toml | 4 ++++ src/black/files.py | 3 ++- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pypi_upload.yml b/.github/workflows/pypi_upload.yml index d52f41a..ae26a81 100644 --- a/.github/workflows/pypi_upload.yml +++ b/.github/workflows/pypi_upload.yml @@ -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). diff --git a/CHANGES.md b/CHANGES.md index 147100c..0fa80ad 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -25,6 +25,8 @@ +- Faster compiled wheels are now available for CPython 3.11 (#3276) + ### Parser diff --git a/pyproject.toml b/pyproject.toml index a4c9c69..122a49e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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 = [ @@ -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 diff --git a/src/black/files.py b/src/black/files.py index d51c1bc..ed503f5 100644 --- a/src/black/files.py +++ b/src/black/files.py @@ -26,7 +26,8 @@ if sys.version_info >= (3, 11): 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 -- 2.39.5