Skip to content

Commit 282a917

Browse files
committed
default() and reset() belong in Sequential not Base
1 parent c3e3678 commit 282a917

File tree

1 file changed

+22
-19
lines changed

1 file changed

+22
-19
lines changed

pymodbus/datastore/store.py

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,10 @@
4545
based on their preference.
4646
"""
4747
# pylint: disable=missing-type-doc
48+
from __future__ import annotations
49+
4850
from abc import ABC, abstractmethod
49-
from typing import Iterable
51+
from typing import Any, Iterable
5052

5153
from pymodbus.exceptions import ParameterException
5254

@@ -66,25 +68,12 @@ class BaseModbusDataBlock(ABC):
6668
validate(self, address, count=1)
6769
getValues(self, address, count=1)
6870
setValues(self, address, values)
71+
reset(self)
6972
"""
7073

71-
def default(self, count, value=False):
72-
"""Use to initialize a store to one value.
73-
74-
:param count: The number of fields to set
75-
:param value: The default value to set to the fields
76-
"""
77-
self.default_value = value # pylint: disable=attribute-defined-outside-init
78-
self.values = [ # pylint: disable=attribute-defined-outside-init
79-
self.default_value
80-
] * count
81-
self.address = 0x00 # pylint: disable=attribute-defined-outside-init
82-
83-
def reset(self):
84-
"""Reset the datastore to the initialized default value."""
85-
self.values = [ # pylint: disable=attribute-defined-outside-init
86-
self.default_value
87-
] * len(self.values)
74+
values: dict | list
75+
address: int
76+
default_value: Any
8877

8978
@abstractmethod
9079
def validate(self, address:int, count=1) -> bool:
@@ -156,6 +145,20 @@ def create(cls):
156145
"""
157146
return cls(0x00, [0x00] * 65536)
158147

148+
def default(self, count, value=False):
149+
"""Use to initialize a store to one value.
150+
151+
:param count: The number of fields to set
152+
:param value: The default value to set to the fields
153+
"""
154+
self.default_value = value
155+
self.values = [self.default_value] * count
156+
self.address = 0x00
157+
158+
def reset(self):
159+
"""Reset the datastore to the initialized default value."""
160+
self.values = [self.default_value] * len(self.values)
161+
159162
def validate(self, address, count=1):
160163
"""Check to see if the request is in range.
161164
@@ -224,7 +227,7 @@ def __init__(self, values=None, mutable=True):
224227
If values is a integer, then the value is set for the corresponding offset.
225228
226229
"""
227-
self.values = {}
230+
self.values: dict[int, Any] = {}
228231
self._process_values(values)
229232
self.mutable = mutable
230233
self.default_value = self.values.copy()

0 commit comments

Comments
 (0)