Mercurial > piecrust2
comparison piecrust/data/base.py @ 432:3aa174a7f3cf
reporting: Better error messages for incorrect property access on data.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 27 Jun 2015 21:46:56 -0700 |
parents | 21e26ed867b6 |
children | 5be275137056 |
comparison
equal
deleted
inserted
replaced
431:bdeeee777f85 | 432:3aa174a7f3cf |
---|---|
42 return None | 42 return None |
43 | 43 |
44 def __getattr__(self, name): | 44 def __getattr__(self, name): |
45 try: | 45 try: |
46 return self._getValue(name) | 46 return self._getValue(name) |
47 except LazyPageConfigLoaderHasNoValue: | 47 except LazyPageConfigLoaderHasNoValue as ex: |
48 raise AttributeError | 48 raise AttributeError("No such attribute: %s" % name) from ex |
49 | 49 |
50 def __getitem__(self, name): | 50 def __getitem__(self, name): |
51 try: | 51 try: |
52 return self._getValue(name) | 52 return self._getValue(name) |
53 except LazyPageConfigLoaderHasNoValue: | 53 except LazyPageConfigLoaderHasNoValue as ex: |
54 raise KeyError | 54 raise KeyError("No such key: %s" % name) from ex |
55 | 55 |
56 def _getValue(self, name): | 56 def _getValue(self, name): |
57 self._load() | 57 self._load() |
58 | 58 |
59 if name in self._values: | 59 if name in self._values: |