Skip to content

improve typehinting belonging to function _wait_one #650

improve typehinting belonging to function _wait_one

improve typehinting belonging to function _wait_one #650

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: 3.x
- uses: pre-commit/action@v3.0.1
# Make sure the PR title follows the conventional commits convention:
# https://www.conventionalcommits.org
# PRs are squash-merged, so the PR title becomes the commit on main and
# drives python-semantic-release's version bump.
pr-title:
name: Lint PR Title
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
permissions:
pull-requests: read
steps:
- uses: amannn/action-semantic-pull-request@v6.1.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
subjectPattern: ^(?![A-Z]).+$
subjectPatternError: |
The subject "{subject}" found in the pull request title "{title}"
didn't match the configured pattern. Please ensure that the subject
starts with a lowercase character.
test:
strategy:
fail-fast: false
matrix:
python-version:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
os:
- ubuntu-latest
- windows-latest
- macOS-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
- name: Set up uv
uses: astral-sh/setup-uv@v8.2.0
with:
enable-cache: true
- name: Install Poetry
run: uv tool install poetry
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: "poetry"
allow-prereleases: true
- name: Install Dependencies
run: poetry install
shell: bash
- name: Test with Pytest
run: poetry run pytest --cov-report=xml
shell: bash
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
# Runs on the main push (records the baseline) and every PR (compares against
# it). Uses CodSpeed's tokenless OAuth (no token input), which also lets fork
# PRs report. Pinned to a single stock CPython so the callgrind baseline is
# stable.
benchmarks:
name: Benchmarks (CodSpeed)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Set up uv
uses: astral-sh/setup-uv@v8.2.0
with:
enable-cache: true
- name: Install Poetry
run: uv tool install poetry
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: "poetry"
- name: Install Dependencies
run: poetry install --with benchmarks
shell: bash
- name: Run benchmarks
uses: CodSpeedHQ/action@v4
with:
mode: simulation
run: poetry run pytest tests/benchmarks --codspeed --no-cov
test_release:
needs:
- test
- lint
runs-on: ubuntu-latest
environment: test_release
concurrency:
group: release-${{ github.head_ref || github.ref }}
cancel-in-progress: false
if: github.ref_name != 'main'
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
ref: ${{ github.head_ref || github.ref_name }}
# Dry run of PSR to build the distribution
- name: Test release
uses: python-semantic-release/python-semantic-release@v10.5.3
with:
no_operation_mode: true
- name: Set up uv
uses: astral-sh/setup-uv@v8.2.0
with:
enable-cache: true
- name: Install Poetry
run: uv tool install poetry
- name: Install Dependencies
run: poetry install --only main,test_build
shell: bash
- name: Test build of distribution packages
shell: bash
run: |
poetry build
poetry run python -Im twine check --strict dist/*
build_release:
needs:
- test
- lint
if: github.ref_name == 'main' && !startsWith(github.event.pull_request.title,'chore') && !startsWith(github.event.head_commit.message,'chore')
runs-on: ubuntu-latest
outputs:
released: ${{ steps.release.outputs.released }}
concurrency:
group: release-${{ github.head_ref || github.ref }}
cancel-in-progress: false
permissions:
id-token: write
contents: write
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
ref: ${{ github.head_ref || github.ref_name }}
# On main branch: Call PSR to build the distribution
- name: Release
uses: python-semantic-release/python-semantic-release@v10.5.3
id: release
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Store the distribution packages
uses: actions/upload-artifact@v7
with:
name: python-package-distributions
path: dist/
release:
needs:
- build_release
if: needs.build_release.outputs.released == 'true'
runs-on: ubuntu-latest
environment: pypi
concurrency:
group: release-${{ github.head_ref || github.ref }}
cancel-in-progress: false
permissions:
id-token: write
contents: write
steps:
- name: Download all the dists
uses: actions/download-artifact@v8
with:
name: python-package-distributions
path: dist/
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
- uses: actions/checkout@v7
with:
fetch-depth: 0
ref: ${{ github.head_ref || github.ref_name }}
- name: Publish package distributions to GitHub Releases
uses: python-semantic-release/upload-to-gh-release@v9.8.9
with:
github_token: ${{ secrets.GITHUB_TOKEN }}