Mercurial > piecrust2
comparison piecrust/page.py @ 5:474c9882decf
Upgrade to Python 3.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 11 Aug 2014 22:36:47 -0700 |
parents | f485ba500df3 |
children | f5ca5c5bed85 |
comparison
equal
deleted
inserted
replaced
4:7dc71c2dc9a8 | 5:474c9882decf |
---|---|
133 return '%s [%s]' % (self.content, self.fmt or '<default>') | 133 return '%s [%s]' % (self.content, self.fmt or '<default>') |
134 | 134 |
135 | 135 |
136 def json_load_segments(data): | 136 def json_load_segments(data): |
137 segments = {} | 137 segments = {} |
138 for key, seg_data in data.iteritems(): | 138 for key, seg_data in data.items(): |
139 seg = ContentSegment() | 139 seg = ContentSegment() |
140 for p_data in seg_data: | 140 for p_data in seg_data: |
141 part = ContentSegmentPart(p_data['c'], p_data['f'], p_data['l']) | 141 part = ContentSegmentPart(p_data['c'], p_data['f'], p_data['l']) |
142 seg.parts.append(part) | 142 seg.parts.append(part) |
143 segments[key] = seg | 143 segments[key] = seg |
144 return segments | 144 return segments |
145 | 145 |
146 | 146 |
147 def json_save_segments(segments): | 147 def json_save_segments(segments): |
148 data = {} | 148 data = {} |
149 for key, seg in segments.iteritems(): | 149 for key, seg in segments.items(): |
150 seg_data = [] | 150 seg_data = [] |
151 for part in seg.parts: | 151 for part in seg.parts: |
152 p_data = {'c': part.content, 'f': part.fmt, 'l': part.line} | 152 p_data = {'c': part.content, 'f': part.fmt, 'l': part.line} |
153 seg_data.append(p_data) | 153 seg_data.append(p_data) |
154 data[key] = seg_data | 154 data[key] = seg_data |
160 return _do_load_page(app, path) | 160 return _do_load_page(app, path) |
161 except Exception as e: | 161 except Exception as e: |
162 logger.exception("Error loading page: %s" % | 162 logger.exception("Error loading page: %s" % |
163 os.path.relpath(path, app.root_dir)) | 163 os.path.relpath(path, app.root_dir)) |
164 _, __, traceback = sys.exc_info() | 164 _, __, traceback = sys.exc_info() |
165 raise PageLoadingError(path, e), None, traceback | 165 raise PageLoadingError(path, e).with_traceback(traceback) |
166 | 166 |
167 | 167 |
168 def _do_load_page(app, path): | 168 def _do_load_page(app, path): |
169 exec_info = app.env.exec_info_stack.current_page_info | 169 exec_info = app.env.exec_info_stack.current_page_info |
170 if exec_info is None: | 170 if exec_info is None: |
195 name, ext = os.path.splitext(path) | 195 name, ext = os.path.splitext(path) |
196 header['format'] = auto_formats.get(ext, None) | 196 header['format'] = auto_formats.get(ext, None) |
197 | 197 |
198 config = PageConfiguration(header) | 198 config = PageConfiguration(header) |
199 content = parse_segments(raw, offset) | 199 content = parse_segments(raw, offset) |
200 config.set('segments', list(content.iterkeys())) | 200 config.set('segments', list(content.keys())) |
201 | 201 |
202 # Save to the cache. | 202 # Save to the cache. |
203 cache_data = { | 203 cache_data = { |
204 'config': config.get(), | 204 'config': config.get(), |
205 'content': json_save_segments(content)} | 205 'content': json_save_segments(content)} |