def _exchange_marker(exchange): if exchange.request: marker = u'------------ request: %s %s' % (printable( exchange.request.method), printable(exchange.request.target)) elif exchange.responses: marker = u'------------ unknown request' else: marker = u'------------' # The number 79 fits the default ``cmd.exe`` size in Windows. return ellipsize(marker, 79) + u'\n'
def _exchange_marker(exchange, req_i): if exchange.request: marker = u'------------ request %d : %s %s' % ( req_i, printable(exchange.request.method), printable(exchange.request.target)) elif exchange.responses: marker = u'------------ unknown request' else: marker = u'------------' return ellipsize(marker, 80) + u'\n'
def _exchange_marker(exchange): if exchange.request: marker = u'------------ request: %s %s' % ( printable(exchange.request.method), printable(exchange.request.target)) elif exchange.responses: marker = u'------------ unknown request' else: marker = u'------------' # The number 79 fits the default ``cmd.exe`` size in Windows. return ellipsize(marker, 79) + u'\n'
def _render_response(resp): with H.section(): with H.div(_class=u'message-display'): with H.h2(), H.code(): # Status line # See above regarding spaces. if resp.version: H.span(printable(resp.version), **_for_object(resp.version)) with H.span(**_for_object(resp.status)): _render_known(resp.status) H.span(printable(find_reason_phrase(resp))) _render_message(resp) # Headers, body and all that _render_complaints(resp)
def _render_response(resp): with H.section(): with H.div(_class=u'message-display'): if resp.remark: H.p(printable(resp.remark), _class=u'message-remark') with H.h2(), H.code(): # Status line # See above regarding spaces. if resp.version: H.span(printable(resp.version), **_for_object(resp.version)) with H.span(**_for_object(resp.status)): _render_known(resp.status) H.span(printable(find_reason_phrase(resp))) _render_message(resp) # Headers, body and all that _render_complaints(resp)
def _render_request(req): with H.section(): with H.div(_class=u'message-display'): with H.h2(), H.code(): # Request line # We don't insert spaces here because we assume that # Dominate will render each element on its own line, # thus implicitly creating whitespace. # https://github.com/Knio/dominate/issues/68 with H.span(**_for_object(req.method)): _render_known(req.method) H.span(printable(req.target), **_for_object(req.target)) if req.version: H.span(printable(req.version), **_for_object(req.version)) _render_message(req) # Headers, body and all that _render_complaints(req)
def _render_request(req): with H.section(): with H.div(_class=u'message-display'): with H.h2(), H.code(): # Request line # We don't insert spaces here because, # without ``__pretty=False``, # Dominate renders each element on its own line, # thus implicitly creating whitespace. with H.span(**_for_object(req.method)): _render_known(req.method) H.span(printable(req.target), **_for_object(req.target)) if req.version: H.span(printable(req.version), **_for_object(req.version)) _render_message(req) # Headers, body and all that _render_complaints(req)
def _render_annotated(pieces): """Render an annotated string as produced by :mod:`httpolice.parse`.""" for piece in pieces: if isinstance(piece, bytes): text_node(printable(piece.decode('iso-8859-1'))) else: _render_known(piece)
def _render_annotated(pieces): for piece in pieces: if isinstance(piece, bytes): H.span(printable(piece.decode('iso-8859-1'))) else: with H.span(**_for_object(piece)): _render_known(piece)
def _render_request(req): with H.section(): with H.div(_class=u'message-display'): if req.remark: H.p(printable(req.remark), _class=u'message-remark') with H.h2(), H.code(): # Request line # We don't insert spaces here because, # without ``__pretty=False``, # Dominate renders each element on its own line, # thus implicitly creating whitespace. with H.span(__pretty=False, **_for_object(req.method)): _render_known(req.method) H.span(printable(req.target), **_for_object(req.target)) if req.version: H.span(printable(req.version), **_for_object(req.version)) _render_message(req) # Headers, body and all that _render_complaints(req)
def _render_annotated(pieces): """Render an annotated string as produced by :mod:`httpolice.parse`.""" for piece in pieces: if isinstance(piece, bytes): H.span(printable(piece.decode('iso-8859-1'))) else: with H.span(**_for_object(piece)): _render_known(piece)
def _render_response(resp): with H.section(): with H.div(_class=u'message-display'): if resp.remark: H.p(printable(resp.remark), _class=u'message-remark') with H.h2(), H.code(): # Status line # See above regarding spaces. if resp.version: H.span(printable(resp.version), **_for_object(resp.version)) # httpolice-devtool (the Chrome extension) relies # on the ``StatusCode`` class. Avoid breaking it, at least # as long as it doesn't inconvenience HTTPolice itself. with H.span(**_for_object(resp.status, u'StatusCode')): _render_known(resp.status) text_node(u' ' + printable(find_reason_phrase(resp))) _render_message(resp) # Headers, body and all that _render_complaints(resp)
def _render_known(obj): """Render an instance of one of the :data:`httpolice.known.classes`.""" text = printable(str(obj)) cite = known.citation(obj) if cite: with H.a(text, href=cite.url): title = known.title(obj, with_citation=True) if title: H.attr(title=title) else: text_node(text)
def _render_known(obj): cls = type(obj).__name__ text = printable(six.text_type(obj)) cite = known.citation(obj) if cite: elem = H.a(text, _class=cls, href=cite.url, target=u'_blank') else: elem = H.span(text, _class=cls) title = known.title(obj, with_citation=True) if title: with elem: H.attr(title=title)
def _render_known(obj): """Render an instance of one of the :data:`httpolice.known.classes`.""" cls = type(obj).__name__ text = printable(six.text_type(obj)) cite = known.citation(obj) if cite: elem = H.a(text, _class=cls, href=cite.url, target=u'_blank') else: elem = H.span(text, _class=cls) title = known.title(obj, with_citation=True) if title: with elem: H.attr(title=title)
def displayable_body(self): """ The payload body in a form that is appropriate for display in a message preview, along with a list of phrases explaining which transformations have been applied to arrive at that form. """ removing_te = [u'removing Transfer-Encoding'] \ if self.headers.transfer_encoding else [] removing_ce = [u'removing Content-Encoding'] \ if self.headers.content_encoding else [] decoding_charset = [u'decoding from %s' % self.guessed_charset] \ if self.guessed_charset and self.guessed_charset != 'utf-8' else [] pretty_printing = [u'pretty-printing'] if okay(self.json_data): r = json.dumps(self.json_data, indent=2, ensure_ascii=False) transforms = \ removing_te + removing_ce + decoding_charset + pretty_printing elif okay(self.unicode_body): r = self.unicode_body transforms = removing_te + removing_ce + decoding_charset elif okay(self.decoded_body): # pylint: disable=no-member r = self.decoded_body.decode('utf-8', 'replace') transforms = removing_te + removing_ce elif okay(self.body): r = self.body.decode('utf-8', 'replace') transforms = removing_te else: return self.body, [] limit = 1000 if len(r) > limit: r = r[:limit] transforms += [u'taking the first %d characters' % limit] pr = printable(r) if r != pr: r = pr transforms += [ u'replacing non-printable characters ' u'with the \ufffd sign' ] return r, transforms
def displayable_body(self): """ The payload body in a form that is appropriate for display in a message preview, along with a list of phrases explaining which transformations have been applied to arrive at that form. """ removing_te = [u'removing Transfer-Encoding'] \ if self.headers.transfer_encoding else [] removing_ce = [u'removing Content-Encoding'] \ if self.headers.content_encoding else [] decoding_charset = [u'decoding from %s' % self.guessed_charset] \ if self.guessed_charset and self.guessed_charset != 'utf-8' else [] pretty_printing = [u'pretty-printing'] if okay(self.json_data): r = json.dumps(self.json_data, indent=2, ensure_ascii=False) transforms = \ removing_te + removing_ce + decoding_charset + pretty_printing elif okay(self.unicode_body): r = self.unicode_body transforms = removing_te + removing_ce + decoding_charset elif okay(self.decoded_body): # pylint: disable=no-member r = self.decoded_body.decode('utf-8', 'replace') transforms = removing_te + removing_ce elif okay(self.body): r = self.body.decode('utf-8', 'replace') transforms = removing_te else: return self.body, [] limit = 1000 if len(r) > limit: r = r[:limit] transforms += [u'taking the first %d characters' % limit] pr = printable(r) if r != pr: r = pr transforms += [u'replacing non-printable characters ' u'with the \ufffd sign'] return r, transforms
def displayable_body(self): removing_te = [u'removing Transfer-Encoding'] \ if self.headers.transfer_encoding else [] removing_ce = [u'removing Content-Encoding'] \ if self.headers.content_encoding else [] decoding_charset = [u'decoding from %s' % self.guessed_charset] \ if self.guessed_charset and self.guessed_charset != 'utf-8' else [] pretty_printing = [u'pretty-printing'] if okay(self.json_data): r = json.dumps(self.json_data, indent=2, ensure_ascii=False) transforms = \ removing_te + removing_ce + decoding_charset + pretty_printing elif okay(self.unicode_body): r = self.unicode_body transforms = removing_te + removing_ce + decoding_charset elif okay(self.decoded_body): # pylint: disable=no-member r = self.decoded_body.decode('utf-8', 'replace') transforms = removing_te + removing_ce elif okay(self.body): r = self.body.decode('utf-8', 'replace') transforms = removing_te else: return self.body, [] limit = 1000 if len(r) > limit: r = r[:limit] transforms += [u'taking the first %d characters' % limit] pr = printable(r) if r != pr: r = pr transforms += [u'replacing non-printable characters ' u'with the \ufffd sign'] return r, transforms
def _displayable_body(msg): removing_te = [u'removing Transfer-Encoding'] \ if msg.headers.transfer_encoding else [] removing_ce = [u'removing Content-Encoding'] \ if msg.headers.content_encoding else [] decoding_charset = [u'decoding from %s' % msg.guessed_charset] \ if msg.guessed_charset and msg.guessed_charset != 'utf-8' else [] pretty_printing = [u'pretty-printing'] if okay(msg.json_data): r = json.dumps(msg.json_data, indent=2, ensure_ascii=False) transforms = \ removing_te + removing_ce + decoding_charset + pretty_printing elif okay(msg.unicode_body): r = msg.unicode_body transforms = removing_te + removing_ce + decoding_charset elif okay(msg.decoded_body): r = msg.decoded_body.decode('utf-8', 'replace') transforms = removing_te + removing_ce elif okay(msg.body): r = msg.body.decode('utf-8', 'replace') transforms = removing_te else: return msg.body, [] limit = 1000 if len(r) > limit: r = r[:limit] transforms += [u'taking the first %d characters' % limit] pr = printable(r) if r != pr: r = pr transforms += [u'replacing non-printable characters ' u'with the \ufffd sign'] return r, transforms
def _text_to_html(text, _): H.span(printable(text), __inline=True)
def _text_to_html(text, _): text_node(printable(text))
def _response_marker(response): return ellipsize(u'------------ response: %d %s' % ( response.status, printable(find_reason_phrase(response)))) + u'\n'
def _text_to_html(text, _): H.span(printable(text))
def _text_to_text(text, _): return printable(text)
def _response_marker(response, resp_i): return ellipsize(u'------------ response %d : %d %s' % ( resp_i, response.status, printable(find_reason_phrase(response)))) + u'\n'