예제 #1
0
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'
예제 #2
0
파일: text.py 프로젝트: dfirst/httpolice
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'
예제 #3
0
파일: text.py 프로젝트: vfaronov/httpolice
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'
예제 #4
0
파일: html.py 프로젝트: dfirst/httpolice
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)
예제 #5
0
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)
예제 #6
0
파일: html.py 프로젝트: dfirst/httpolice
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)
예제 #7
0
파일: html.py 프로젝트: garmann/httpolice
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)
예제 #8
0
파일: html.py 프로젝트: vfaronov/httpolice
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)
예제 #9
0
파일: html.py 프로젝트: weijl6819/httpolice
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)
예제 #10
0
파일: html.py 프로젝트: dfirst/httpolice
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)
예제 #11
0
파일: html.py 프로젝트: weijl6819/httpolice
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)
예제 #12
0
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)
예제 #13
0
파일: html.py 프로젝트: vfaronov/httpolice
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)
예제 #14
0
파일: html.py 프로젝트: weijl6819/httpolice
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)
예제 #15
0
파일: html.py 프로젝트: weijl6819/httpolice
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)
예제 #16
0
파일: html.py 프로젝트: vfaronov/httpolice
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)
예제 #17
0
파일: html.py 프로젝트: garmann/httpolice
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)
예제 #18
0
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)
예제 #19
0
파일: message.py 프로젝트: jayvdb/httpolice
    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
예제 #20
0
    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
예제 #21
0
    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
예제 #22
0
파일: html.py 프로젝트: dfirst/httpolice
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
예제 #23
0
파일: html.py 프로젝트: dfirst/httpolice
def _text_to_html(text, _):
    H.span(printable(text), __inline=True)
예제 #24
0
파일: html.py 프로젝트: weijl6819/httpolice
def _text_to_html(text, _):
    text_node(printable(text))
예제 #25
0
def _response_marker(response):
    return ellipsize(u'------------ response: %d %s' % (
                        response.status,
                        printable(find_reason_phrase(response)))) + u'\n'
예제 #26
0
def _text_to_html(text, _):
    H.span(printable(text))
예제 #27
0
def _text_to_text(text, _):
    return printable(text)
예제 #28
0
파일: text.py 프로젝트: dfirst/httpolice
def _text_to_text(text, _):
    return printable(text)
예제 #29
0
파일: text.py 프로젝트: dfirst/httpolice
def _response_marker(response, resp_i):
    return ellipsize(u'------------ response %d : %d %s' % (
                        resp_i,
                        response.status,
                        printable(find_reason_phrase(response)))) + u'\n'
예제 #30
0
파일: html.py 프로젝트: garmann/httpolice
def _text_to_html(text, _):
    H.span(printable(text))
예제 #31
0
파일: html.py 프로젝트: vfaronov/httpolice
def _text_to_html(text, _):
    text_node(printable(text))