8000 quick and dirty parser for version number in legacy-defaults (#435) · python-control/python-control@7a62428 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7a62428

Browse files
quick and dirty parser for version number in legacy-defaults (#435)
* quick and dirty parser for version number in legacy-defaults * refinement to accomodate multi-digit version numbers
1 parent 98ec00f commit 7a62428

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

control/config.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,17 @@ def use_legacy_defaults(version):
166166
Parameters
167167
----------
168168
version : string
169-
version number of the defaults desired. Currently only supports `0.8.3`.
169+
version number of the defaults desired. ranges from '0.1' to '0.8.4'.
170170
"""
171-
if version == '0.8.3':
171+
numbers_list = version.split(".")
172+
first_digit = int(numbers_list[0])
173+
second_digit = int(numbers_list[1].strip('abcdef')) # remove trailing letters
174+
if second_digit < 8:
175+
# TODO: anything for 0.7 and below if needed
176+
pass
177+
elif second_digit == 8:
178+
if len(version) > 4:
179+
third_digit = int(version[4])
172180
use_numpy_matrix(True) # alternatively: set_defaults('statesp', use_numpy_matrix=True)
173181
else:
174-
raise ValueError('''version number not recognized. Possible values are: ['0.8.3']''')
182+
raise ValueError('''version number not recognized. Possible values range from '0.1' to '0.8.4'.''')

control/tests/config_test.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,12 @@ def test_legacy_defaults(self):
216216
assert(isinstance(ct.ss(0,0,0,1).D, np.matrix))
217217
ct.reset_defaults()
218218
assert(isinstance(ct.ss(0,0,0,1).D, np.ndarray))
219+
# test that old versions don't raise a problem
220+
ct.use_legacy_defaults('0.6c')
221+
ct.use_legacy_defaults('0.8.2')
222+
ct.use_legacy_defaults('0.1')
223+
ct.config.reset_defaults()
224+
219225

220226
def test_change_default_dt(self):
221227
ct.set_defaults('statesp', default_dt=0)

0 commit comments

Comments
 (0)
0