Files
OpenBB/openbb_terminal/cryptocurrency/overview/coinbase_model.py
Colin Delahunty 5bc7bc070e Tests over API Best Practices (#2344)
* Started new tests

* Added special function

* Improved dict

* Finished new test

* Got bad functions to 75

* Got bad func to 73

* Bad func down to 60

* Bad func down to 50

* Bad func down to 35

* Got bad func to 30

* No more bad functions

* Added tests

* Added fix

* Fixed some tests

* Fixed some tests

* Fixed some tests

* Fixed some tests

* Added tests to CI

* Fixed CI tests

* Fixed CI tests

* Imrproved CI tests

* Fixed reports

* Fixed reports

* Added stuff

* Removed CI

* Fixed

* Fixed some typing'

Co-authored-by: minhhoang1023 <40023817+minhhoang1023@users.noreply.github.com>
2022-09-22 22:31:46 +01:00

62 lines
1.4 KiB
Python

"""Coinbase model"""
__docformat__ = "numpy"
import logging
import pandas as pd
from openbb_terminal.cryptocurrency.coinbase_helpers import make_coinbase_request
from openbb_terminal.decorators import log_start_end
logger = logging.getLogger(__name__)
PAIRS_FILTERS = [
"id",
"display_name",
"base_currency",
"quote_currency",
"base_min_size",
"base_max_size",
"min_market_funds",
"max_market_funds",
]
@log_start_end(log=logger)
def get_trading_pairs(
limit: int = 50, sortby: str = "quote_increment", ascend: bool = True
) -> pd.DataFrame:
"""Get a list of available currency pairs for trading. [Source: Coinbase]
base_min_size - min order size
base_max_size - max order size
min_market_funds - min funds allowed in a market order.
max_market_funds - max funds allowed in a market order.
Parameters
----------
limit: int
Top n of pairs
sortby: str
Key to sortby data
ascend: bool
Sort descending flag
Returns
-------
pd.DataFrame
Available trading pairs on Coinbase
"""
columns = [
"id",
"display_name",
"base_currency",
"quote_currency",
"quote_increment",
"base_increment",
"min_market_funds",
]
pairs = make_coinbase_request("/products")
df = pd.DataFrame(pairs)[columns]
df = df.sort_values(by=sortby, ascending=ascend).head(limit)
return df