summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/docker/compose.env2
-rw-r--r--build/docker/docker-compose.yaml2
-rw-r--r--build/docker/openbb.dockerfile1
-rw-r--r--build/nsis/setup.nsi2
-rw-r--r--build/pyinstaller/.env2
-rw-r--r--openbb_terminal/cryptocurrency/discovery/dappradar_model.py23
-rw-r--r--openbb_terminal/cryptocurrency/discovery/dappradar_view.py8
-rw-r--r--openbb_terminal/cryptocurrency/discovery/discovery_controller.py63
-rw-r--r--openbb_terminal/cryptocurrency/discovery/pycoingecko_model.py24
-rw-r--r--openbb_terminal/cryptocurrency/discovery/pycoingecko_view.py14
-rw-r--r--openbb_terminal/feature_flags.py2
-rw-r--r--openbb_terminal/session/sdk_session.py1
-rw-r--r--poetry.lock32
-rw-r--r--pyproject.toml4
-rw-r--r--requirements-full.txt7
-rw-r--r--requirements.txt8
-rw-r--r--tests/openbb_terminal/cryptocurrency/discovery/cassettes/test_pycoingecko_view/test_call_func[display_coins-kwargs0].yaml215
-rw-r--r--tests/openbb_terminal/cryptocurrency/discovery/cassettes/test_pycoingecko_view/test_call_func[display_gainers-kwargs1].yaml237
-rw-r--r--tests/openbb_terminal/cryptocurrency/discovery/cassettes/test_pycoingecko_view/test_call_func[display_losers-kwargs2].yaml235
-rw-r--r--tests/openbb_terminal/cryptocurrency/discovery/cassettes/test_pycoingecko_view/test_call_func[display_trending-kwargs3].yaml53
-rw-r--r--tests/openbb_terminal/cryptocurrency/discovery/csv/test_pycoingecko_model/test_call_func[get_gainers_or_losers-kwargs3].csv28
-rw-r--r--tests/openbb_terminal/cryptocurrency/discovery/txt/test_pycoingecko_view/test_call_func[display_coins-kwargs0].txt36
-rw-r--r--tests/openbb_terminal/cryptocurrency/discovery/txt/test_pycoingecko_view/test_call_func[display_gainers-kwargs1].txt40
-rw-r--r--tests/openbb_terminal/cryptocurrency/discovery/txt/test_pycoingecko_view/test_call_func[display_losers-kwargs2].txt40
-rw-r--r--tests/openbb_terminal/cryptocurrency/discovery/txt/test_pycoingecko_view/test_call_func[display_trending-kwargs3].txt16
-rw-r--r--tests/openbb_terminal/cryptocurrency/onchain/txt/test_shroom_view/test_display_dapp_stats.txt1
-rw-r--r--tests/openbb_terminal/stocks/screener/cassettes/test_finviz_model/test_get_screener_data[financial].yaml9972
-rw-r--r--tests/openbb_terminal/stocks/screener/cassettes/test_finviz_model/test_get_screener_data[overview].yaml9752
-rw-r--r--tests/openbb_terminal/stocks/screener/cassettes/test_finviz_model/test_get_screener_data[ownership].yaml9953
-rw-r--r--tests/openbb_terminal/stocks/screener/cassettes/test_finviz_model/test_get_screener_data[performance].yaml10008
-rw-r--r--tests/openbb_terminal/stocks/screener/cassettes/test_finviz_model/test_get_screener_data[technical].yaml9965
-rw-r--r--tests/openbb_terminal/stocks/screener/cassettes/test_finviz_model/test_get_screener_data[valuation].yaml9937
-rw-r--r--tests/openbb_terminal/stocks/screener/cassettes/test_finviz_model/test_get_screener_data_no_limit.yaml1502
-rw-r--r--tests/openbb_terminal/stocks/screener/cassettes/test_finviz_model/test_get_screener_data_no_preset_loaded.yaml3285
-rw-r--r--tests/openbb_terminal/stocks/screener/cassettes/test_finviz_view/test_screener[False].yaml9750
-rw-r--r--tests/openbb_terminal/stocks/screener/cassettes/test_finviz_view/test_screener[True].yaml9758
-rw-r--r--tests/openbb_terminal/stocks/screener/cassettes/test_finviz_view/test_screener_sort_matches[MOCK_SORT].yaml9757
-rw-r--r--tests/openbb_terminal/stocks/screener/cassettes/test_finviz_view/test_screener_sort_matches[Ticker].yaml9759
-rw-r--r--tests/openbb_terminal/stocks/screener/csv/test_finviz_model/test_get_screener_data[financial].csv337
-rw-r--r--tests/openbb_terminal/stocks/screener/csv/test_finviz_model/test_get_screener_data[overview].csv337
-rw-r--r--tests/openbb_terminal/stocks/screener/csv/test_finviz_model/test_get_screener_data[ownership].csv337
-rw-r--r--tests/openbb_terminal/stocks/screener/csv/test_finviz_model/test_get_screener_data[performance].csv337
-rw-r--r--tests/openbb_terminal/stocks/screener/csv/test_finviz_model/test_get_screener_data[technical].csv337
-rw-r--r--tests/openbb_terminal/stocks/screener/csv/test_finviz_model/test_get_screener_data[valuation].csv337
-rw-r--r--tests/openbb_terminal/stocks/screener/csv/test_finviz_model/test_get_screener_data_no_limit.csv28
-rw-r--r--tests/openbb_terminal/stocks/screener/csv/test_finviz_model/test_get_screener_data_no_preset_loaded.csv69
-rw-r--r--tests/openbb_terminal/stocks/screener/txt/test_finviz_view/test_screener[False].txt6
-rw-r--r--tests/openbb_terminal/stocks/screener/txt/test_finviz_view/test_screener[True].txt6
-rw-r--r--tests/openbb_terminal/stocks/screener/txt/test_finviz_view/test_screener_sort_matches[MOCK_SORT].txt6
-rw-r--r--tests/openbb_terminal/stocks/screener/txt/test_finviz_view/test_screener_sort_matches[Ticker].txt6
-rw-r--r--website/content/sdk/quickstart/installation.md2
-rw-r--r--website/content/terminal/quickstart/installation.md4
52 files changed, 57964 insertions, 48679 deletions
diff --git a/build/docker/compose.env b/build/docker/compose.env
index e9a16381750..d434ae1d312 100644
--- a/build/docker/compose.env
+++ b/build/docker/compose.env
@@ -1,2 +1,2 @@
OPENBBTERMINAL_DOCKER_REGISTRY="ghcr.io"
-OPENBBTERMINAL_DOCKER_RELEASE_VERSION="2.5.0"
+OPENBBTERMINAL_DOCKER_RELEASE_VERSION="2.5.1"
diff --git a/build/docker/docker-compose.yaml b/build/docker/docker-compose.yaml
index 813891b7209..3d88dde0b2d 100644
--- a/build/docker/docker-compose.yaml
+++ b/build/docker/docker-compose.yaml
@@ -7,6 +7,6 @@ services:
- ~/OpenBBUserData:/home/python/OpenBBUserData
- ~/.openbb_terminal:/home/python/.openbb_terminal
platform: linux/amd64
- image: ghcr.io/openbb-finance/openbbterminal/openbb:2.5.0
+ image: ghcr.io/openbb-finance/openbbterminal/openbb:2.5.1
stdin_open: true # docker run -i
tty: true # docker run -t
diff --git a/build/docker/openbb.dockerfile b/build/docker/openbb.dockerfile
index bc7954aab64..8bdc95121ed 100644
--- a/build/docker/openbb.dockerfile
+++ b/build/docker/openbb.dockerfile
@@ -25,6 +25,7 @@ RUN apt-get -y install --no-install-recommends \
libxt6 \
libgl1-mesa-glx \
libpng16-16 \
+ ffmpeg \
python3-tk
RUN apt-get clean
diff --git a/build/nsis/setup.nsi b/build/nsis/setup.nsi
index ee19c383207..639faff9d54 100644
--- a/build/nsis/setup.nsi
+++ b/build/nsis/setup.nsi
@@ -10,7 +10,7 @@
!define NAME "OpenBB Terminal"
!define COMPANY "OpenBB"
!define APPFILE "OpenBBTerminal.exe"
- !define VERSION "2.5.0"
+ !define VERSION "2.5.1"
!define SLUG "${NAME} v${VERSION}"
;--------------------------------
diff --git a/build/pyinstaller/.env b/build/pyinstaller/.env
index 092aafe7856..4655fb47f4c 100644
--- a/build/pyinstaller/.env
+++ b/build/pyinstaller/.env
@@ -1,5 +1,5 @@
OPENBB_LOGGING_APP_NAME=gst_packaged
-OPENBB_LOGGING_COMMIT_HASH=sha:14e5b18
+OPENBB_LOGGING_COMMIT_HASH=sha:7c74b10
OPENBB_ENABLE_PREDICT=false
OPENBB_ENABLE_CHECK_API=true
OPENBB_ENABLE_THOUGHTS_DAY=false
diff --git a/openbb_terminal/cryptocurrency/discovery/dappradar_model.py b/openbb_terminal/cryptocurrency/discovery/dappradar_model.py
index 8c990289610..9e641063804 100644
--- a/openbb_terminal/cryptocurrency/discovery/dappradar_model.py
+++ b/openbb_terminal/cryptocurrency/discovery/dappradar_model.py
@@ -39,7 +39,7 @@ DEX_COLUMNS = [
@log_start_end(log=logger)
-def _make_request(url: str, verbose: bool = True) -> Optional[dict]:
+def _make_request(url: str, verbose: bool = False) -> Optional[dict]:
"""Helper method handles dappradar api requests. [Source: https://dappradar.com/]
Parameters
@@ -89,6 +89,8 @@ def get_top_nfts(sortby: str = "", limit: int = 10) -> pd.DataFrame:
NFTs Columns: Name, Protocols, Floor Price [$], Avg Price [$], Market Cap [$], Volume [$]
"""
+ sortby = sortby.replace("_", " ").title()
+
response = _make_request(
"https://nft-sales-service.dappradar.com/v2/collection/day?limit=20&p"
"age=1&currency=USD&sort=marketCapInFiat&order=desc"
@@ -113,7 +115,7 @@ def get_top_nfts(sortby: str = "", limit: int = 10) -> pd.DataFrame:
copy=False,
)
df["Protocols"] = df["Protocols"].apply(lambda x: ",".join(x))
- if sortby in NFT_COLUMNS:
+ if response and sortby in NFT_COLUMNS:
df = df.sort_values(by=sortby, ascending=False)
return df.head(limit)
return pd.DataFrame()
@@ -133,9 +135,14 @@ def get_top_dexes(sortby: str = "", limit: int = 10) -> pd.DataFrame:
pd.DataFrame
Top decentralized exchanges. Columns: Name, Daily Users, Daily Volume [$]
"""
+
+ sortby = sortby.replace("_", " ").title()
+
data = _make_request(
"https://dappradar.com/v2/api/dapps?params=WkdGd2NISmhaR0Z5Y0dGblpUMHhKbk5uY205MWNEMXR"
+ # pragma: allowlist nextline secret
"ZWGdtWTNWeWNtVnVZM2s5VlZORUptWmxZWFIxY21Wa1BURW1jbUZ1WjJVOVpHRjVKbU5oZEdWbmIzSjVQV1Y0WTJ"
+ # pragma: allowlist nextline secret
"oaGJtZGxjeVp6YjNKMFBYUnZkR0ZzVm05c2RXMWxTVzVHYVdGMEptOXlaR1Z5UFdSbGMyTW1iR2x0YVhROU1qWT0="
)
if data:
@@ -176,9 +183,15 @@ def get_top_games(sortby: str = "", limit: int = 10) -> pd.DataFrame:
pd.DataFrame
Top blockchain games. Columns: Name, Daily Users, Daily Volume [$]
"""
+
+ sortby = sortby.replace("_", " ").title()
+
data = _make_request(
+ # pragma: allowlist nextline secret
"https://dappradar.com/v2/api/dapps?params=WkdGd2NISmhaR0Z5Y0dGblpUMHhKbk5uY205MWNEMX"
+ # pragma: allowlist nextline secret
"RZWGdtWTNWeWNtVnVZM2s5VlZORUptWmxZWFIxY21Wa1BURW1jbUZ1WjJVOVpHRjVKbU5oZEdWbmIzSjVQV2R"
+ # pragma: allowlist nextline secret
"oYldWekpuTnZjblE5ZFhObGNpWnZjbVJsY2oxa1pYTmpKbXhwYldsMFBUSTI="
)
if data:
@@ -219,9 +232,15 @@ def get_top_dapps(sortby: str = "", limit: int = 10) -> pd.DataFrame:
Top decentralized exchanges.
Columns: Name, Category, Protocols, Daily Users, Daily Volume [$]
"""
+
+ sortby = sortby.replace("_", " ").title()
+
data = _make_request(
+ # pragma: allowlist nextline secret
"https://dappradar.com/v2/api/dapps?params=WkdGd2NISmhaR0Z5Y0dGblpUMHhKbk5uY205MWNEMX"
+ # pragma: allowlist nextline secret
"RZWGdtWTNWeWNtVnVZM2s5VlZORUptWmxZWFIxY21Wa1BURW1jbUZ1WjJVOVpHRjVKbk52Y25ROWRYTmxjaVp"
+ # pragma: allowlist nextline secret
"2Y21SbGNqMWtaWE5qSm14cGJXbDBQVEky",
False,
)
diff --git a/openbb_terminal/cryptocurrency/discovery/dappradar_view.py b/openbb_terminal/cryptocurrency/discovery/dappradar_view.py
index 1d91b16e474..c3db296e02c 100644
--- a/openbb_terminal/cryptocurrency/discovery/dappradar_view.py
+++ b/openbb_terminal/cryptocurrency/discovery/dappradar_view.py
@@ -39,7 +39,7 @@ def display_top_nfts(
df = dappradar_model.get_top_nfts(sortby, limit)
if df.empty:
- console.print("[red]Failed to fetch data from DappRadar[/red]\n")
+ console.print("[red]Failed to fetch data from DappRadar[/red]")
return
for col in ["Floor Price [$]", "Avg Price [$]", "Market Cap [$]", "Volume [$]"]:
if col in df.columns:
@@ -86,7 +86,7 @@ def display_top_games(
df = dappradar_model.get_top_games(sortby, limit)
if df.empty:
- console.print("[red]Failed to fetch data from DappRadar[/red]\n")
+ console.print("[red]Failed to fetch data from DappRadar[/red]")
return
for col in ["Daily Users", "Daily Volume [$]"]:
if col in df.columns:
@@ -128,7 +128,7 @@ def display_top_dexes(
df = dappradar_model.get_top_dexes(sortby, limit)
if df.empty:
- console.print("[red]Failed to fetch data from DappRadar[/red]\n")
+ console.print("[red]Failed to fetch data from DappRadar[/red]")
return
for col in ["Daily Users", "Daily Volume [$]"]:
if col in df.columns:
@@ -170,7 +170,7 @@ def display_top_dapps(
df = dappradar_model.get_top_dapps(sortby, limit)
if df.empty:
- console.print("[red]Failed to fetch data from DappRadar[/red]\n")
+ console.print("[red]Failed to fetch data from DappRadar[/red]")
return
for col in ["Daily Users", "Daily Volume [$]"]:
if col in df.columns:
diff --git a/openbb_terminal/cryptocurrency/discovery/discovery_controller.py b/openbb_terminal/cryptocurrency/discovery/discovery_controller.py
index 2dfdaae7d43..73268f3c317 100644
--- a/openbb_terminal/cryptocurrency/discovery/discovery_controller.py
+++ b/openbb_terminal/cryptocurrency/discovery/discovery_controller.py
@@ -26,6 +26,7 @@ from openbb_terminal.helper_funcs import (
from openbb_terminal.menu import session
from openbb_terminal.parent_classes import BaseController
from openbb_terminal.rich_config import MenuText, console, get_ordered_list_sources
+from openbb_terminal.stocks import stocks_helper
logger = logging.getLogger(__name__)
@@ -58,10 +59,18 @@ class DiscoveryController(BaseController):
ordered_list_sources_top = get_ordered_list_sources(f"{self.PATH}top")
if ordered_list_sources_top and ordered_list_sources_top[0] == "CoinGecko":
choices["top"]["--sort"] = {
- c: {} for c in pycoingecko_view.COINS_COLUMNS
+ c: {}
+ for c in stocks_helper.format_parse_choices(
+ pycoingecko_view.COINS_COLUMNS
+ )
}
else:
- choices["top"]["--sort"] = {c: {} for c in coinmarketcap_model.FILTERS}
+ choices["top"]["--sort"] = {
+ c: {}
+ for c in stocks_helper.format_parse_choices(
+ coinmarketcap_model.FILTERS
+ )
+ }
choices["top"]["-s"] = choices["top"]["--sort"]
@@ -128,7 +137,7 @@ class DiscoveryController(BaseController):
dest="sortby",
nargs="+",
help="Sort by given column. Default: Market Cap Rank",
- default=argument_sort_default,
+ default=stocks_helper.format_parse_choices([argument_sort_default]),
metavar="SORTBY",
)
parser.add_argument(
@@ -201,7 +210,7 @@ class DiscoveryController(BaseController):
nargs="+",
help="Sort by given column. Default: Daily Volume [$]",
default="Daily Volume [$]",
- choices=dappradar_model.DAPPS_COLUMNS,
+ choices=stocks_helper.format_parse_choices(dappradar_model.DAPPS_COLUMNS),
metavar="SORTBY",
)
ns_parser = self.parse_known_args_and_warn(
@@ -246,7 +255,7 @@ class DiscoveryController(BaseController):
nargs="+",
help="Sort by given column. Default: Daily Volume [$]",
default="Daily Volume [$]",
- choices=dappradar_model.DEX_COLUMNS,
+ choices=stocks_helper.format_parse_choices(dappradar_model.DEX_COLUMNS),
metavar="SORTBY",
)
ns_parser = self.parse_known_args_and_warn(
@@ -291,7 +300,7 @@ class DiscoveryController(BaseController):
nargs="+",
help="Sort by given column. Default: Daily Volume [$]",
default="Daily Volume [$]",
- choices=dappradar_model.DEX_COLUMNS,
+ choices=stocks_helper.format_parse_choices(dappradar_model.DEX_COLUMNS),
metavar="SORTBY",
)
ns_parser = self.parse_known_args_and_warn(
@@ -320,7 +329,6 @@ class DiscoveryController(BaseController):
to sort by column
""",
)
-
parser.add_argument(
"-l",
"--limit",
@@ -336,10 +344,9 @@ class DiscoveryController(BaseController):
nargs="+",
help="Sort by given column. Default: Market Cap",
default="Market Cap",
- choices=dappradar_model.NFT_COLUMNS,
+ choices=stocks_helper.format_parse_choices(dappradar_model.NFT_COLUMNS),
metavar="SORTBY",
)
-
ns_parser = self.parse_known_args_and_warn(
parser, other_args, EXPORT_ONLY_RAW_DATA_ALLOWED
)
@@ -394,9 +401,23 @@ class DiscoveryController(BaseController):
nargs="+",
help="Sort by given column. Default: Market Cap Rank",
default=["