| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import os
- from .settings import Settings
- class SettingEntry:
- def __init__(self, name, env_name='', default='', 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 = ''
- 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):
- if not Settings.__config__.has_section(self.namespace):
- Settings.__config__.add_section(self.namespace)
- 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)
|