Skip to content

Commit 6c98a52

Browse files
committed
td.py: + TDBlock._class_specific_params(); release.py: bump version to 0.3.4
1 parent a011bae commit 6c98a52

2 files changed

Lines changed: 19 additions & 5 deletions

File tree

src/pyblocksim/release.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.3.3"
1+
__version__ = "0.3.4"

src/pyblocksim/td.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,17 @@ def __init__(self, name: str = None, input1=None, params=None, **kwargs):
133133
for i, var in enumerate(self.input_vars, start=1):
134134
setattr(self, f"u{i}", var)
135135

136-
if params is None:
137-
params = {}
138-
self.params = params
139-
self.__dict__.update(params)
136+
# params provided (hardcoded) by the class
137+
138+
self.params = self._class_specific_params()
139+
140+
# params provided by the constructor (can overwrite class parameters)
141+
if params is not None:
142+
assert isinstance(params, dict)
143+
self.params.update(params)
144+
145+
# save them as attributes
146+
self.__dict__.update(self.params)
140147

141148
# make each state variable available as `self.x1`, `self.x2`, ...
142149
for i, x_i in enumerate(self.state_vars, start=1):
@@ -151,6 +158,13 @@ def __init__(self, name: str = None, input1=None, params=None, **kwargs):
151158

152159
ds.register_block(self)
153160

161+
def _class_specific_params(self):
162+
"""
163+
enables to specify parameters in subclasses
164+
"""
165+
return {}
166+
167+
154168
def set_inputs(self, input1, **kwargs):
155169

156170
if input1 is None:

0 commit comments

Comments
 (0)