danpaquin / coinbasepro-python

The unofficial Python client for the Coinbase Pro API
MIT License
1.82k stars 737 forks source link

Allow get_product_trades() to be paginated #279

Closed tamersaadeh closed 6 years ago

tamersaadeh commented 6 years ago

This implements the pagination of trades, as per the api docs (https://docs.gdax.com/#get-trades).

danpaquin commented 6 years ago

This is needed, but I have a couple concerns:

  1. r.raise_for_status() is really bad at handling issues within a wrapper. I would rather have error handling similar to the one implemented in #260 or not at all.

  2. rate-limiting should be handled outside of each method call. This is a bigger project so we should not worry about it here, but please do not use time.sleep() within any method.

tamersaadeh commented 6 years ago

r.raise_for_status() is really bad at handling issues within a wrapper. I would rather have error handling similar to the one implemented in #260 or not at all.

I only used it for debugging, and I've removed it. (I used the authenticated_client as a template)

rate-limiting should be handled outside of each method call. This is a bigger project so we should not worry about it here, but please do not use time.sleep() within any method.

But since this will perform recursion it will always be rate limited. I have commented it out but I think we need a way to handle it properly.

PS if #260 gets merged I could adapt the code to use it