Skip to content

Commit

Permalink
shortcut for changing setting values
Browse files Browse the repository at this point in the history
  • Loading branch information
s-m-e committed Dec 28, 2023
1 parent a34efe0 commit 2220f34
Showing 1 changed file with 18 additions and 4 deletions.
22 changes: 18 additions & 4 deletions src/hapsira/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,16 +134,30 @@ def _add(self, setting: Setting):
"""
self._settings[setting.name] = setting

def _validate(self, name: str):
"""
Validate name
"""
if name in self._settings.keys():
return
raise KeyError(
f'setting "{name:s}" unknown, possible settings are {repr(list(self._settings.keys())):s}'
)

def __getitem__(self, name: str) -> Setting:
"""
Return setting by name
"""
if name not in self._settings.keys():
raise KeyError(
f'setting "{name:s}" unknown, possible settings are {repr(list(self._settings.keys())):s}'
)
self._validate(name)
return self._settings[name]

def __setitem__(self, name: str, new_value: Any):
"""
Return setting by name
"""
self._validate(name)
self._settings[name].value = new_value

def keys(self) -> Generator:
"""
Generator of all setting names
Expand Down

0 comments on commit 2220f34

Please sign in to comment.