Mercurial > p > roundup > code
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 |
