Skip to content
Snippets Groups Projects
Commit f3fee150 authored by Christoph Schmidt's avatar Christoph Schmidt
Browse files

Added switch to disable the logging

parent da25a564
Branches
Tags
No related merge requests found
......@@ -2,9 +2,17 @@
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/.venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.12 (confighandler)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyNamespacePackagesService">
<option name="namespacePackageFolders">
<list>
<option value="$MODULE_DIR$/src/confighandler" />
</list>
</option>
</component>
</module>
\ No newline at end of file
......@@ -23,8 +23,7 @@ class ApplicationConfig(cfg.ConfigNode):
friendly_name="wafer_number",
description="The version of the wafer")
self.check: cfg.Field[bool] = cfg.Field(False,
friendly_name="testcheck",
self.check: cfg.Field[bool] = cfg.Field(False, friendly_name="testcheck",
description="Testcheck")
......
......@@ -23,11 +23,13 @@ class ConfigNode(object):
cur_time = datetime.datetime.now()
def __init__(self, path: str = None):
def __init__(self, path: str = None, enable_log: bool = False):
super().__init__()
self.enable_log = enable_log
self.name = self.__class__.__name__
self.logger = logging.getLogger(self.name)
self.owner = None
self._level = 0
......@@ -49,8 +51,9 @@ class ConfigNode(object):
if not self._path.exists():
self._path.mkdir(parents=True, exist_ok=True)
self.field_changed.connect(self._on_field_changed)
self.config_logger(enable=self.enable_log)
# ==================================================================================================================
#
......@@ -134,8 +137,8 @@ class ConfigNode(object):
# val.__set_name__(self.__class__.__name__, attr)
self.fields[attr] = val
# val.register(self.keywords, self.view.keywords_changed)
val.register(self.__class__.__name__, attr,
self.keywords, self.field_changed)
val.register(self.__class__.__name__, attr, self.keywords, self.field_changed)
val.config_logger(enable=self.enable_log)
self.view.keywords_changed.emit(self.keywords)
def _register_config(self):
......@@ -183,3 +186,12 @@ class ConfigNode(object):
# print(f"Saving config {self.name}")
file = f"{self._path}/{self.__class__.__name__}.yaml"
self.save(file=file, background_save=True)
# ==================================================================================================================
# Miscs
# ==================================================================================================================
def config_logger(self, enable: bool = True, level: str = "DEBUG"):
self.logger.warning(f"Disabled logging for {self.name}")
self.logger.disabled = not enable
for attr, val in self.fields.items():
val.enable_log(enable, level)
......@@ -15,8 +15,6 @@ from confighandler.controller.CSignal import CSignal
from confighandler.view.FieldView import FieldView
class FieldData(object):
def __init__(self, name: str, value, friendly_name: str, description: str):
self.name = name
......@@ -28,10 +26,14 @@ T = TypeVar('T')
class Field(Generic[T]):
def __init__(self, value: T, friendly_name: str = None, description: str = None):
def __init__(self, value: T, friendly_name: str = None, description: str = None, enable_log: bool = False):
super().__init__()
self.logger = logging.getLogger(self.__class__.__name__)
self._data = FieldData(self.__class__.__name__, value, friendly_name, description)
self.enable_log = enable_log
self.name = self.__class__.__name__
self.logger = logging.getLogger(self.name)
self.config_logger(enable=self.enable_log)
self._data = FieldData(self.name, value, friendly_name, description)
self._friendly_name: str = friendly_name
self._description: str = description
......@@ -107,13 +109,12 @@ class Field(Generic[T]):
self.keywords[self.name] = str(self.value).replace(' ', '_').replace('.', '_').replace(',', '_')
self.csig_field_changed.emit()
def replace_keywords(self, fr: str):
"""Replaces the keywords in the given value with the values of the keywords dict"""
# extract all occurencaes of strings between { and }
if isinstance(fr, str):
m = re.findall('\{(.*?)\}', fr)
m = re.findall('{(.*?)}', fr)
for kw in m:
if kw in self.keywords.keys():
fr = fr.replace('{' + kw + '}', str(self.keywords[kw]))
......@@ -173,4 +174,12 @@ class Field(Generic[T]):
def __repr__(self):
return str(f"{self.__class__.__name__}({self.value})")
# ==================================================================================================================
# Miscs
# ==================================================================================================================
def config_logger(self, enable: bool = True, level: str = "DEBUG"):
if enable:
self.logger.info(f"Enabled logging for {self.name}")
else:
self.logger.warning(f"Disabled logging for {self.name}")
self.logger.disabled = not enable
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment