You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a problem with typing_extensions that doesn't happen with typing. Running the program with python3.11 works, but with python3.10 with typing_extensions throws:
Traceback (most recent call last):
File ".../main.py", line 48, in <module>
main()
File ".../main.py", line 40, in main
signal: Signal[()] = Signal[()]()
File "/usr/lib/python3.10/typing.py", line 312, in inner
return func(*args, **kwds)
File "/usr/lib/python3.10/typing.py", line 1328, in __class_getitem__
raise TypeError(
TypeError: Parameter list to Signal[...] cannot be empty
from __future__ importannotationsfromtyping_extensionsimportCallable, TypeVarTuple, Generic, Unpack, List, TypeVarVarArgs=TypeVarTuple('VarArgs')
classSignal(Generic[Unpack[VarArgs]]):
def__init__(self):
self.functions: List[Callable[..., None]] = []
""" Simple mechanism that allows abstracted invocation of callbacks. Multiple callbacks can be attached to a signal so that they are all called when the signal is emitted. """defconnect(self, function: Callable[..., None]):
""" Add a callback to this Signal :param function: callback to call when emited """self.functions.append(function)
defemit(self, *args: Unpack[VarArgs]):
""" Call all callbacks with the arguments passed :param args: arguments for the signal, must be the same type as type parameter """forfunctioninself.functions:
ifargs:
function(*args)
else:
function()
defmain():
defsignalEmptyCall():
print("Hello!")
signal: Signal[()] =Signal[()]()
signal.connect(signalEmptyCall)
signal.emit()
if__name__=='__main__':
main()
The text was updated successfully, but these errors were encountered:
There is a problem with typing_extensions that doesn't happen with typing. Running the program with python3.11 works, but with python3.10 with typing_extensions throws:
The text was updated successfully, but these errors were encountered: