aboutsummaryrefslogtreecommitdiffstats
path: root/klippy
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-02-03 12:17:42 -0500
committerKevin O'Connor <kevin@koconnor.net>2018-02-03 12:17:42 -0500
commit7e3adde542b178bb709d4de0a3dcb73e5c2afd43 (patch)
tree6fe0af04cd3b8fad6a77cc0af04d7d8e5cdac3b3 /klippy
parent33bdc2fc3235b52596bc097a3a4f021f9e72cc22 (diff)
downloadkutter-7e3adde542b178bb709d4de0a3dcb73e5c2afd43.tar.gz
kutter-7e3adde542b178bb709d4de0a3dcb73e5c2afd43.tar.xz
kutter-7e3adde542b178bb709d4de0a3dcb73e5c2afd43.zip
klippy: No need to store fileconfig in main printer object
Just pass the fileconfig reference to the ConfigWrapper instances. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy')
-rw-r--r--klippy/klippy.py46
1 files changed, 22 insertions, 24 deletions
diff --git a/klippy/klippy.py b/klippy/klippy.py
index 0c28ba2d..12f82ebe 100644
--- a/klippy/klippy.py
+++ b/klippy/klippy.py
@@ -50,8 +50,9 @@ class ConfigWrapper:
error = ConfigParser.Error
class sentinel:
pass
- def __init__(self, printer, section):
+ def __init__(self, printer, fileconfig, section):
self.printer = printer
+ self.fileconfig = fileconfig
self.section = section
def get_printer(self):
return self.printer
@@ -60,7 +61,7 @@ class ConfigWrapper:
def _get_wrapper(self, parser, option, default,
minval=None, maxval=None, above=None, below=None):
if (default is not self.sentinel
- and not self.printer.fileconfig.has_option(self.section, option)):
+ and not self.fileconfig.has_option(self.section, option)):
return default
self.printer.all_config_options[
(self.section.lower(), option.lower())] = 1
@@ -89,18 +90,16 @@ class ConfigWrapper:
option, self.section, below))
return v
def get(self, option, default=sentinel):
- return self._get_wrapper(self.printer.fileconfig.get, option, default)
+ return self._get_wrapper(self.fileconfig.get, option, default)
def getint(self, option, default=sentinel, minval=None, maxval=None):
return self._get_wrapper(
- self.printer.fileconfig.getint, option, default, minval, maxval)
- def getfloat(self, option, default=sentinel
- , minval=None, maxval=None, above=None, below=None):
- return self._get_wrapper(
- self.printer.fileconfig.getfloat, option, default
- , minval, maxval, above, below)
+ self.fileconfig.getint, option, default, minval, maxval)
+ def getfloat(self, option, default=sentinel,
+ minval=None, maxval=None, above=None, below=None):
+ return self._get_wrapper(self.fileconfig.getfloat, option, default,
+ minval, maxval, above, below)
def getboolean(self, option, default=sentinel):
- return self._get_wrapper(
- self.printer.fileconfig.getboolean, option, default)
+ return self._get_wrapper(self.fileconfig.getboolean, option, default)
def getchoice(self, option, choices, default=sentinel):
c = self.get(option, default)
if c not in choices:
@@ -109,11 +108,11 @@ class ConfigWrapper:
option, self.section))
return choices[c]
def getsection(self, section):
- return ConfigWrapper(self.printer, section)
+ return ConfigWrapper(self.printer, self.fileconfig, section)
def has_section(self, section):
- return self.printer.fileconfig.has_section(section)
+ return self.fileconfig.has_section(section)
def get_prefix_sections(self, prefix):
- return [self.getsection(s) for s in self.printer.fileconfig.sections()
+ return [self.getsection(s) for s in self.fileconfig.sections()
if s.startswith(prefix)]
class ConfigLogger():
@@ -145,7 +144,6 @@ class Printer:
self.is_shutdown = False
self.async_shutdown_msg = ""
self.run_result = None
- self.fileconfig = None
self.stats_cb = []
self.state_cb = []
def get_start_args(self):
@@ -194,31 +192,31 @@ class Printer:
return
mod = importlib.import_module('extras.' + module_name)
self.objects[section] = mod.load_config(config.getsection(section))
- def _load_config(self):
- self.fileconfig = ConfigParser.RawConfigParser()
+ def _read_config(self):
+ fileconfig = ConfigParser.RawConfigParser()
config_file = self.start_args['config_file']
- res = self.fileconfig.read(config_file)
+ res = fileconfig.read(config_file)
if not res:
raise self.config_error("Unable to open config file %s" % (
config_file,))
if self.bglogger is not None:
- ConfigLogger(self.fileconfig, self.bglogger)
+ ConfigLogger(fileconfig, self.bglogger)
# Create printer components
- config = ConfigWrapper(self, 'printer')
+ config = ConfigWrapper(self, fileconfig, 'printer')
for m in [pins, mcu]:
m.add_printer_objects(self, config)
- for section in self.fileconfig.sections():
+ for section in fileconfig.sections():
self._try_load_module(config, section)
for m in [chipmisc, toolhead, extruder, heater]:
m.add_printer_objects(self, config)
# Validate that there are no undefined parameters in the config file
valid_sections = { s: 1 for s, o in self.all_config_options }
- for section in self.fileconfig.sections():
+ for section in fileconfig.sections():
section = section.lower()
if section not in valid_sections and section not in self.objects:
raise self.config_error("Unknown config file section '%s'" % (
section,))
- for option in self.fileconfig.options(section):
+ for option in fileconfig.options(section):
option = option.lower()
if (section, option) not in self.all_config_options:
raise self.config_error(
@@ -232,7 +230,7 @@ class Printer:
def _connect(self, eventtime):
self.reactor.unregister_timer(self.connect_timer)
try:
- self._load_config()
+ self._read_config()
for cb in self.state_cb:
if self.state_message is not message_startup:
return self.reactor.NEVER