Skip to content

Avoid checking types of Callable when both type objects are pointing to the same reference. This is a small check which would speed up cases drastically such as recursive generics with unions, since the type is equal but Pytype holds the expanded union type and attempts to go in deep to figure out each individual type matches. #2775

Avoid checking types of Callable when both type objects are pointing to the same reference. This is a small check which would speed up cases drastically such as recursive generics with unions, since the type is equal but Pytype holds the expanded union type and attempts to go in deep to figure out each individual type matches.

Avoid checking types of Callable when both type objects are pointing to the same reference. This is a small check which would speed up cases drastically such as recursive generics with unions, since the type is equal but Pytype holds the expanded union type and attempts to go in deep to figure out each individual type matches. #2775

Workflow file for this run

---
# Outstanding TODOs:
# - Auto PyPI upload?
# - Build sdist here too while we're at it?
# - Don't run this on every push ('on' param)
name: Build wheels
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
manylinux_wheels:
name: Python ${{ matrix.platform }} wheels(${{ matrix.pyver }})
runs-on: ubuntu-latest
strategy:
matrix:
platform:
- manylinux_2_28_x86_64
- manylinux_2_28_aarch64
pyver: ['cp310-cp310', 'cp311-cp311', 'cp312-cp312']
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up QEMU
if: matrix.platform == 'manylinux_2_28_aarch64'
id: qemu
uses: docker/setup-qemu-action@v3
- name: Pull Docker image
run: |
DOCKER_IMAGE="quay.io/pypa/${{ matrix.platform }}"
echo "DOCKER_IMAGE=$DOCKER_IMAGE" >> $GITHUB_ENV
docker image pull "$DOCKER_IMAGE"
- name: Build manylinux wheels
run: |
docker container run \
--rm \
-e PLAT=${{ matrix.platform }} \
-e PYTHON_TAGS=${{ matrix.pyver }} \
-v "$(pwd):/io" \
"$DOCKER_IMAGE" \
/io/build_scripts/wheels/manylinux.sh
- uses: actions/upload-artifact@v4
with:
name: dist-${{ matrix.platform }}-${{ matrix.pyver }}
path: dist/*.whl
macosx_wheels:
name: Python ${{ matrix.python_version }} MacOS wheels
# Note: the container MacOS version may differ from the SDK
# used to build Python there. It is the latter that determines
# the wheel's platform tag.
# https://github.com/actions/virtual-environments/issues/696
runs-on: macos-13
strategy:
matrix:
python_version: ['3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: Build MacOS wheels
run: './build_scripts/wheels/macos.sh'
- uses: actions/upload-artifact@v4
with:
name: dist-macos-py${{ matrix.python_version }}
path: dist/*.whl
merge:
name: Merge artifacts
runs-on: ubuntu-latest
needs:
- manylinux_wheels
- macosx_wheels
steps:
- name: Merge artifacts
uses: actions/upload-artifact/merge@v4
with:
name: dist