@@ -17,15 +17,18 @@ def __init__(
1717 bus : int | None ,
1818 client : int | None ,
1919 device : int | None = None ,
20- mode : int | None = None ,
2120 path : StrPath | None = None ,
21+ mode : int | None = None ,
22+ bits_per_word : int | None = None ,
2223 ):
2324 super ().__init__ (bus , client )
2425 self .bus = bus
2526 self .client = client
2627 self .device = device
2728 if mode is not None :
2829 self .mode = mode
30+ if bits_per_word is not None :
31+ self .bits_per_word = bits_per_word
2932
3033 if path and (bus or device ):
3134 raise ValueError (
@@ -43,17 +46,34 @@ def mode(self) -> int:
4346 return super ().mode
4447
4548 @mode .setter
46- def mode (self , value : int ) -> None :
49+ def mode (self , value : int , / ) -> None :
4750 try :
4851 v = int (value )
4952 except (TypeError , ValueError ):
50- raise TypeError (f"mode must be an integer, but is { value } " )
53+ raise TypeError (f"mode must be an integer, but is { type ( value ) } " )
5154
5255 if not 0 <= v <= 3 :
5356 raise ValueError (f"mode must be between 0 and 3, but is { v } " )
5457
5558 super ().__setattr__ ("mode" , v )
5659
60+ @property
61+ def bits_per_word (self ) -> int :
62+ """Bits per word used in the xfer methods."""
63+ return super ().bits_per_word
64+
65+ @bits_per_word .setter
66+ def bits_per_word (self , value : int , / ) -> None :
67+ try :
68+ v = int (value )
69+ except (TypeError , ValueError ):
70+ raise TypeError (f"bits_per_word must be an integer, but is { type (value )} " )
71+
72+ if not (8 <= value <= 32 ):
73+ raise ValueError (f"bits_per_word must be between 8 and 32, but is { v } " )
74+
75+ super ().__setattr__ ("bits_per_word" , v )
76+
5777 def closed (self ) -> bool :
5878 """True if the connection is closed."""
5979 try :
0 commit comments