code: def _safe_read(self, amt):
          
          s = []
          while amt > 0:
              chunk = self.fp.read(min(amt, MAXAMOUNT))
              if not chunk:
                  raise IncompleteRead(bytes(b'').join(s), amt)
              s.append(chunk)
              amt -= len(chunk)
          return bytes(b"").join(s)
docs: Read the number of bytes requested, compensating for partial reads.
  
          Normally, we have a blocking socket, but a read() can be interrupted
          by a signal (resulting in a partial read).
  
          Note that we cannot distinguish between EOF and an interrupt when zero
          bytes have been read. IncompleteRead() will be raised in this
          situation.
  
          This function should be used when <amt> bytes "should" be present for
          reading. If the bytes are truly not available (due to EOF), then the
          IncompleteRead exception can be used to detect the problem.