This issue is an extension of this discussion.
The issue is, in fact, worse than we thought. As previously noted, xero-python uses urllib3 under the hood and this results in 3 request retries by default. However, urllib3 also respects the Retry-After rate limiting header, and will time.sleep to wait until it should send another request. This can result in hour or day-long sleeps, which is extremely undesirable.
The proposed solution is the same as in the original discussion:
xero_python.api_client.configuration.Configuration should accept retries as an argument which in turn would be passed down to the urllib3.PoolManager or urllib3.ProxyManager during initialisation.