11import functools
2+ import dataclasses
3+ from typing import Any
24
35from pytestqt .exceptions import TimeoutError
46from pytestqt .qt_compat import qt_api
@@ -257,12 +259,12 @@ def _get_timeout_error_message(self):
257259 )
258260
259261
262+ @dataclasses .dataclass
260263class SignalAndArgs :
261- def __init__ (self , signal_name , args ):
262- self .signal_name = signal_name
263- self .args = args
264+ signal_name : str
265+ args : list [Any ]
264266
265- def _get_readable_signal_with_optional_args (self ):
267+ def __str__ (self ) -> str :
266268 args = repr (self .args ) if self .args else ""
267269
268270 # remove signal parameter signature, e.g. turn "some_signal(str,int)" to "some_signal", because we're adding
@@ -272,18 +274,9 @@ def _get_readable_signal_with_optional_args(self):
272274
273275 return signal_name + args
274276
275- def __str__ (self ):
276- return self ._get_readable_signal_with_optional_args ()
277-
278- def __eq__ (self , other ):
279- if isinstance (other , self .__class__ ):
280- return self .__dict__ == other .__dict__
281- else :
282- return False
283-
284277
285- # Returns e.g. "3rd" for 3, or "21st" for 21
286- def get_ordinal_str ( n ):
278+ def get_ordinal_str ( n : int ) -> str :
279+ """Return e.g. "3rd" for 3, or "21st" for 21."""
287280 return "%d%s" % (n , {1 : "st" , 2 : "nd" , 3 : "rd" }.get (n if n < 20 else n % 10 , "th" ))
288281
289282
0 commit comments