Mercurial > odfcast > odfcast
comparison odfcast/convert.py @ 99:349d49bb69f4
Porting on python3
author | Magnus Schieder <mschieder@intevation.de> |
---|---|
date | Tue, 19 Jun 2018 15:07:56 +0200 |
parents | b2f96072b8d7 |
children |
comparison
equal
deleted
inserted
replaced
98:b2f96072b8d7 | 99:349d49bb69f4 |
---|---|
49 "details": details, | 49 "details": details, |
50 }), JSON_MIMETYPE | 50 }), JSON_MIMETYPE |
51 | 51 |
52 def html(self, title, error_code, details): | 52 def html(self, title, error_code, details): |
53 data = ( | 53 data = ( |
54 u'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n' | 54 '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n' |
55 u'<title>%(code)s %(name)s</title>\n' | 55 '<title>%(code)s %(name)s</title>\n' |
56 u'<h1>%(name)s</h1>\n' | 56 '<h1>%(name)s</h1>\n' |
57 u'%(details)s\n' | 57 '%(details)s\n' |
58 ) % { | 58 ) % { |
59 "code": error_code, | 59 "code": error_code, |
60 "name": escape(title), | 60 "name": escape(title), |
61 "details": escape(details), | 61 "details": escape(details), |
62 } | 62 } |
152 t = Template(outfile, tfile, ignore_undefined_variables=True) | 152 t = Template(outfile, tfile, ignore_undefined_variables=True) |
153 t.render(datadict) | 153 t.render(datadict) |
154 outfile.close() | 154 outfile.close() |
155 outfile = tfile | 155 outfile = tfile |
156 outfile.seek(0) | 156 outfile.seek(0) |
157 except Exception, e: | 157 except Exception as e: |
158 log.exception("Template error") | 158 log.exception("Template error") |
159 return TemplateErrorResponse(details=str(e)) | 159 return TemplateErrorResponse(details=str(e)) |
160 | 160 |
161 if fformat != "odt": | 161 if fformat != "odt": |
162 try: | 162 try: |
163 outfile = self.convert(outfile, fformat) | 163 outfile = self.convert(outfile, fformat) |
164 except Exception, e: | 164 except Exception as e: |
165 log.exception("Conversion error") | 165 log.exception("Conversion error") |
166 return ConversionErrorResponse(details=str(e)) | 166 return ConversionErrorResponse(details=str(e)) |
167 | 167 |
168 log.debug("Document converted") | 168 log.debug("Document converted") |
169 return Response(outfile, mimetype=mimetype) | 169 return Response(outfile, mimetype=mimetype) |
208 | 208 |
209 ffiles = [] | 209 ffiles = [] |
210 | 210 |
211 # allow files to have arbitray form names | 211 # allow files to have arbitray form names |
212 # order files by their form names | 212 # order files by their form names |
213 for key, value in sorted(request.files.iterlists(), | 213 for key, value in sorted(request.files.lists(), |
214 key=lambda x: x[0].lower()): | 214 key=lambda x: x[0].lower()): |
215 ffiles.extend(value) | 215 ffiles.extend(value) |
216 | 216 |
217 for ffile in ffiles: | 217 for ffile in ffiles: |
218 try: | 218 try: |
219 merger.append(ffile, import_bookmarks=False) | 219 merger.append(ffile, import_bookmarks=False) |
220 except Exception, e: | 220 except Exception as e: |
221 log.exception("Error merging file %s" % ffile) | 221 log.exception("Error merging file %s" % ffile) |
222 if self.is_ignore_file_errors(): | 222 if self.is_ignore_file_errors(): |
223 continue | 223 continue |
224 else: | 224 else: |
225 return MergeErrorResponse(details=str(e)) | 225 return MergeErrorResponse(details=str(e)) |
228 | 228 |
229 try: | 229 try: |
230 merger.write(outfile) | 230 merger.write(outfile) |
231 merger.close() | 231 merger.close() |
232 outfile.seek(0) | 232 outfile.seek(0) |
233 except PyPdfError, e: | 233 except PyPdfError as e: |
234 log.exception("Merge error") | 234 log.exception("Merge error") |
235 return MergeErrorResponse(details=str(e)) | 235 return MergeErrorResponse(details=str(e)) |
236 | 236 |
237 log.debug("PDF documents merged") | 237 log.debug("PDF documents merged") |
238 return Response(outfile, mimetype=PDF_MIMETYPE) | 238 return Response(outfile, mimetype=PDF_MIMETYPE) |
266 | 266 |
267 with tempfile.TemporaryFile() as outfile: | 267 with tempfile.TemporaryFile() as outfile: |
268 merger = PdfFileMerger(strict=False) | 268 merger = PdfFileMerger(strict=False) |
269 try: | 269 try: |
270 merger.append(ffile, import_bookmarks=False) | 270 merger.append(ffile, import_bookmarks=False) |
271 except Exception, e: | 271 except Exception as e: |
272 log.exception("Error testing merger.append of %s" % ffile) | 272 log.exception("Error testing merger.append of %s" % ffile) |
273 return MergeErrorResponse(details=str(e), http_error_code=422) | 273 return MergeErrorResponse(details=str(e), http_error_code=422) |
274 | 274 |
275 try: | 275 try: |
276 merger.write(outfile) | 276 merger.write(outfile) |
277 except Exception, e: | 277 except Exception as e: |
278 log.exception("Error testing merger.write of merged %s" % ffile) | 278 log.exception("Error testing merger.write of merged %s" % ffile) |
279 return MergeErrorResponse(details=str(e), http_error_code=422) | 279 return MergeErrorResponse(details=str(e), http_error_code=422) |
280 | 280 |
281 merger.close() | 281 merger.close() |
282 | 282 |