async def respond(self, response: Response) -> None: page = self.page proc = self.proc response.setContentType('text/x-csv; charset=UTF-8') response.setFileName(page.getFileName(proc)) sepChar = proc.args.sep.value for row in page.iterRows(proc): response.write(sepChar.join(row) + '\r\n')
async def writeReply(self, response: Response, proc: Processor) -> None: response.write('<?xml version="1.0" encoding="utf-8"?>') # Note: Using an "xml:base" attribute here and relative URLs in the rest # of the feed works fine in Akregator (KDE4 version), but fails in # Outlook 2007. Therefore we should only use absolute URLs. response.writeXML( atom.feed(xmlns='http://www.w3.org/2005/Atom', )[self.presentFeed( proc, rootURL)])
async def writeReply(self, response: Response, proc: Processor) -> None: jobs = proc.jobs response.write('<jobrefs>') for chunk in chop(jobs, 1000): # Measurements have shown that a single write with a big XML # sequence is much faster than many small writes. response.writeXML(xml.jobref(jobid=job.getId()) for job in chunk) # Return control to reactor. await response.returnToReactor() response.write('</jobrefs>')
def writeHTML(self, response: Response, proc: ProcT) -> None: req = proc.req ccURL = req.relativeRoot presentationArgs = dict( proc=proc, ccURL=ccURL, styleURL=ccURL + styleRoot.relativeURL, ) response.write('<!DOCTYPE html>\n') response.writeXML( xhtml.html(lang='en')[xhtml.head[self.presentHeadParts( **presentationArgs)], xhtml.body[self.__presentBodyParts( req, response, **presentationArgs)], ])
async def respond(self, response: Response) -> None: export = self.__export fmt = self.__format response.setContentType(fmt.mediaType) if export: response.setFileName(f'{self.__fileName}.{fmt.ext}') else: response.allowEmbedding() data = self.__builder.build(export).data response.setETag(createETag(data) + b'-dot') try: rendered = await _renderGraph(data, fmt) except Exception as ex: response.setStatus(500, 'Graph rendering failed') response.setContentType('text/plain') response.write(f'Graph rendering failed: {ex}\n') else: response.write(rendered)
async def respond(self, response: Response) -> None: response.setStatus(500, 'Unexpected exception processing request') response.setContentType('text/plain') response.write('Unexpected exception processing request.\n' 'Details were written to the server log.\n')
async def respond(self, response: Response) -> None: response.setStatus(self.__status, self.__message) response.setContentType('text/plain') response.write(self.__message + '\n')