1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import yaml
- class Object(dict):
- def __init__(self):
- super(Object, self).__init__()
- def __getattr__(self, key):
- return self.get(key)
- def __setattr__(self, key, value):
- if isinstance(value, dict):
- o = Object()
- o.set(value)
- self[key] = o
- else:
- self[key] = value
- def set(self, dictionary, clear=False):
- if clear:
- self.clear()
- for key, value in dictionary.items():
- self.__setattr__(key, value)
- class Config(Object):
- _instance = None
- def __new__(cls, *args, **kwargs):
- if Config._instance is None:
- Config._instance = super().__new__(cls)
- return Config._instance
- def load(self, filename):
- with open(filename, 'r', encoding='utf8') as stream:
- data = yaml.load(stream, Loader=yaml.FullLoader)
- self.set(data)
|