How does requests library wrap socket exceptions during response streaming?