MCPcopy
hub / github.com/urllib3/urllib3 / _decode

Method _decode

src/urllib3/response.py:619–654  ·  src/urllib3/response.py::BaseHTTPResponse._decode

Decode the data passed in and potentially flush the decoder.

(
        self,
        data: bytes,
        decode_content: bool | None,
        flush_decoder: bool,
        max_length: int | None = None,
    )

Source from the content-addressed store, hash-verified

617 self._decoder = _get_decoder(content_encoding)
618
619 def _decode(
620 self,
621 data: bytes,
622 decode_content: bool | None,
623 flush_decoder: bool,
624 max_length: int | None = None,
625 ) -> bytes:
626 class="st">"""
627 Decode the data passed in and potentially flush the decoder.
628 class="st">"""
629 if not decode_content:
630 if self._has_decoded_content:
631 raise RuntimeError(
632 class="st">"Calling read(decode_content=False) is not supported after "
633 class="st">"read(decode_content=True) was called."
634 )
635 return data
636
637 if max_length is None or flush_decoder:
638 max_length = -1
639
640 try:
641 if self._decoder:
642 data = self._decoder.decompress(data, max_length=max_length)
643 self._has_decoded_content = True
644 except self.DECODER_ERROR_CLASSES as e:
645 content_encoding = self.headers.get(class="st">"content-encoding", class="st">"").lower()
646 raise DecodeError(
647 class="st">"Received response with content-encoding: %s, but "
648 class="st">"failed to decode it." % content_encoding,
649 e,
650 ) from e
651 if flush_decoder:
652 data += self._flush_decoder()
653
654 return data
655
656 def _flush_decoder(self) -> bytes:
657 class="st">"""

Callers 4

readMethod · 0.80
read1Method · 0.80
read_chunkedMethod · 0.80

Calls 4

_flush_decoderMethod · 0.95
DecodeErrorClass · 0.85
getMethod · 0.80
decompressMethod · 0.45