comparison piecrust/configuration.py @ 204:f98451237371

internal: Add ability to get a default value if a config value doesn't exist. tests: Add some configuration tests.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 18 Jan 2015 11:53:18 -0800
parents b540d431f2da
children 45aba3cb7228
comparison
equal deleted inserted replaced
203:29165f2f315d 204:f98451237371
37 self._values = values 37 self._values = values
38 38
39 def getAll(self): 39 def getAll(self):
40 return self.get() 40 return self.get()
41 41
42 def get(self, key_path=None): 42 def get(self, key_path=None, default_value=None):
43 self._ensureLoaded() 43 self._ensureLoaded()
44 if key_path is None: 44 if key_path is None:
45 return self._values 45 return self._values
46 bits = key_path.split('/') 46 bits = key_path.split('/')
47 cur = self._values 47 cur = self._values
48 for b in bits: 48 for b in bits:
49 cur = cur.get(b) 49 cur = cur.get(b)
50 if cur is None: 50 if cur is None:
51 return None 51 return default_value
52 return cur 52 return cur
53 53
54 def set(self, key_path, value): 54 def set(self, key_path, value):
55 self._ensureLoaded() 55 self._ensureLoaded()
56 value = self._validateValue(key_path, value) 56 value = self._validateValue(key_path, value)