Skip to content

Commit 52dc16b

Browse files
authored
remove kwargs II. (#2237)
1 parent 0e2c7e9 commit 52dc16b

19 files changed

+128
-123
lines changed

API_changes.rst

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ API changes 3.7.0
1313
- Framer.<type> renamed to FramerType.<type>
1414
- PDU classes moved to pymodbus/pdu
1515
- Simulator config custom actions kwargs -> parameters
16+
- Non defined parameters (kwargs) no longer valid
1617

1718

1819
API changes 3.6.0

examples/client_custom_msg.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ class CustomModbusResponse(ModbusResponse):
3636
function_code = 55
3737
_rtu_byte_count_pos = 2
3838

39-
def __init__(self, values=None, **kwargs):
39+
def __init__(self, values=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
4040
"""Initialize."""
41-
ModbusResponse.__init__(self, **kwargs)
41+
ModbusResponse.__init__(self, slave, transaction, protocol, skip_encode)
4242
self.values = values or []
4343

4444
def encode(self):
@@ -68,9 +68,9 @@ class CustomModbusRequest(ModbusRequest):
6868
function_code = 55
6969
_rtu_frame_size = 8
7070

71-
def __init__(self, address=None, **kwargs):
71+
def __init__(self, address=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
7272
"""Initialize."""
73-
ModbusRequest.__init__(self, **kwargs)
73+
ModbusRequest.__init__(self, slave, transaction, protocol, skip_encode)
7474
self.address = address
7575
self.count = 16
7676

pymodbus/client/base.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,11 @@ def __init__(
303303
framer, cast(type[ModbusFramer], framer)
304304
)(ClientDecoder(), self)
305305
self.transaction = SyncModbusTransactionManager(
306-
self, retries=retries, retry_on_empty=retry_on_empty, **kwargs
306+
self,
307+
kwargs.get("backoff", 0.3),
308+
retry_on_empty,
309+
kwargs.get("retry_on_invalid", False),
310+
retries,
307311
)
308312
self.reconnect_delay_current = self.params.reconnect_delay or 0
309313
self.use_udp = False

pymodbus/factory.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def _helper(self, data: str):
120120
function_code = int(data[0])
121121
if not (request := self.lookup.get(function_code, lambda: None)()):
122122
Log.debug("Factory Request[{}]", function_code)
123-
request = pdu.IllegalFunctionRequest(function_code)
123+
request = pdu.IllegalFunctionRequest(function_code, 0, 0, 0, False)
124124
else:
125125
fc_string = "{}: {}".format( # pylint: disable=consider-using-f-string
126126
str(self.lookup[function_code]) # pylint: disable=use-maxsplit-arg

pymodbus/pdu/bit_read_message.py

+12-12
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ class ReadBitsRequestBase(ModbusRequest):
2121

2222
_rtu_frame_size = 8
2323

24-
def __init__(self, address, count, slave=0, **kwargs):
24+
def __init__(self, address, count, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
2525
"""Initialize the read request data.
2626
2727
:param address: The start address to read from
2828
:param count: The number of bits after "address" to read
2929
:param slave: Modbus slave slave ID
3030
"""
31-
ModbusRequest.__init__(self, slave, **kwargs)
31+
ModbusRequest.__init__(self, slave, transaction, protocol, skip_encode)
3232
self.address = address
3333
self.count = count
3434

@@ -75,13 +75,13 @@ class ReadBitsResponseBase(ModbusResponse):
7575

7676
_rtu_byte_count_pos = 2
7777

78-
def __init__(self, values, slave=0, **kwargs):
78+
def __init__(self, values, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
7979
"""Initialize a new instance.
8080
8181
:param values: The requested values to be returned
8282
:param slave: Modbus slave slave ID
8383
"""
84-
ModbusResponse.__init__(self, slave, **kwargs)
84+
ModbusResponse.__init__(self, slave, transaction, protocol, skip_encode)
8585

8686
#: A list of booleans representing bit values
8787
self.bits = values or []
@@ -146,14 +146,14 @@ class ReadCoilsRequest(ReadBitsRequestBase):
146146
function_code = 1
147147
function_code_name = "read_coils"
148148

149-
def __init__(self, address=None, count=None, slave=0, **kwargs):
149+
def __init__(self, address=None, count=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
150150
"""Initialize a new instance.
151151
152152
:param address: The address to start reading from
153153
:param count: The number of bits to read
154154
:param slave: Modbus slave slave ID
155155
"""
156-
ReadBitsRequestBase.__init__(self, address, count, slave, **kwargs)
156+
ReadBitsRequestBase.__init__(self, address, count, slave, transaction, protocol, skip_encode)
157157

158158
async def execute(self, context):
159159
"""Run a read coils request against a datastore.
@@ -193,13 +193,13 @@ class ReadCoilsResponse(ReadBitsResponseBase):
193193

194194
function_code = 1
195195

196-
def __init__(self, values=None, slave=0, **kwargs):
196+
def __init__(self, values=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
197197
"""Initialize a new instance.
198198
199199
:param values: The request values to respond with
200200
:param slave: Modbus slave slave ID
201201
"""
202-
ReadBitsResponseBase.__init__(self, values, slave, **kwargs)
202+
ReadBitsResponseBase.__init__(self, values, slave, transaction, protocol, skip_encode)
203203

204204

205205
class ReadDiscreteInputsRequest(ReadBitsRequestBase):
@@ -214,14 +214,14 @@ class ReadDiscreteInputsRequest(ReadBitsRequestBase):
214214
function_code = 2
215215
function_code_name = "read_discrete_input"
216216

217-
def __init__(self, address=None, count=None, slave=0, **kwargs):
217+
def __init__(self, address=None, count=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
218218
"""Initialize a new instance.
219219
220220
:param address: The address to start reading from
221221
:param count: The number of bits to read
222222
:param slave: Modbus slave slave ID
223223
"""
224-
ReadBitsRequestBase.__init__(self, address, count, slave, **kwargs)
224+
ReadBitsRequestBase.__init__(self, address, count, slave, transaction, protocol, skip_encode)
225225

226226
async def execute(self, context):
227227
"""Run a read discrete input request against a datastore.
@@ -261,10 +261,10 @@ class ReadDiscreteInputsResponse(ReadBitsResponseBase):
261261

262262
function_code = 2
263263

264-
def __init__(self, values=None, slave=0, **kwargs):
264+
def __init__(self, values=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
265265
"""Initialize a new instance.
266266
267267
:param values: The request values to respond with
268268
:param slave: Modbus slave slave ID
269269
"""
270-
ReadBitsResponseBase.__init__(self, values, slave, **kwargs)
270+
ReadBitsResponseBase.__init__(self, values, slave, transaction, protocol, skip_encode)

pymodbus/pdu/bit_write_message.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ class WriteSingleCoilRequest(ModbusRequest):
4949

5050
_rtu_frame_size = 8
5151

52-
def __init__(self, address=None, value=None, slave=None, **kwargs):
52+
def __init__(self, address=None, value=None, slave=None, transaction=0, protocol=0, skip_encode=0, **_kwargs):
5353
"""Initialize a new instance.
5454
5555
:param address: The variable address to write
5656
:param value: The value to write at address
5757
"""
58-
ModbusRequest.__init__(self, slave=slave, **kwargs)
58+
ModbusRequest.__init__(self, slave, transaction, protocol, skip_encode)
5959
self.address = address
6060
self.value = bool(value)
6161

@@ -119,13 +119,13 @@ class WriteSingleCoilResponse(ModbusResponse):
119119
function_code = 5
120120
_rtu_frame_size = 8
121121

122-
def __init__(self, address=None, value=None, **kwargs):
122+
def __init__(self, address=None, value=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
123123
"""Initialize a new instance.
124124
125125
:param address: The variable address written to
126126
:param value: The value written at address
127127
"""
128-
ModbusResponse.__init__(self, **kwargs)
128+
ModbusResponse.__init__(self, slave, transaction, protocol, skip_encode)
129129
self.address = address
130130
self.value = value
131131

@@ -173,13 +173,13 @@ class WriteMultipleCoilsRequest(ModbusRequest):
173173
function_code_name = "write_coils"
174174
_rtu_byte_count_pos = 6
175175

176-
def __init__(self, address=None, values=None, slave=None, **kwargs):
176+
def __init__(self, address=None, values=None, slave=None, transaction=0, protocol=0, skip_encode=0, **_kwargs):
177177
"""Initialize a new instance.
178178
179179
:param address: The starting request address
180180
:param values: The values to write
181181
"""
182-
ModbusRequest.__init__(self, slave=slave, **kwargs)
182+
ModbusRequest.__init__(self, slave, transaction, protocol, skip_encode)
183183
self.address = address
184184
if values is None:
185185
values = []
@@ -256,13 +256,13 @@ class WriteMultipleCoilsResponse(ModbusResponse):
256256
function_code = 15
257257
_rtu_frame_size = 8
258258

259-
def __init__(self, address=None, count=None, **kwargs):
259+
def __init__(self, address=None, count=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
260260
"""Initialize a new instance.
261261
262262
:param address: The starting variable address written to
263263
:param count: The number of values written
264264
"""
265-
ModbusResponse.__init__(self, **kwargs)
265+
ModbusResponse.__init__(self, slave, transaction, protocol, skip_encode)
266266
self.address = address
267267
self.count = count
268268

pymodbus/pdu/diag_message.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,9 @@ class DiagnosticStatusRequest(ModbusRequest):
6969
function_code_name = "diagnostic_status"
7070
_rtu_frame_size = 8
7171

72-
def __init__(self, **kwargs):
72+
def __init__(self, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
7373
"""Initialize a diagnostic request."""
74-
ModbusRequest.__init__(self, **kwargs)
74+
ModbusRequest.__init__(self, slave, transaction, protocol, skip_encode)
7575
self.message = None
7676

7777
def encode(self):
@@ -131,9 +131,9 @@ class DiagnosticStatusResponse(ModbusResponse):
131131
function_code = 0x08
132132
_rtu_frame_size = 8
133133

134-
def __init__(self, **kwargs):
134+
def __init__(self, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
135135
"""Initialize a diagnostic response."""
136-
ModbusResponse.__init__(self, **kwargs)
136+
ModbusResponse.__init__(self, slave, transaction, protocol, skip_encode)
137137
self.message = None
138138

139139
def encode(self):

pymodbus/pdu/file_message.py

+12-12
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,12 @@ class ReadFileRecordRequest(ModbusRequest):
100100
function_code_name = "read_file_record"
101101
_rtu_byte_count_pos = 2
102102

103-
def __init__(self, records=None, **kwargs):
103+
def __init__(self, records=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
104104
"""Initialize a new instance.
105105
106106
:param records: The file record requests to be read
107107
"""
108-
ModbusRequest.__init__(self, **kwargs)
108+
ModbusRequest.__init__(self, slave, transaction, protocol, skip_encode)
109109
self.records = records or []
110110

111111
def encode(self):
@@ -165,12 +165,12 @@ class ReadFileRecordResponse(ModbusResponse):
165165
function_code = 0x14
166166
_rtu_byte_count_pos = 2
167167

168-
def __init__(self, records=None, **kwargs):
168+
def __init__(self, records=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
169169
"""Initialize a new instance.
170170
171171
:param records: The requested file records
172172
"""
173-
ModbusResponse.__init__(self, **kwargs)
173+
ModbusResponse.__init__(self, slave, transaction, protocol, skip_encode)
174174
self.records = records or []
175175

176176
def encode(self):
@@ -218,12 +218,12 @@ class WriteFileRecordRequest(ModbusRequest):
218218
function_code_name = "write_file_record"
219219
_rtu_byte_count_pos = 2
220220

221-
def __init__(self, records=None, **kwargs):
221+
def __init__(self, records=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
222222
"""Initialize a new instance.
223223
224224
:param records: The file record requests to be read
225225
"""
226-
ModbusRequest.__init__(self, **kwargs)
226+
ModbusRequest.__init__(self, slave, transaction, protocol, skip_encode)
227227
self.records = records or []
228228

229229
def encode(self):
@@ -282,12 +282,12 @@ class WriteFileRecordResponse(ModbusResponse):
282282
function_code = 0x15
283283
_rtu_byte_count_pos = 2
284284

285-
def __init__(self, records=None, **kwargs):
285+
def __init__(self, records=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
286286
"""Initialize a new instance.
287287
288288
:param records: The file record requests to be read
289289
"""
290-
ModbusResponse.__init__(self, **kwargs)
290+
ModbusResponse.__init__(self, slave, transaction, protocol, skip_encode)
291291
self.records = records or []
292292

293293
def encode(self):
@@ -347,12 +347,12 @@ class ReadFifoQueueRequest(ModbusRequest):
347347
function_code_name = "read_fifo_queue"
348348
_rtu_frame_size = 6
349349

350-
def __init__(self, address=0x0000, **kwargs):
350+
def __init__(self, address=0x0000, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
351351
"""Initialize a new instance.
352352
353353
:param address: The fifo pointer address (0x0000 to 0xffff)
354354
"""
355-
ModbusRequest.__init__(self, **kwargs)
355+
ModbusRequest.__init__(self, slave, transaction, protocol, skip_encode)
356356
self.address = address
357357
self.values = [] # this should be added to the context
358358

@@ -408,12 +408,12 @@ def calculateRtuFrameSize(cls, buffer):
408408
lo_byte = int(buffer[3])
409409
return (hi_byte << 16) + lo_byte + 6
410410

411-
def __init__(self, values=None, **kwargs):
411+
def __init__(self, values=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
412412
"""Initialize a new instance.
413413
414414
:param values: The list of values of the fifo to return
415415
"""
416-
ModbusResponse.__init__(self, **kwargs)
416+
ModbusResponse.__init__(self, slave, transaction, protocol, skip_encode)
417417
self.values = values or []
418418

419419
def encode(self):

pymodbus/pdu/mei_message.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,13 @@ class ReadDeviceInformationRequest(ModbusRequest):
5656
function_code_name = "read_device_information"
5757
_rtu_frame_size = 7
5858

59-
def __init__(self, read_code=None, object_id=0x00, **kwargs):
59+
def __init__(self, read_code=None, object_id=0x00, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
6060
"""Initialize a new instance.
6161
6262
:param read_code: The device information read code
6363
:param object_id: The object to read from
6464
"""
65-
ModbusRequest.__init__(self, **kwargs)
65+
ModbusRequest.__init__(self, slave, transaction, protocol, skip_encode)
6666
self.read_code = read_code or DeviceInformation.BASIC
6767
self.object_id = object_id
6868

@@ -134,13 +134,13 @@ def calculateRtuFrameSize(cls, buffer):
134134
except struct.error as exc:
135135
raise IndexError from exc
136136

137-
def __init__(self, read_code=None, information=None, **kwargs):
137+
def __init__(self, read_code=None, information=None, slave=0, transaction=0, protocol=0, skip_encode=False, **_kwargs):
138138
"""Initialize a new instance.
139139
140140
:param read_code: The device information read code
141141
:param information: The requested information request
142142
"""
143-
ModbusResponse.__init__(self, **kwargs)
143+
ModbusResponse.__init__(self, slave, transaction, protocol, skip_encode)
144144
self.read_code = read_code or DeviceInformation.BASIC
145145
self.information = information or {}
146146
self.number_of_objects = 0

0 commit comments

Comments
 (0)