It's probably not going to matter all that much in practice, but I notice that in client.py line 450 (get_response) the location is taken from the headers unconditionally, whereas it is only needed if follow_redirect is True, so could move into the 'if' block.