Skip to content

Commit 09b1efc

Browse files
authored
fix: fix blocker (#302)
* fix: fix blocker * fix test
1 parent 5b76828 commit 09b1efc

2 files changed

Lines changed: 10 additions & 8 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ classifiers = [
4848
dynamic = ["version"]
4949
dependencies = [
5050
'fonticon-materialdesignicons6',
51-
'pymmcore-plus[cli] >=0.9.0',
51+
'pymmcore-plus[cli] >=0.10.2',
5252
'qtpy >=2.0',
5353
'superqt[quantity] >=0.5.3',
5454
'useq-schema >=0.4.7',

src/pymmcore_widgets/_util.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
import re
44
from pathlib import Path
5-
from typing import ContextManager, Sequence
5+
from typing import Any, ContextManager, Sequence
66

77
import useq
8+
from psygnal import SignalInstance
89
from pymmcore_plus import CMMCorePlus
9-
from pymmcore_plus.core.events import CMMCoreSignaler, PCoreSignaler
10+
from qtpy.QtCore import QObject
1011
from qtpy.QtWidgets import (
1112
QComboBox,
1213
QDialog,
@@ -87,12 +88,13 @@ def guess_objective_or_prompt(
8788
return None
8889

8990

90-
def block_core(mmcore_events: CMMCoreSignaler | PCoreSignaler) -> ContextManager:
91+
def block_core(obj: Any) -> ContextManager:
9192
"""Block core signals."""
92-
if isinstance(mmcore_events, CMMCoreSignaler):
93-
return mmcore_events.blocked() # type: ignore
94-
elif isinstance(mmcore_events, PCoreSignaler):
95-
return signals_blocked(mmcore_events) # type: ignore
93+
if isinstance(obj, QObject):
94+
return signals_blocked(obj) # type: ignore [no-any-return]
95+
if isinstance(obj, SignalInstance):
96+
return obj.blocked()
97+
raise TypeError(f"Cannot block signals for {obj}")
9698

9799

98100
def cast_grid_plan(

0 commit comments

Comments
 (0)