comparison piecrust/data/base.py @ 158:1187739e5a19

Fix some indentation and line lengths.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 31 Dec 2014 16:56:55 -0800
parents ab6e7e0e9d44
children e9dc18a275ff
comparison
equal deleted inserted replaced
157:55910ab4bfea 158:1187739e5a19
60 loader = self._loaders.get(name) 60 loader = self._loaders.get(name)
61 if loader is not None: 61 if loader is not None:
62 try: 62 try:
63 self._values[name] = loader(self, name) 63 self._values[name] = loader(self, name)
64 except Exception as ex: 64 except Exception as ex:
65 raise Exception("Error while loading attribute '%s' for: %s" 65 raise Exception(
66 % (name, self._page.rel_path)) from ex 66 "Error while loading attribute '%s' for: %s" %
67 (name, self._page.rel_path)) from ex
67 68
68 # We need to double-check `_loaders` here because 69 # We need to double-check `_loaders` here because
69 # the loader could have removed all loaders, which 70 # the loader could have removed all loaders, which
70 # would set this back to `None`. 71 # would set this back to `None`.
71 if self._loaders is not None: 72 if self._loaders is not None:
88 return 89 return
89 90
90 if self._loaders is None: 91 if self._loaders is None:
91 self._loaders = {} 92 self._loaders = {}
92 if attr_name in self._loaders: 93 if attr_name in self._loaders:
93 raise Exception("A loader has already been mapped for: %s" % 94 raise Exception(
94 attr_name) 95 "A loader has already been mapped for: %s" % attr_name)
95 self._loaders[attr_name] = loader 96 self._loaders[attr_name] = loader
96 97
97 def _load(self): 98 def _load(self):
98 if self._values is not None: 99 if self._values is not None:
99 return 100 return
100 self._values = dict(self._page.config.get()) 101 self._values = dict(self._page.config.get())
101 try: 102 try:
102 self._loadCustom() 103 self._loadCustom()
103 except Exception as ex: 104 except Exception as ex:
104 raise Exception("Error while loading data for: %s" % self._page.rel_path) from ex 105 raise Exception(
106 "Error while loading data for: %s" %
107 self._page.rel_path) from ex
105 108
106 def _loadCustom(self): 109 def _loadCustom(self):
107 pass 110 pass
108 111
109 def _debugRenderKeys(self): 112 def _debugRenderKeys(self):
127 130
128 def _loadCustom(self): 131 def _loadCustom(self):
129 page_url = self._get_uri() 132 page_url = self._get_uri()
130 self.setValue('url', page_url) 133 self.setValue('url', page_url)
131 self.setValue('slug', get_slug(self._page.app, page_url)) 134 self.setValue('slug', get_slug(self._page.app, page_url))
132 self.setValue('timestamp', 135 self.setValue(
136 'timestamp',
133 time.mktime(self.page.datetime.timetuple())) 137 time.mktime(self.page.datetime.timetuple()))
134 date_format = self.page.app.config.get('site/date_format') 138 date_format = self.page.app.config.get('site/date_format')
135 if date_format: 139 if date_format:
136 self.setValue('date', self.page.datetime.strftime(date_format)) 140 self.setValue('date', self.page.datetime.strftime(date_format))
137 141
154 assert self is data 158 assert self is data
155 159
156 if do_render: 160 if do_render:
157 uri = self._get_uri() 161 uri = self._get_uri()
158 try: 162 try:
159 from piecrust.rendering import (PageRenderingContext, 163 from piecrust.rendering import (
160 render_page_segments) 164 PageRenderingContext, render_page_segments)
161 ctx = PageRenderingContext(self._page, uri) 165 ctx = PageRenderingContext(self._page, uri)
162 segs = render_page_segments(ctx) 166 segs = render_page_segments(ctx)
163 except Exception as e: 167 except Exception as e:
164 raise Exception("Error rendering segments for '%s'" % uri) from e 168 raise Exception(
169 "Error rendering segments for '%s'" % uri) from e
165 else: 170 else:
166 segs = {} 171 segs = {}
167 for name in self.page.config.get('segments'): 172 for name in self.page.config.get('segments'):
168 segs[name] = "<unavailable: current page>" 173 segs[name] = "<unavailable: current page>"
169 174