diff options
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¤cy=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=[" |