Source code for pyrpl.software_modules.pyrpl_config
import logging
logger = logging.getLogger(name=__name__)
from ..attributes import SelectProperty, StringProperty, TextProperty
from ..memory import MemoryTree
from ..modules import Module
from ..widgets.module_widgets.pyrpl_config_widget import PyrplConfigWidget
[docs]class PyrplConfig(Module):
"""
This Module allows the Gui to configure the global settins, such as redpitaya and pyrpl
"""
_widget_class = PyrplConfigWidget
_gui_attributes = ["configfile", "module", "refresh", "save", "text"]
configfile = StringProperty()
def __init__(self, parent, name=None):
super(PyrplConfig, self).__init__(parent, name=name)
self.configfile = self.pyrpl.c._filename or ""
text = TextProperty()
module = SelectProperty(default="pyrpl",
options=lambda inst: ["pyrpl", "redpitaya"] +
[m.name for m in inst.pyrpl.software_modules] ,
doc="this selector allows to choose which module is configured",
call_setup=True)
@property
def current_branch(self):
if (self.configfile == self.pyrpl.c._filename) \
or (self.configfile == "" and self.pyrpl.c._filename is None):
self.config = self.pyrpl.c
else:
self._logger.info('Creating new MemoryTree for file %s...',
self.configfile)
self.config = MemoryTree(self.configfile)
return self.config._get_or_create(self.module)
def _setup(self):
self.text = self.current_branch._get_yml()
[docs] def save(self):
self.current_branch._set_yml(self.text)
try:
module = getattr(self.pyrpl, self.module)
except AttributeError:
pass
else:
module._load_setup_attributes()
[docs] def refresh(self):
self._setup()