Okay, that reason sort of makes sense. Think the snow flake + snowman is an extreme example but does show unicode problems.
The problem that I have now is that due to the monkeypatch being applied this way, any other package using requests is affected.
In my current case, my headers (keys) are all byte strings and I end up sending 'Accept-Encoding' and 'Content-Length' twice due to python's http client not recognizing the byte-string version in it's if statement.
Okay, that reason sort of makes sense. Think the snow flake + snowman is an extreme example but does show unicode problems.
The problem that I have now is that due to the monkeypatch being applied this way, any other package using requests is affected.
In my current case, my headers (keys) are all byte strings and I end up sending 'Accept-Encoding' and 'Content-Length' twice due to python's http client not recognizing the byte-string version in it's if statement.
> /home/uittenbro ek/.pyenv/ versions/ 3.6.10/ lib/python3. 6/http/ client. py(1270) _send_request( ) {b'authorizatio n', b'accept', b'content-length', 'content-length', b'accept-encoding', b'connection', b'user-agent'})
ipdb> header_names
frozenset(
ipdb> 'accept-encoding' in header_names
False
The 'Accept-Encoding' values are:
Accept-Encoding: identity
Accept-Encoding: gzip, deflate
Guessing the first (or being send twice) causes problems for me at this instance.
So I think the monkeypatch being applied should be way more defensive, fix there what breaks for you.