Commit 27b1ff43 authored by ibuler's avatar ibuler

[Update] 修改配置支持dict,list配置

parent 8eeb3d50
......@@ -287,13 +287,27 @@ class Config(dict):
rv[key] = v
return rv
def convert_type(self, k, v):
default_value = self.defaults.get(k)
if default_value is None:
return v
tp = type(default_value)
try:
if tp in [list, dict]:
v = json.loads(v)
else:
v = tp(v)
except Exception:
pass
return v
def __getitem__(self, item):
try:
value = super(Config, self).__getitem__(item)
except KeyError:
value = None
if value is not None:
return value
return self.convert_type(item, value)
value = os.environ.get(item, None)
if value is not None:
if value.isdigit():
......@@ -302,7 +316,7 @@ class Config(dict):
value = False
elif value.lower() == 'true':
value = True
return value
return self.convert_type(item, value)
return self.defaults.get(item)
def __getattr__(self, item):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment