made config iterable
This commit is contained in:
parent
43de7f48c6
commit
5f99e4e41b
@ -1,4 +1,4 @@
|
|||||||
from typing import Union, Tuple, Dict
|
from typing import Union, Tuple, Dict, Iterable
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|
||||||
@ -22,16 +22,17 @@ class Config:
|
|||||||
"If you found a bug, and wan't to report it, please set the Logging level to 0,\n"
|
"If you found a bug, and wan't to report it, please set the Logging level to 0,\n"
|
||||||
"reproduce the bug, and attach the logfile in the bugreport. ^w^"),
|
"reproduce the bug, and attach the logfile in the bugreport. ^w^"),
|
||||||
LOGGING_SECTION,
|
LOGGING_SECTION,
|
||||||
Description("🏳️⚧️🏳️⚧️ Protect trans youth. 🏳️⚧️🏳️⚧️"),
|
Description("🏳️⚧️🏳️⚧️ Protect trans youth. 🏳️⚧️🏳️⚧️\n"),
|
||||||
EmptyLine()
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self._section_list: List[Section] = []
|
||||||
self._name_section_map: Dict[str, Section] = dict()
|
self._name_section_map: Dict[str, Section] = dict()
|
||||||
|
|
||||||
for element in self.config_elements:
|
for element in self.config_elements:
|
||||||
if not isinstance(element, Section):
|
if not isinstance(element, Section):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
self._section_list.append(element)
|
||||||
for name in element.name_attribute_map:
|
for name in element.name_attribute_map:
|
||||||
if name in self._name_section_map:
|
if name in self._name_section_map:
|
||||||
raise ValueError(f"Two sections have the same name: "
|
raise ValueError(f"Two sections have the same name: "
|
||||||
@ -76,6 +77,11 @@ class Config:
|
|||||||
with open(path, "w") as conf_file:
|
with open(path, "w") as conf_file:
|
||||||
conf_file.write(self.config_string)
|
conf_file.write(self.config_string)
|
||||||
|
|
||||||
|
def __iter__(self) -> Iterable[Attribute]:
|
||||||
|
for section in self._section_list:
|
||||||
|
for name, attribute in section.name_attribute_map.items():
|
||||||
|
yield attribute
|
||||||
|
|
||||||
|
|
||||||
config = Config()
|
config = Config()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user