Mercurial > piecrust2
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) |