Ticket #2669: pipelining_conversions.patch
| File pipelining_conversions.patch, 3.4 KB (added by cboos, 3 years ago) |
|---|
-
trac/mimeview/api.py
253 253 """Return a list of target MIME types in same form as 254 254 `IContentConverter.get_supported_conversions()`, but with the converter 255 255 component appended. Output is ordered from best to worst quality.""" 256 return sorted(self._get_all_conversions(mimetype, [], {}), 257 key=lambda i: i[-1], reverse=True) 258 259 def _get_all_conversions(self, mimetype, pipeline, knowntypes): 256 260 converters = [] 257 261 for converter in self.converters: 258 262 for k, n, e, im, om, q in converter.get_supported_conversions(): 259 263 if im == mimetype and q > 0: 260 converters.append((k, n, e, im, om, q, converter)) 261 converters = sorted(converters, key=lambda i: i[-1], reverse=True) 264 newpipeline = [(converter,im,k)] + pipeline 265 converters.append((k, n, e, im, om, q, newpipeline)) 266 if not om in knowntypes: 267 knowntypes[om] = True 268 converters += self._get_all_conversions( 269 om, newpipeline, knowntypes) 262 270 return converters 263 271 264 272 def convert_content(self, req, mimetype, content, key, filename=None, … … 288 296 (mimetype, key)) 289 297 290 298 # First candidate which converts successfully wins. 291 for ck, name, ext, input_mimettype, output_mimetype, quality, \292 converterin candidates:299 for key, name, ext, input_mimettype, output_mimetype, quality, \ 300 pipeline in candidates: 293 301 try: 294 output = converter.convert_content(req, mimetype, content, ck) 302 output = (content, None) 303 while pipeline: 304 converter, imimetype, ikey = pipeline.pop() 305 output = converter.convert_content(req, imimetype, 306 output[0], ikey) 295 307 if not output: 296 308 continue 297 309 return (output[0], output[1], ext) -
trac/ticket/web_ui.py
208 208 209 209 def get_supported_conversions(self): 210 210 yield ('csv', 'Comma-delimited Text', 'csv', 211 'trac.ticket.model.Ticket', 'text/ plain', 9)211 'trac.ticket.model.Ticket', 'text/csv', 9) 212 212 yield ('tab', 'Tab-delimited Text', 'csv', 'trac.ticket.model.Ticket', 213 213 'text/plain', 9) 214 214 yield ('rss', 'RSS Feed', 'xml', 'trac.ticket.model.Ticket', -
trac/ticket/query.py
352 352 yield ('rss', 'RSS Feed', 'xml', 'trac.ticket.query', 353 353 'application/rss+xml', 9) 354 354 yield ('csv', 'Comma-delimited Text', 'csv', 355 'trac.ticket.query', 'text/ plain', 9)355 'trac.ticket.query', 'text/csv', 9) 356 356 yield ('tab', 'Tab-delimited Text', 'csv', 'trac.ticket.query', 357 357 'text/plain', 9) 358 358
