There might be a possible issue, as it appears that the function xauth in auth.py uses a body string (returned by client.sign) that is unicode. This breaks the requests post method for requests 2.8+.
As a workaround, "body = str( body )"?
This may be an issue with the upstream oauthlib package. I am going to post this issue with them too, specifically that in a method like:
uri, headers, body = client.sign(...)
the body is unicode, which breaks requests.post(...)