aboutsummaryrefslogtreecommitdiff
path: root/src/Exports.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-06-29 22:26:28 +0100
committerGravatar jesopo2019-06-29 22:26:28 +0100
commit19f716ab4cc73592d19128d239848002678af736 (patch)
treef2adb6ac388eaafa083bf475974499d9a664a9b6 /src/Exports.py
parentAutomatically 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.py19
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)