| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import os
- from .settings import Settings
- class SettingEntry:
- def __init__(self, name, env_name=None, default=None, namespace='DEFAULT', type=str):
- self.name = name
- self.environment = env_name
- self.default = default
- self.value = default
- self.namespace = namespace
- self.read_from_env = False
- self.type = type
- self.str_value = None
- self.read_config()
- if os.getenv(self.environment) is not None:
- self.read_from_env = True
- self.set(os.getenv(self.environment))
- Settings.__list__.append(self)
- def __str__(self):
- return '{0} => {1}'.format(self.name, self.value)
- def __eq__(self, other):
- return self.name == other
- def read_config(self):
- if self.namespace in Settings.__config__ and self.name in Settings.__config__[self.namespace] and not self.read_from_env:
- self.set(Settings.__config__[self.namespace][self.name])
- def push_config(self):
- Settings.__config__[self.namespace][self.name] = self.str_value
- def set(self, value):
- self.value = self.type(value)
- self.str_value = str(self.value)
- def get(self):
- return self.type(self.value)
|