1
1
import functools
2
+ import dataclasses
3
+ from typing import Any
2
4
3
5
from pytestqt .exceptions import TimeoutError
4
6
from pytestqt .qt_compat import qt_api
@@ -257,12 +259,12 @@ def _get_timeout_error_message(self):
257
259
)
258
260
259
261
262
+ @dataclasses .dataclass
260
263
class 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 ]
264
266
265
- def _get_readable_signal_with_optional_args (self ):
267
+ def __str__ (self ) -> str :
266
268
args = repr (self .args ) if self .args else ""
267
269
268
270
# 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):
272
274
273
275
return signal_name + args
274
276
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
-
284
277
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."""
287
280
return "%d%s" % (n , {1 : "st" , 2 : "nd" , 3 : "rd" }.get (n if n < 20 else n % 10 , "th" ))
288
281
289
282
0 commit comments