Skip to content

fix: add deepcopy method for mypyc support, don't copy weakly connected slots #352

fix: add deepcopy method for mypyc support, don't copy weakly connected slots

fix: add deepcopy method for mypyc support, don't copy weakly connected slots #352

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request: {}
workflow_dispatch:
jobs:
check-manifest:
name: Check Manifest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- run: pip install check-manifest && check-manifest
test-linux:
name: py${{ matrix.python-version }} on ${{ matrix.platform }} ${{ matrix.backend }} ${{ matrix.pydantic }}
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
platform: [ubuntu-latest, macos-latest, windows-latest]
backend: [""]
include:
- platform: ubuntu-latest
python-version: "3.10"
backend: "PyQt5"
- platform: macos-latest
python-version: "3.10"
backend: "PyQt6"
- platform: ubuntu-latest
python-version: "3.10"
backend: "PySide2"
- platform: macos-latest
python-version: "3.10"
backend: "PySide6"
- platform: ubuntu-latest
python-version: "3.11"
pydantic: "pydantic<2"
- platform: windows-latest
python-version: "3.11"
pydantic: "pydantic<2"
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- uses: tlambert03/[email protected]
if: matrix.backend != ''
- name: Install ${{ matrix.backend }}
run: |
python -m pip install -e .[testqt]
python -m pip install ${{ matrix.backend }}
if: matrix.backend != ''
- name: install
run: |
python -m pip install -U pip
python -m pip install -e .[test]
python -c "import sys, psygnal; sys.exit(1 if psygnal._compiled else 0)"
- name: downgrade pydantic
if: matrix.pydantic != ''
run: python -m pip install "${{ matrix.pydantic }}"
- name: test uncompiled
uses: aganders3/headless-gui@v1
with:
run: pytest --color=yes --cov=psygnal --cov-report=xml
- name: compile and retest
run: |
python -m pip install -e .
python -c "import sys, psygnal; sys.exit(0 if psygnal._compiled else 1)"
env:
HATCH_BUILD_HOOKS_ENABLE: "1"
- name: test compiled
uses: aganders3/headless-gui@v1
with:
run: pytest --color=yes --cov=psygnal --cov-report=xml --cov-append
- uses: codecov/codecov-action@v3
with:
fail_ci_if_error: true
verbose: true
test-magicgui:
name: test magicgui
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
path: psygnal
- uses: actions/checkout@v3
with:
repository: pyapp-kit/magicgui
path: magicgui
- uses: actions/setup-python@v4
with:
python-version: "3.10"
- uses: tlambert03/setup-qt-libs@v1
- name: install
run: |
python -m pip install -U pip
pip install -e magicgui[testing,pyside2]
pip install -e psygnal
- name: test magicgui
uses: aganders3/headless-gui@v1
with:
run: python -m pytest magicgui/tests -v --color=yes
typing:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: install
run: |
python -m pip install -U pip
python -m pip install -e .
python -m pip install pytest pytest-mypy-plugins
- name: test
run: pytest typesafety --mypy-only-local-stub --color=yes
benchmarks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: install
run: |
python -m pip install -e .[test]
python -c "import sys, psygnal; sys.exit(0 if psygnal._compiled else 1)"
env:
HATCH_BUILD_HOOKS_ENABLE: "1"
- name: Run benchmarks
uses: CodSpeedHQ/action@v1
with:
run: pytest --codspeed -v --color=yes