comparison roundup/cgi/wsgi_handler.py @ 5609:dccf9b7e5ee4

Fix CSV export with WSGI and Python 3 (issue2551019).
author Tom Ekberg <tekberg@uw.edu>
date Sun, 10 Feb 2019 14:10:55 +0000
parents 3a07c57d72bb
children 5579fa034f9e
comparison
equal deleted inserted replaced
5608:5df309febe49 5609:dccf9b7e5ee4
9 import weakref 9 import weakref
10 10
11 import roundup.instance 11 import roundup.instance
12 from roundup.cgi import TranslationService 12 from roundup.cgi import TranslationService
13 from roundup.anypy import http_ 13 from roundup.anypy import http_
14 from roundup.anypy.strings import s2b 14 from roundup.anypy.strings import s2b, bs2b
15 BaseHTTPRequestHandler = http_.server.BaseHTTPRequestHandler 15 BaseHTTPRequestHandler = http_.server.BaseHTTPRequestHandler
16 DEFAULT_ERROR_MESSAGE = http_.server.DEFAULT_ERROR_MESSAGE 16 DEFAULT_ERROR_MESSAGE = http_.server.DEFAULT_ERROR_MESSAGE
17 17
18 18
19 class Writer(object): 19 class Writer(object):
20 '''Perform a start_response if need be when we start writing.''' 20 '''Perform a start_response if need be when we start writing.'''
21 def __init__(self, request): 21 def __init__(self, request):
22 self.request = request #weakref.ref(request) 22 self.request = request #weakref.ref(request)
23 def write(self, data): 23 def write(self, data):
24 f = self.request.get_wfile() 24 f = self.request.get_wfile()
25 self.write = f 25 self.write = lambda data: f(bs2b(data))
26 return f(data) 26 return self.write(data)
27 27
28 class RequestDispatcher(object): 28 class RequestDispatcher(object):
29 def __init__(self, home, debug=False, timing=False, lang=None): 29 def __init__(self, home, debug=False, timing=False, lang=None):
30 assert os.path.isdir(home), '%r is not a directory'%(home,) 30 assert os.path.isdir(home), '%r is not a directory'%(home,)
31 self.home = home 31 self.home = home

Roundup Issue Tracker: http://roundup-tracker.org/