diff options
| author | 2019-06-29 22:26:28 +0100 | |
|---|---|---|
| committer | 2019-06-29 22:26:28 +0100 | |
| commit | 19f716ab4cc73592d19128d239848002678af736 (patch) | |
| tree | f2adb6ac388eaafa083bf475974499d9a664a9b6 /src/Exports.py | |
| parent | Automatically format `example` text for OptionsSetting (showing options) (diff) | |
| signature | ||
Implemnt _options_factory for OptionsSetting to have dynamic options
Diffstat (limited to 'src/Exports.py')
| -rw-r--r-- | src/Exports.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/Exports.py b/src/Exports.py index cad2cc6d..a9fe3175 100644 --- a/src/Exports.py +++ b/src/Exports.py @@ -26,8 +26,10 @@ class Exports(object): self._context_exports[context][setting].append(value) def _get_keys(self): - return set(list(self._exports.keys()) - +list(self._context_exports.keys())) + keys = list(self._exports.keys()) + for context in self._context_exports.keys(): + keys += list(self._context_exports[context].keys()) + return list(set(keys)) def get_all(self, setting: str) -> typing.List[typing.Any]: return self._exports.get(setting, []) + sum([ @@ -38,13 +40,12 @@ class Exports(object): values = self.get_all(setting) return values[0] if values else default - def find_one(self, setting_prefix: str, default: typing.Any=None - ) -> typing.Optional[typing.Any]: - keys = self._get_keys() - for key in keys: + def find(self, setting_prefix: str) -> typing.List[typing.Any]: + found = [] + for key in self._get_keys(): if key.startswith(setting_prefix): - return key - return default + found.append(key) + return found def purge_context(self, context: str): if context in self._context_exports: @@ -62,3 +63,5 @@ class ExportsContext(object): def get_one(self, setting: str, default: typing.Any=None ) -> typing.Optional[typing.Any]: return self._parent.get_one(setting, default) + def find(self, setting_prefix: str) -> typing.List[typing.Any]: + return self._parent.find(setting_prefix) |
