Skip to content

Commit ec29c5e

Browse files
committed
separated config initialization into methods
1 parent 3f258bb commit ec29c5e

File tree

2 files changed

+21
-23
lines changed

2 files changed

+21
-23
lines changed

opentrons/config/smoothie/smoothie-defaults.ini

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
[DEFAULT]
1+
[serial]
22
baudrate = 115200
33
timeout = 0.1
4+
5+
[state]
46
head_speed = 3000
57

68
[config]

opentrons/drivers/motor.py

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -104,39 +104,35 @@ def __init__(self):
104104

105105
self.defaults = configparser.ConfigParser()
106106
self.defaults.read(DEFAULTS_FILE_PATH)
107-
self.saved_settings = self.get_persistent_config()
107+
self._create_saved_settings_file()
108+
self.saved_settings = configparser.ConfigParser()
109+
self.saved_settings.read(CONFIG_FILE_PATH)
110+
self._copy_defaults_to_settings()
108111
self._apply_settings()
109112

110-
def get_persistent_config(self):
111-
112-
persistent_config = configparser.ConfigParser()
113+
def _create_saved_settings_file(self):
113114
if not os.path.isdir(CONFIG_DIR_PATH):
114115
os.mkdir(CONFIG_DIR_PATH)
115116
if not os.path.isfile(CONFIG_FILE_PATH):
116-
for section in self.defaults.sections():
117-
persistent_config[section] = self.defaults[section]
118117
with open(CONFIG_FILE_PATH, 'w') as configfile:
119-
persistent_config.write(configfile)
120-
else:
121-
persistent_config.read(CONFIG_FILE_PATH)
118+
configfile.write('')
122119

123-
for section_name in self.defaults.sections():
124-
section = self.defaults[section_name]
125-
if section_name not in persistent_config:
126-
persistent_config[section_name] = section
127-
for key, val in section.items():
128-
if key not in persistent_config[section_name]:
129-
persistent_config[section][key] = val
130-
131-
return persistent_config
120+
def _copy_defaults_to_settings(self):
121+
for n in self.defaults.sections():
122+
if n not in self.saved_settings:
123+
self.saved_settings[n] = self.defaults[n]
124+
for key, val in self.defaults[n].items():
125+
if key not in self.saved_settings[n]:
126+
self.saved_settings[n][key] = val
132127

133128
def _apply_settings(self):
134129
self.serial_timeout = float(
135-
self.saved_settings['DEFAULT'].get('timeout', 0.1))
130+
self.saved_settings['serial'].get('timeout', 0.1))
136131
self.serial_baudrate = int(
137-
self.saved_settings['DEFAULT'].get('baudrate', 115200))
132+
self.saved_settings['serial'].get('baudrate', 115200))
133+
138134
self.head_speed = int(
139-
self.saved_settings['DEFAULT'].get('head_speed', 3000))
135+
self.saved_settings['state'].get('head_speed', 3000))
140136

141137
self.COMPATIBLE_FIRMARE = json.loads(
142138
self.saved_settings['versions'].get('firmware', '[]'))
@@ -527,7 +523,7 @@ def calibrate_steps_per_mm(self, axis, expected_travel, actual_travel):
527523
def set_head_speed(self, rate=None):
528524
if rate:
529525
self.head_speed = rate
530-
self.saved_settings['DEFAULT']['head_speed'] = str(self.head_speed)
526+
self.saved_settings['state']['head_speed'] = str(self.head_speed)
531527
with open(CONFIG_FILE_PATH, 'w') as configfile:
532528
self.saved_settings.write(configfile)
533529
kwargs = {"F": self.head_speed}

0 commit comments

Comments
 (0)