diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 0b03c7f4c8f..3aabf25b586 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -43,7 +43,7 @@ jobs: restore-keys: ${{ runner.os }}-linting-${{ hashFiles('**/poetry.lock') }} - run: | - pip install bandit black codespell mypy==0.982 safety pylint==2.15.2 packaging==22 ruff==0.0.243 + pip install bandit black codespell mypy==1.0.0 safety pylint==2.15.2 ruff==0.0.243 pip install types-pytz types-requests types-termcolor types-tabulate types-PyYAML types-python-dateutil types-setuptools types-six - run: bandit -x ./tests -r . || true - run: black --diff --check . diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 724bfbffe97..a81cc22913b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -30,7 +30,7 @@ jobs: key: ${{ runner.os }}-linting-${{ hashFiles('**/poetry.lock') }} restore-keys: ${{ runner.os }}-linting-${{ hashFiles('**/poetry.lock') }} - - run: pip install bandit black codespell mypy==0.982 safety pylint==2.15.2 packaging==22 ruff==0.0.243 + - run: pip install bandit black codespell mypy==1.0.0 safety pylint==2.15.2 ruff==0.0.243 - run: pip install types-pytz types-requests types-termcolor types-tabulate types-PyYAML types-python-dateutil types-setuptools types-six - run: bandit -x ./tests -r . || true - run: black --diff --check . diff --git a/openbb_terminal/alternative/alt_controller.py b/openbb_terminal/alternative/alt_controller.py index dc67ecf93bc..60f8505d0df 100644 --- a/openbb_terminal/alternative/alt_controller.py +++ b/openbb_terminal/alternative/alt_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.alternative import hackernews_view @@ -26,7 +26,7 @@ class AlternativeDataController(BaseController): PATH = "/alternative/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/alternative/covid/covid_controller.py b/openbb_terminal/alternative/covid/covid_controller.py index 8f3b4dfb265..7ff3e0286d4 100644 --- a/openbb_terminal/alternative/covid/covid_controller.py +++ b/openbb_terminal/alternative/covid/covid_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import argparse import logging import pathlib -from typing import List +from typing import List, Optional import pandas as pd @@ -33,7 +33,7 @@ class CovidController(BaseController): PATH = "/alternative/covid/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/alternative/covid/covid_view.py b/openbb_terminal/alternative/covid/covid_view.py index ceca6ead5ef..ae08b6a378c 100644 --- a/openbb_terminal/alternative/covid/covid_view.py +++ b/openbb_terminal/alternative/covid/covid_view.py @@ -132,7 +132,7 @@ def display_covid_ov( raw: bool = False, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, plot: bool = True, ) -> None: """Prints table showing historical cases and deaths by country. @@ -184,7 +184,7 @@ def display_covid_stat( raw: bool = False, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, plot: bool = True, ) -> None: """Prints table showing historical cases and deaths by country. @@ -241,7 +241,7 @@ def display_case_slopes( threshold: int = 10000, ascend: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing countries with the highest case slopes. diff --git a/openbb_terminal/alternative/hackernews_view.py b/openbb_terminal/alternative/hackernews_view.py index cf607533d34..9af6fdede3d 100644 --- a/openbb_terminal/alternative/hackernews_view.py +++ b/openbb_terminal/alternative/hackernews_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.alternative.hackernews_model import get_stories from openbb_terminal.decorators import log_start_end @@ -12,7 +13,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_stories(limit: int = 10, export: str = "", sheet_name: str = None) -> None: +def display_stories( + limit: int = 10, export: str = "", sheet_name: Optional[str] = None +) -> None: """View top stories from HackerNews. Parameters ---------- diff --git a/openbb_terminal/alternative/oss/github_view.py b/openbb_terminal/alternative/oss/github_view.py index aa263b8dc47..e2b925c7ee9 100644 --- a/openbb_terminal/alternative/oss/github_view.py +++ b/openbb_terminal/alternative/oss/github_view.py @@ -31,7 +31,7 @@ logger = logging.getLogger(__name__) def display_star_history( repo: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots repo summary [Source: https://api.github.com]. @@ -79,7 +79,7 @@ def display_top_repos( categories: str = "", limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots repo summary [Source: https://api.github.com]. @@ -139,7 +139,9 @@ def display_top_repos( @log_start_end(log=logger) -def display_repo_summary(repo: str, export: str = "", sheet_name: str = None) -> None: +def display_repo_summary( + repo: str, export: str = "", sheet_name: Optional[str] = None +) -> None: """Prints table showing repo summary [Source: https://api.github.com]. Parameters diff --git a/openbb_terminal/alternative/oss/oss_controller.py b/openbb_terminal/alternative/oss/oss_controller.py index 0f5313b6123..edc4ac15298 100644 --- a/openbb_terminal/alternative/oss/oss_controller.py +++ b/openbb_terminal/alternative/oss/oss_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.alternative.oss import github_view, runa_model, runa_view @@ -29,7 +29,7 @@ class OSSController(BaseController): PATH = "/alternative/oss/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/alternative/oss/runa_view.py b/openbb_terminal/alternative/oss/runa_view.py index 93b79c32225..0a41a60b949 100644 --- a/openbb_terminal/alternative/oss/runa_view.py +++ b/openbb_terminal/alternative/oss/runa_view.py @@ -35,7 +35,7 @@ def display_rossindex( show_growth: bool = True, chart_type: str = "stars", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots list of startups from ross index [Source: https://runacap.com/] diff --git a/openbb_terminal/alternative/realestate/realestate_controller.py b/openbb_terminal/alternative/realestate/realestate_controller.py index 5944bb35758..fe48ded275c 100644 --- a/openbb_terminal/alternative/realestate/realestate_controller.py +++ b/openbb_terminal/alternative/realestate/realestate_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import argparse import logging from datetime import datetime, timedelta -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.alternative.realestate import landRegistry_view @@ -40,7 +40,7 @@ class RealEstateController(BaseController): CHOICES_GENERATION = True # FILE_PATH = os.path.join(os.path.dirname(__file__), "README.md") - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Construct Data.""" super().__init__(queue) diff --git a/openbb_terminal/common/behavioural_analysis/finbrain_view.py b/openbb_terminal/common/behavioural_analysis/finbrain_view.py index 7d0ee33ce97..15304e02df0 100644 --- a/openbb_terminal/common/behavioural_analysis/finbrain_view.py +++ b/openbb_terminal/common/behavioural_analysis/finbrain_view.py @@ -36,7 +36,7 @@ def display_sentiment_analysis( symbol: str, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots Sentiment analysis from FinBrain. Prints table if raw is True. [Source: FinBrain] diff --git a/openbb_terminal/common/behavioural_analysis/finnhub_view.py b/openbb_terminal/common/behavioural_analysis/finnhub_view.py index 0cdaf3b7d09..fbf69c2765b 100644 --- a/openbb_terminal/common/behavioural_analysis/finnhub_view.py +++ b/openbb_terminal/common/behavioural_analysis/finnhub_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import pandas as pd @@ -16,7 +17,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) @check_api_key(["API_FINNHUB_KEY"]) -def display_sentiment_stats(ticker: str, export: str = "", sheet_name: str = None): +def display_sentiment_stats( + ticker: str, export: str = "", sheet_name: Optional[str] = None +): """ Prints Sentiment stats which displays buzz, news score, articles last week, articles weekly average, bullish vs bearish percentages, sector average bullish percentage, and sector average news score diff --git a/openbb_terminal/common/behavioural_analysis/google_view.py b/openbb_terminal/common/behavioural_analysis/google_view.py index 0350337f467..a8d84460928 100644 --- a/openbb_terminal/common/behavioural_analysis/google_view.py +++ b/openbb_terminal/common/behavioural_analysis/google_view.py @@ -27,7 +27,7 @@ def display_mentions( symbol: str, start_date: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots weekly bars of stock's interest over time. other users watchlist. [Source: Google]. @@ -97,7 +97,7 @@ def display_correlation_interest( data: pd.DataFrame, words: List[str], export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots interest over time of words/sentences versus stock price. [Source: Google]. @@ -173,7 +173,7 @@ def display_regions( symbol: str, limit: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots bars of regions based on stock's interest. [Source: Google]. @@ -229,7 +229,7 @@ def display_regions( @log_start_end(log=logger) def display_queries( - symbol: str, limit: int = 5, export: str = "", sheet_name: str = None + symbol: str, limit: int = 5, export: str = "", sheet_name: Optional[str] = None ): """Prints table showing top related queries with this stock's query. [Source: Google]. @@ -268,7 +268,7 @@ def display_queries( @log_start_end(log=logger) def display_rise( - symbol: str, limit: int = 10, export: str = "", sheet_name: str = None + symbol: str, limit: int = 10, export: str = "", sheet_name: Optional[str] = None ): """Prints top rising related queries with this stock's query. [Source: Google]. diff --git a/openbb_terminal/common/behavioural_analysis/reddit_view.py b/openbb_terminal/common/behavioural_analysis/reddit_view.py index 06f1e6b7e30..67eca405cc2 100644 --- a/openbb_terminal/common/behavioural_analysis/reddit_view.py +++ b/openbb_terminal/common/behavioural_analysis/reddit_view.py @@ -196,7 +196,7 @@ def display_popular_tickers( post_limit: int = 50, subreddits: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Prints table showing latest popular tickers. [Source: Reddit]. @@ -412,7 +412,7 @@ def display_redditsent( subreddits: str = "all", display: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots Reddit sentiment about a search term. Prints table showing if display is True. diff --git a/openbb_terminal/common/behavioural_analysis/twitter_view.py b/openbb_terminal/common/behavioural_analysis/twitter_view.py index b78438a12ed..9a280b3e911 100644 --- a/openbb_terminal/common/behavioural_analysis/twitter_view.py +++ b/openbb_terminal/common/behavioural_analysis/twitter_view.py @@ -27,7 +27,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def display_inference( - symbol: str, limit: int = 100, export: str = "", sheet_name: str = None + symbol: str, limit: int = 100, export: str = "", sheet_name: Optional[str] = None ): """Prints Inference sentiment from past n tweets. @@ -92,7 +92,7 @@ def display_sentiment( n_days_past: int = 2, compare: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots sentiments from symbol diff --git a/openbb_terminal/common/feedparser_view.py b/openbb_terminal/common/feedparser_view.py index 5343fba8f0f..f504a8da577 100644 --- a/openbb_terminal/common/feedparser_view.py +++ b/openbb_terminal/common/feedparser_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.common import feedparser_model from openbb_terminal.decorators import log_start_end @@ -18,7 +19,7 @@ def display_news( sources: str = "", limit: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, sort: str = "published", ): """Plots news for a given term and source. [Source: Feedparser] diff --git a/openbb_terminal/common/newsapi_view.py b/openbb_terminal/common/newsapi_view.py index 893f4e3bf8e..b593ad11056 100644 --- a/openbb_terminal/common/newsapi_view.py +++ b/openbb_terminal/common/newsapi_view.py @@ -23,7 +23,7 @@ def display_news( show_newest: bool = True, sources: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing news for a given term. [Source: NewsAPI] diff --git a/openbb_terminal/common/quantitative_analysis/qa_view.py b/openbb_terminal/common/quantitative_analysis/qa_view.py index dd6830cae29..59f911335dd 100644 --- a/openbb_terminal/common/quantitative_analysis/qa_view.py +++ b/openbb_terminal/common/quantitative_analysis/qa_view.py @@ -51,7 +51,7 @@ def lambda_color_red(val: Any) -> str: @log_start_end(log=logger) def display_summary( - data: pd.DataFrame, export: str = "", sheet_name: str = None + data: pd.DataFrame, export: str = "", sheet_name: Optional[str] = None ) -> None: """Prints table showing summary statistics @@ -164,7 +164,7 @@ def display_cdf( target: str, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots Cumulative Distribution Function @@ -665,7 +665,7 @@ def display_seasonal( target: str, multiplicative: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots seasonal decomposition data @@ -810,7 +810,7 @@ def display_seasonal( @log_start_end(log=logger) def display_normality( - data: pd.DataFrame, target: str, export: str = "", sheet_name: str = None + data: pd.DataFrame, target: str, export: str = "", sheet_name: Optional[str] = None ) -> None: """Prints table showing normality statistics @@ -852,7 +852,7 @@ def display_unitroot( fuller_reg: str = "c", kpss_reg: str = "c", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Prints table showing unit root test calculations @@ -895,7 +895,7 @@ def display_raw( ascend: bool = False, limit: int = 20, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing raw stock data @@ -956,7 +956,7 @@ def display_line( markers_lines: Optional[List[datetime]] = None, markers_scatter: Optional[List[datetime]] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Display line plot of data diff --git a/openbb_terminal/common/quantitative_analysis/rolling_view.py b/openbb_terminal/common/quantitative_analysis/rolling_view.py index ce84c02ce5a..00a3567cef6 100644 --- a/openbb_terminal/common/quantitative_analysis/rolling_view.py +++ b/openbb_terminal/common/quantitative_analysis/rolling_view.py @@ -29,7 +29,7 @@ def display_mean_std( symbol: str = "", window: int = 14, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots mean std deviation @@ -142,7 +142,7 @@ def display_spread( symbol: str = "", window: int = 14, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots rolling spread @@ -257,7 +257,7 @@ def display_quantile( window: int = 14, quantile: float = 0.5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots rolling quantile @@ -356,7 +356,7 @@ def display_skew( target: str, window: int = 14, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots rolling skew @@ -443,7 +443,7 @@ def display_kurtosis( target: str, window: int = 14, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots rolling kurtosis diff --git a/openbb_terminal/common/technical_analysis/custom_indicators_model.py b/openbb_terminal/common/technical_analysis/custom_indicators_model.py index 911fecbc463..384ffa9817f 100644 --- a/openbb_terminal/common/technical_analysis/custom_indicators_model.py +++ b/openbb_terminal/common/technical_analysis/custom_indicators_model.py @@ -2,7 +2,7 @@ __docformat__ = "numpy" import logging -from typing import Any, Tuple +from typing import Any, Optional, Tuple import pandas as pd @@ -17,8 +17,8 @@ logger = logging.getLogger(__name__) def calculate_fib_levels( data: pd.DataFrame, limit: int = 120, - start_date: Any = None, - end_date: Any = None, + start_date: Optional[Any] = None, + end_date: Optional[Any] = None, ) -> Tuple[pd.DataFrame, pd.Timestamp, pd.Timestamp, float, float]: """Calculate Fibonacci levels diff --git a/openbb_terminal/common/technical_analysis/custom_indicators_view.py b/openbb_terminal/common/technical_analysis/custom_indicators_view.py index da3be043bf3..3d5880cdb2a 100644 --- a/openbb_terminal/common/technical_analysis/custom_indicators_view.py +++ b/openbb_terminal/common/technical_analysis/custom_indicators_view.py @@ -35,7 +35,7 @@ def fibonacci_retracement( end_date: Optional[Union[str, None]] = None, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots Calculated fibonacci retracement levels diff --git a/openbb_terminal/common/technical_analysis/momentum_view.py b/openbb_terminal/common/technical_analysis/momentum_view.py index e9854f61f04..dca54f28b71 100644 --- a/openbb_terminal/common/technical_analysis/momentum_view.py +++ b/openbb_terminal/common/technical_analysis/momentum_view.py @@ -36,7 +36,7 @@ def display_cci( scalar: float = 0.0015, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots CCI Indicator @@ -131,7 +131,7 @@ def display_macd( n_signal: int = 9, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots MACD signal @@ -226,7 +226,7 @@ def display_rsi( drift: int = 1, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots RSI Indicator @@ -316,7 +316,7 @@ def display_stoch( slowkperiod: int = 3, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots stochastic oscillator signal @@ -415,7 +415,7 @@ def display_fisher( window: int = 14, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots Fisher Indicator @@ -510,7 +510,7 @@ def display_cg( window: int = 14, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots center of gravity Indicator @@ -583,7 +583,7 @@ def display_clenow_momentum( symbol: str = "", window: int = 90, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Prints table and plots clenow momentum diff --git a/openbb_terminal/common/technical_analysis/overlap_view.py b/openbb_terminal/common/technical_analysis/overlap_view.py index 98b0264e8f7..420f6d20f0b 100644 --- a/openbb_terminal/common/technical_analysis/overlap_view.py +++ b/openbb_terminal/common/technical_analysis/overlap_view.py @@ -33,12 +33,12 @@ register_matplotlib_converters() @log_start_end(log=logger) def view_ma( data: pd.Series, - window: List[int] = None, + window: Optional[List[int]] = None, offset: int = 0, ma_type: str = "EMA", symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots MA technical indicator @@ -144,7 +144,7 @@ def view_vwap( offset: int = 0, interval: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots VWMA technical indicator diff --git a/openbb_terminal/common/technical_analysis/trend_indicators_view.py b/openbb_terminal/common/technical_analysis/trend_indicators_view.py index 062ad619fd3..ce2a31d4eec 100644 --- a/openbb_terminal/common/technical_analysis/trend_indicators_view.py +++ b/openbb_terminal/common/technical_analysis/trend_indicators_view.py @@ -33,7 +33,7 @@ def display_adx( drift: int = 1, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots ADX indicator @@ -125,7 +125,7 @@ def display_aroon( scalar: int = 100, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots Aroon indicator diff --git a/openbb_terminal/common/technical_analysis/volatility_view.py b/openbb_terminal/common/technical_analysis/volatility_view.py index 77f41fcc53a..e9e7c0fe065 100644 --- a/openbb_terminal/common/technical_analysis/volatility_view.py +++ b/openbb_terminal/common/technical_analysis/volatility_view.py @@ -32,7 +32,7 @@ def display_bbands( n_std: float = 2, mamode: str = "sma", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots bollinger bands @@ -118,7 +118,7 @@ def display_donchian( upper_length: int = 20, lower_length: int = 20, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots donchian channels @@ -204,7 +204,7 @@ def view_kc( offset: int = 0, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots Keltner Channels Indicator @@ -302,7 +302,7 @@ def display_atr( mamode: str = "sma", offset: int = 0, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots ATR diff --git a/openbb_terminal/common/technical_analysis/volume_view.py b/openbb_terminal/common/technical_analysis/volume_view.py index 2616c05a590..2340e194bcb 100644 --- a/openbb_terminal/common/technical_analysis/volume_view.py +++ b/openbb_terminal/common/technical_analysis/volume_view.py @@ -29,7 +29,7 @@ def display_ad( use_open: bool = False, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots AD technical indicator @@ -148,7 +148,7 @@ def display_adosc( use_open: bool = False, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots AD Osc Indicator @@ -255,7 +255,7 @@ def display_obv( data: pd.DataFrame, symbol: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots OBV technical indicator diff --git a/openbb_terminal/core/library/trail_map.py b/openbb_terminal/core/library/trail_map.py index 05f48d950e9..9ab81295140 100644 --- a/openbb_terminal/core/library/trail_map.py +++ b/openbb_terminal/core/library/trail_map.py @@ -62,14 +62,16 @@ class TrailMap: ) @classmethod - def load_csv(cls, path: Path = None) -> Dict[str, Dict[str, str]]: + def load_csv(cls, path: Optional[Path] = None) -> Dict[str, Dict[str, str]]: path = path or cls.MAP_PATH df = pd.read_csv(path, keep_default_na=False) df.set_index("trail", inplace=True) return df.to_dict(orient="index") @classmethod - def save_csv(cls, map_dict: Dict[str, Dict[str, str]], path: Path = None) -> None: + def save_csv( + cls, map_dict: Dict[str, Dict[str, str]], path: Optional[Path] = None + ) -> None: path = path or cls.MAP_PATH df = pd.DataFrame.from_dict(data=map_dict, orient="index") df.index.name = "trail" diff --git a/openbb_terminal/core/log/generation/expired_files.py b/openbb_terminal/core/log/generation/expired_files.py index c6cc71609e5..5b807cb2180 100644 --- a/openbb_terminal/core/log/generation/expired_files.py +++ b/openbb_terminal/core/log/generation/expired_files.py @@ -15,7 +15,7 @@ def get_timestamp_from_x_days(x: int) -> float: def get_expired_file_list(directory: Path, before_timestamp: float) -> List[Path]: expired_files = list() - if directory.exists and directory.is_dir(): + if directory.exists and directory.is_dir(): # type: ignore for file in directory.iterdir(): if file.is_file() and file.lstat().st_mtime < before_timestamp: expired_files.append(file) diff --git a/openbb_terminal/cryptocurrency/crypto_controller.py b/openbb_terminal/cryptocurrency/crypto_controller.py index 7d77471c1ff..8f571f8fd13 100644 --- a/openbb_terminal/cryptocurrency/crypto_controller.py +++ b/openbb_terminal/cryptocurrency/crypto_controller.py @@ -5,7 +5,7 @@ __docformat__ = "numpy" import argparse import logging import os -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.cryptocurrency import cryptocurrency_helpers, pyth_model, pyth_view @@ -82,7 +82,7 @@ class CryptoController(CryptoBaseController): FILE_PATH = os.path.join(os.path.dirname(__file__), "README.md") CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/cryptocurrency/crypto_views.py b/openbb_terminal/cryptocurrency/crypto_views.py index d15d2803b64..d620fa2d4d1 100644 --- a/openbb_terminal/cryptocurrency/crypto_views.py +++ b/openbb_terminal/cryptocurrency/crypto_views.py @@ -1,4 +1,5 @@ import os +from typing import Optional from openbb_terminal.cryptocurrency import crypto_models from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -10,7 +11,7 @@ def find( key: str = "symbol", limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Find similar coin by coin name,symbol or id. diff --git a/openbb_terminal/cryptocurrency/cryptocurrency_helpers.py b/openbb_terminal/cryptocurrency/cryptocurrency_helpers.py index a8aee527798..b3f3a15924e 100644 --- a/openbb_terminal/cryptocurrency/cryptocurrency_helpers.py +++ b/openbb_terminal/cryptocurrency/cryptocurrency_helpers.py @@ -114,7 +114,7 @@ YF_CURRENCY = [ def check_datetime( - ck_date: Union[datetime, Union[str, None]] = None, start: bool = True + ck_date: Optional[Union[datetime, Union[str, None]]] = None, start: bool = True ) -> datetime: """Checks if given argument is string and attempts to convert to datetime. @@ -487,11 +487,11 @@ def load_from_yahoofinance( def load( symbol: str, - start_date: Union[datetime, Union[str, None]] = None, + start_date: Optional[Union[datetime, Union[str, None]]] = None, interval: Union[str, int] = "1440", exchange: str = "binance", to_symbol: str = "usdt", - end_date: Union[datetime, Union[str, None]] = None, + end_date: Optional[Union[datetime, Union[str, None]]] = None, source: str = "CCXT", ) -> pd.DataFrame: """Load crypto currency to get data for @@ -815,9 +815,9 @@ def plot_chart( def plot_candles( # pylint: disable=too-many-arguments symbol: str, - data: pd.DataFrame = None, - start_date: Union[datetime, Union[str, None]] = None, - end_date: Union[datetime, Union[str, None]] = None, + data: Optional[pd.DataFrame] = None, + start_date: Optional[Union[datetime, Union[str, None]]] = None, + end_date: Optional[Union[datetime, Union[str, None]]] = None, interval: Union[str, int] = "1440", exchange: str = "binance", to_symbol: str = "usdt", diff --git a/openbb_terminal/cryptocurrency/defi/coindix_view.py b/openbb_terminal/cryptocurrency/defi/coindix_view.py index cd516789828..b656051164d 100644 --- a/openbb_terminal/cryptocurrency/defi/coindix_view.py +++ b/openbb_terminal/cryptocurrency/defi/coindix_view.py @@ -24,7 +24,7 @@ def display_defi_vaults( ascend: bool = True, link: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing Top DeFi Vaults - pools of funds with an assigned strategy which main goal is to maximize returns of its crypto assets. [Source: https://coindix.com/] diff --git a/openbb_terminal/cryptocurrency/defi/cryptosaurio_view.py b/openbb_terminal/cryptocurrency/defi/cryptosaurio_view.py index 2be97026975..2e73310957a 100644 --- a/openbb_terminal/cryptocurrency/defi/cryptosaurio_view.py +++ b/openbb_terminal/cryptocurrency/defi/cryptosaurio_view.py @@ -26,7 +26,7 @@ logger = logging.getLogger(__name__) def display_anchor_data( address: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, show_transactions: bool = False, external_axes: Optional[List[plt.Axes]] = None, ) -> None: diff --git a/openbb_terminal/cryptocurrency/defi/defi_controller.py b/openbb_terminal/cryptocurrency/defi/defi_controller.py index 56b6244dd9d..26d9022b59b 100644 --- a/openbb_terminal/cryptocurrency/defi/defi_controller.py +++ b/openbb_terminal/cryptocurrency/defi/defi_controller.py @@ -5,7 +5,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.cryptocurrency.defi import ( @@ -62,7 +62,7 @@ class DefiController(BaseController): PATH = "/crypto/defi/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/cryptocurrency/defi/graph_view.py b/openbb_terminal/cryptocurrency/defi/graph_view.py index f8402019a82..c0ce5c68360 100644 --- a/openbb_terminal/cryptocurrency/defi/graph_view.py +++ b/openbb_terminal/cryptocurrency/defi/graph_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.cryptocurrency.dataframe_helpers import ( lambda_very_long_number_formatter, @@ -23,7 +24,7 @@ def display_uni_tokens( sortby: str = "index", ascend: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing tokens trade-able on Uniswap DEX. [Source: https://thegraph.com/en/] @@ -73,7 +74,7 @@ def display_uni_tokens( @log_start_end(log=logger) -def display_uni_stats(export: str = "", sheet_name: str = None) -> None: +def display_uni_stats(export: str = "", sheet_name: Optional[str] = None) -> None: """Prints table showing base statistics about Uniswap DEX. [Source: https://thegraph.com/en/] [Source: https://thegraph.com/en/] @@ -113,7 +114,7 @@ def display_recently_added( sortby: str = "created", ascend: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing Lastly added pairs on Uniswap DEX. [Source: https://thegraph.com/en/] @@ -179,7 +180,7 @@ def display_uni_pools( sortby: str = "volumeUSD", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing uniswap pools by volume. [Source: https://thegraph.com/en/] @@ -232,7 +233,7 @@ def display_last_uni_swaps( sortby: str = "timestamp", ascend: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing last swaps done on Uniswap [Source: https://thegraph.com/en/] diff --git a/openbb_terminal/cryptocurrency/defi/llama_view.py b/openbb_terminal/cryptocurrency/defi/llama_view.py index 9354e518baf..a9b180b4cf9 100644 --- a/openbb_terminal/cryptocurrency/defi/llama_view.py +++ b/openbb_terminal/cryptocurrency/defi/llama_view.py @@ -28,7 +28,7 @@ logger = logging.getLogger(__name__) def display_grouped_defi_protocols( limit: int = 50, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots top dApps (in terms of TVL) grouped by chain. @@ -101,7 +101,7 @@ def display_defi_protocols( ascend: bool = False, description: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing information about listed DeFi protocols, their current TVL and changes to it in the last hour/day/week. [Source: https://docs.llama.fi/api] @@ -137,7 +137,7 @@ def display_defi_protocols( def display_historical_tvl( dapps: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots historical TVL of different dApps @@ -196,7 +196,7 @@ def display_historical_tvl( def display_defi_tvl( limit: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots historical values of the total sum of TVLs from all listed protocols. diff --git a/openbb_terminal/cryptocurrency/defi/smartstake_view.py b/openbb_terminal/cryptocurrency/defi/smartstake_view.py index 142bd48277e..67d594cc063 100644 --- a/openbb_terminal/cryptocurrency/defi/smartstake_view.py +++ b/openbb_terminal/cryptocurrency/defi/smartstake_view.py @@ -28,7 +28,7 @@ logger = logging.getLogger(__name__) def display_luna_circ_supply_change( days: int = 30, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, supply_type: str = "lunaSupplyChallengeStats", limit: int = 5, external_axes: Optional[List[plt.Axes]] = None, diff --git a/openbb_terminal/cryptocurrency/defi/substack_view.py b/openbb_terminal/cryptocurrency/defi/substack_view.py index d5ae2135262..3f93605c844 100644 --- a/openbb_terminal/cryptocurrency/defi/substack_view.py +++ b/openbb_terminal/cryptocurrency/defi/substack_view.py @@ -4,6 +4,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.cryptocurrency.defi import substack_model from openbb_terminal.decorators import log_start_end @@ -14,7 +15,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def display_newsletters( - limit: int = 10, export: str = "", sheet_name: str = None + limit: int = 10, export: str = "", sheet_name: Optional[str] = None ) -> None: """Prints table showing DeFi related substack newsletters. [Source: substack.com] diff --git a/openbb_terminal/cryptocurrency/defi/terraengineer_view.py b/openbb_terminal/cryptocurrency/defi/terraengineer_view.py index 447a9e633e7..39eb317acbb 100644 --- a/openbb_terminal/cryptocurrency/defi/terraengineer_view.py +++ b/openbb_terminal/cryptocurrency/defi/terraengineer_view.py @@ -28,7 +28,7 @@ def display_terra_asset_history( asset: str = "", address: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots the 30-day history of specified asset in terra address @@ -84,7 +84,7 @@ def display_terra_asset_history( @log_start_end(log=logger) def display_anchor_yield_reserve( export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots the 30-day history of the Anchor Yield Reserve. diff --git a/openbb_terminal/cryptocurrency/defi/terramoney_fcd_view.py b/openbb_terminal/cryptocurrency/defi/terramoney_fcd_view.py index 3d56552fbe6..e1f29b73820 100644 --- a/openbb_terminal/cryptocurrency/defi/terramoney_fcd_view.py +++ b/openbb_terminal/cryptocurrency/defi/terramoney_fcd_view.py @@ -30,7 +30,10 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def display_account_staking_info( - address: str = "", limit: int = 10, export: str = "", sheet_name: str = None + address: str = "", + limit: int = 10, + export: str = "", + sheet_name: Optional[str] = None, ) -> None: """Prints table showing staking info for provided terra account address [Source: https://fcd.terra.dev/swagger] @@ -67,7 +70,7 @@ def display_validators( sortby: str = "votingPower", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing information about terra validators [Source: https://fcd.terra.dev/swagger] @@ -117,7 +120,7 @@ def display_gov_proposals( sortby: str = "id", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing terra blockchain governance proposals list [Source: https://fcd.terra.dev/swagger] @@ -154,7 +157,7 @@ def display_account_growth( cumulative: bool = False, limit: int = 90, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots terra blockchain account growth history [Source: https://fcd.terra.dev/swagger] @@ -222,7 +225,7 @@ def display_account_growth( def display_staking_ratio_history( limit: int = 90, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots terra blockchain staking ratio history [Source: https://fcd.terra.dev/v1] @@ -271,7 +274,7 @@ def display_staking_ratio_history( def display_staking_returns_history( limit: int = 90, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots terra blockchain staking returns history [Source: https://fcd.terra.dev/swagger] diff --git a/openbb_terminal/cryptocurrency/discovery/coinmarketcap_view.py b/openbb_terminal/cryptocurrency/discovery/coinmarketcap_view.py index 240de352ae6..0a197cc45a1 100644 --- a/openbb_terminal/cryptocurrency/discovery/coinmarketcap_view.py +++ b/openbb_terminal/cryptocurrency/discovery/coinmarketcap_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.cryptocurrency.discovery import coinmarketcap_model from openbb_terminal.decorators import check_api_key, log_start_end @@ -19,7 +20,7 @@ def display_cmc_top_coins( sortby: str = "CMC_Rank", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing top n coins. [Source: CoinMarketCap] diff --git a/openbb_terminal/cryptocurrency/discovery/coinpaprika_view.py b/openbb_terminal/cryptocurrency/discovery/coinpaprika_view.py index 2ea546c6da5..2682ea9300e 100644 --- a/openbb_terminal/cryptocurrency/discovery/coinpaprika_view.py +++ b/openbb_terminal/cryptocurrency/discovery/coinpaprika_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import openbb_terminal.cryptocurrency.discovery.coinpaprika_model as paprika from openbb_terminal.decorators import log_start_end @@ -20,7 +21,7 @@ def display_search_results( sortby: str = "id", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing Search over CoinPaprika. [Source: CoinPaprika] diff --git a/openbb_terminal/cryptocurrency/discovery/dappradar_view.py b/openbb_terminal/cryptocurrency/discovery/dappradar_view.py index 0d846fc32ab..1d91b16e474 100644 --- a/openbb_terminal/cryptocurrency/discovery/dappradar_view.py +++ b/openbb_terminal/cryptocurrency/discovery/dappradar_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import numpy as np @@ -19,7 +20,10 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def display_top_nfts( - limit: int = 10, sortby: str = "", export: str = "", sheet_name: str = None + limit: int = 10, + sortby: str = "", + export: str = "", + sheet_name: Optional[str] = None, ) -> None: """Prints table showing top nft collections [Source: https://dappradar.com/] @@ -63,7 +67,10 @@ def display_top_nfts( @log_start_end(log=logger) def display_top_games( - limit: int = 10, export: str = "", sheet_name: str = None, sortby: str = "" + limit: int = 10, + export: str = "", + sheet_name: Optional[str] = None, + sortby: str = "", ) -> None: """Prints table showing top blockchain games [Source: https://dappradar.com/] @@ -102,7 +109,10 @@ def display_top_games( @log_start_end(log=logger) def display_top_dexes( - limit: int = 10, export: str = "", sheet_name: str = None, sortby: str = "" + limit: int = 10, + export: str = "", + sheet_name: Optional[str] = None, + sortby: str = "", ) -> None: """Prints table showing top decentralized exchanges [Source: https://dappradar.com/] @@ -141,7 +151,10 @@ def display_top_dexes( @log_start_end(log=logger) def display_top_dapps( - limit: int = 10, export: str = "", sheet_name: str = None, sortby: str = "" + limit: int = 10, + export: str = "", + sheet_name: Optional[str] = None, + sortby: str = "", ) -> None: """Prints table showing top decentralized exchanges [Source: https://dappradar.com/] diff --git a/openbb_terminal/cryptocurrency/discovery/discovery_controller.py b/openbb_terminal/cryptocurrency/discovery/discovery_controller.py index ceceeb65908..93f66931c22 100644 --- a/openbb_terminal/cryptocurrency/discovery/discovery_controller.py +++ b/openbb_terminal/cryptocurrency/discovery/discovery_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" # pylint: disable=R0904, C0302, W0622, C0201 import argparse import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.cryptocurrency.discovery import ( @@ -48,7 +48,7 @@ class DiscoveryController(BaseController): PATH = "/crypto/disc/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/cryptocurrency/discovery/pycoingecko_view.py b/openbb_terminal/cryptocurrency/discovery/pycoingecko_view.py index 9012f774706..daeeeddbfcb 100644 --- a/openbb_terminal/cryptocurrency/discovery/pycoingecko_view.py +++ b/openbb_terminal/cryptocurrency/discovery/pycoingecko_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from pandas.plotting import register_matplotlib_converters @@ -37,7 +38,7 @@ def display_coins( limit: int = 250, sortby: str = "Symbol", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ascend: bool = False, ) -> None: """Prints table showing top coins [Source: CoinGecko] @@ -104,7 +105,7 @@ def display_gainers( limit: int = 20, sortby: str = "market_cap_rank", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing Largest Gainers - coins which gain the most in given period. [Source: CoinGecko] @@ -150,7 +151,7 @@ def display_losers( interval: str = "1h", limit: int = 20, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, sortby: str = "Market Cap Rank", ) -> None: """Prints table showing Largest Losers - coins which lost the most in given period of time. [Source: CoinGecko] @@ -193,7 +194,7 @@ def display_losers( @log_start_end(log=logger) -def display_trending(export: str = "", sheet_name: str = None) -> None: +def display_trending(export: str = "", sheet_name: Optional[str] = None) -> None: """Prints table showing trending coins [Source: CoinGecko] Parameters diff --git a/openbb_terminal/cryptocurrency/due_diligence/binance_view.py b/openbb_terminal/cryptocurrency/due_diligence/binance_view.py index 3873911b38b..1dbde0a30ef 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/binance_view.py +++ b/openbb_terminal/cryptocurrency/due_diligence/binance_view.py @@ -26,7 +26,7 @@ def display_order_book( limit: int = 100, to_symbol: str = "USDT", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots order book for currency. [Source: Binance] @@ -66,7 +66,10 @@ def display_order_book( @log_start_end(log=logger) def display_balance( - from_symbol: str, to_symbol: str = "USDT", export: str = "", sheet_name: str = None + from_symbol: str, + to_symbol: str = "USDT", + export: str = "", + sheet_name: Optional[str] = None, ) -> None: """Prints table showing account holdings for asset. [Source: Binance] diff --git a/openbb_terminal/cryptocurrency/due_diligence/ccxt_view.py b/openbb_terminal/cryptocurrency/due_diligence/ccxt_view.py index a5a1d964767..e700cdd2b27 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/ccxt_view.py +++ b/openbb_terminal/cryptocurrency/due_diligence/ccxt_view.py @@ -22,7 +22,7 @@ def display_order_book( symbol: str, to_symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots order book for a coin in a given exchange @@ -69,7 +69,7 @@ def display_trades( to_symbol: str, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Prints table showing trades for a coin in a given exchange [Source: https://docs.ccxt.com/en/latest/manual.html] diff --git a/openbb_terminal/cryptocurrency/due_diligence/coinbase_view.py b/openbb_terminal/cryptocurrency/due_diligence/coinbase_view.py index f21ff0cb17c..d8fe9272f23 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/coinbase_view.py +++ b/openbb_terminal/cryptocurrency/due_diligence/coinbase_view.py @@ -23,7 +23,7 @@ register_matplotlib_converters() def display_order_book( symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots a list of available currency pairs for trading. [Source: Coinbase] @@ -55,7 +55,7 @@ def display_trades( limit: int = 20, side: Optional[str] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing last N trades for chosen trading pair. [Source: Coinbase] @@ -86,7 +86,10 @@ def display_trades( @log_start_end(log=logger) def display_candles( - symbol: str, interval: str = "24hour", export: str = "", sheet_name: str = None + symbol: str, + interval: str = "24hour", + export: str = "", + sheet_name: Optional[str] = None, ) -> None: """Prints table showing candles for chosen trading pair and time interval. [Source: Coinbase] @@ -116,7 +119,9 @@ def display_candles( @log_start_end(log=logger) -def display_stats(symbol: str, export: str = "", sheet_name: str = None) -> None: +def display_stats( + symbol: str, export: str = "", sheet_name: Optional[str] = None +) -> None: """Prints table showing 24 hr stats for the product. Volume is in base currency units. Open, high and low are in quote currency units. [Source: Coinbase] diff --git a/openbb_terminal/cryptocurrency/due_diligence/coinglass_view.py b/openbb_terminal/cryptocurrency/due_diligence/coinglass_view.py index e67bf8bc851..c6f6ce4a245 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/coinglass_view.py +++ b/openbb_terminal/cryptocurrency/due_diligence/coinglass_view.py @@ -28,7 +28,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) @check_api_key(["API_COINGLASS_KEY"]) -def display_funding_rate(symbol: str, export: str = "", sheet_name: str = None) -> None: +def display_funding_rate( + symbol: str, export: str = "", sheet_name: Optional[str] = None +) -> None: """Plots funding rate by exchange for a certain cryptocurrency [Source: https://coinglass.github.io/API-Reference/] @@ -56,7 +58,7 @@ def display_funding_rate(symbol: str, export: str = "", sheet_name: str = None) @log_start_end(log=logger) @check_api_key(["API_COINGLASS_KEY"]) def display_open_interest( - symbol: str, interval: int = 0, export: str = "", sheet_name: str = None + symbol: str, interval: int = 0, export: str = "", sheet_name: Optional[str] = None ) -> None: """Plots open interest by exchange for a certain cryptocurrency [Source: https://coinglass.github.io/API-Reference/] @@ -91,7 +93,9 @@ def display_open_interest( @log_start_end(log=logger) @check_api_key(["API_COINGLASS_KEY"]) -def display_liquidations(symbol: str, export: str = "", sheet_name: str = None) -> None: +def display_liquidations( + symbol: str, export: str = "", sheet_name: Optional[str] = None +) -> None: """Plots liquidation per day data for a certain cryptocurrency [Source: https://coinglass.github.io/API-Reference/#liquidation-chart] diff --git a/openbb_terminal/cryptocurrency/due_diligence/coinpaprika_view.py b/openbb_terminal/cryptocurrency/due_diligence/coinpaprika_view.py index 8dabf42192c..6812a27ecdd 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/coinpaprika_view.py +++ b/openbb_terminal/cryptocurrency/due_diligence/coinpaprika_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from pandas.plotting import register_matplotlib_converters @@ -89,7 +90,7 @@ def display_twitter( sortby: str = "date", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing twitter timeline for given coin id. Not more than last 50 tweets [Source: CoinPaprika] @@ -138,7 +139,7 @@ def display_events( ascend: bool = False, links: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing all events for given coin id. [Source: CoinPaprika] @@ -192,7 +193,7 @@ def display_exchanges( sortby: str = "adjusted_volume_24h_share", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing all exchanges for given coin id. [Source: CoinPaprika] @@ -241,7 +242,7 @@ def display_markets( ascend: bool = True, links: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing all markets for given coin id. [Source: CoinPaprika] @@ -296,7 +297,7 @@ def display_price_supply( from_symbol: str = "BTC", to_symbol: str = "USD", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing ticker information for single coin [Source: CoinPaprika] @@ -337,7 +338,7 @@ def display_price_supply( def display_basic( symbol: str = "BTC", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing basic information for coin. Like: name, symbol, rank, type, description, platform, proof_type, contract, tags, parent. diff --git a/openbb_terminal/cryptocurrency/due_diligence/cryptopanic_view.py b/openbb_terminal/cryptocurrency/due_diligence/cryptopanic_view.py index efdd4b988c6..5f14de969f5 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/cryptopanic_view.py +++ b/openbb_terminal/cryptocurrency/due_diligence/cryptopanic_view.py @@ -26,7 +26,7 @@ def display_news( limit: int = 25, ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing recent posts from CryptoPanic news aggregator platform. [Source: https://cryptopanic.com/] diff --git a/openbb_terminal/cryptocurrency/due_diligence/dd_controller.py b/openbb_terminal/cryptocurrency/due_diligence/dd_controller.py index d332762c9bd..a21e7933580 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/dd_controller.py +++ b/openbb_terminal/cryptocurrency/due_diligence/dd_controller.py @@ -5,7 +5,7 @@ __docformat__ = "numpy" import argparse import logging from datetime import datetime, timedelta -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.cryptocurrency import cryptocurrency_helpers @@ -118,7 +118,7 @@ class DueDiligenceController(CryptoBaseController): self, symbol=None, source=None, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/cryptocurrency/due_diligence/finbrain_crypto_view.py b/openbb_terminal/cryptocurrency/due_diligence/finbrain_crypto_view.py index bf0744365c1..559355ce9ec 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/finbrain_crypto_view.py +++ b/openbb_terminal/cryptocurrency/due_diligence/finbrain_crypto_view.py @@ -40,7 +40,7 @@ def display_crypto_sentiment_analysis( symbol: str, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Sentiment analysis from FinBrain for Cryptocurrencies diff --git a/openbb_terminal/cryptocurrency/due_diligence/glassnode_view.py b/openbb_terminal/cryptocurrency/due_diligence/glassnode_view.py index d8e3b83a178..31fa0a8701a 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/glassnode_view.py +++ b/openbb_terminal/cryptocurrency/due_diligence/glassnode_view.py @@ -37,7 +37,7 @@ def display_active_addresses( end_date: Optional[str] = None, interval: str = "24h", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots active addresses of a certain symbol over time @@ -102,7 +102,7 @@ def display_non_zero_addresses( start_date: str = "2010-01-01", end_date: Optional[str] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots addresses with non-zero balance of a certain symbol @@ -166,7 +166,7 @@ def display_exchange_net_position_change( start_date: str = "2010-01-01", end_date: Optional[str] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots 30d change of the supply held in exchange wallets. @@ -250,7 +250,7 @@ def display_exchange_balances( end_date: Optional[str] = None, percentage: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots total amount of coins held on exchange addresses in units and percentage. @@ -333,7 +333,7 @@ def display_hashrate( end_date: Optional[str] = None, interval: str = "24h", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots dataframe with mean hashrate of btc or eth blockchain and symbol price. diff --git a/openbb_terminal/cryptocurrency/due_diligence/messari_view.py b/openbb_terminal/cryptocurrency/due_diligence/messari_view.py index 86a98914867..994f8213baf 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/messari_view.py +++ b/openbb_terminal/cryptocurrency/due_diligence/messari_view.py @@ -56,7 +56,7 @@ def display_messari_timeseries_list( query: str = "", only_free: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing messari timeseries list [Source: https://messari.io/] @@ -114,7 +114,7 @@ def display_messari_timeseries( end_date: Optional[str] = None, interval: str = "1d", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots messari timeseries @@ -193,7 +193,7 @@ def display_marketcap_dominance( end_date: Optional[str] = None, interval: str = "1d", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots market dominance of a coin over time @@ -256,7 +256,9 @@ def display_marketcap_dominance( @log_start_end(log=logger) @check_api_key(["API_MESSARI_KEY"]) -def display_links(symbol: str, export: str = "", sheet_name: str = None) -> None: +def display_links( + symbol: str, export: str = "", sheet_name: Optional[str] = None +) -> None: """Prints table showing coin links [Source: https://messari.io/] @@ -297,7 +299,7 @@ def display_roadmap( ascend: bool = True, limit: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots coin roadmap @@ -399,7 +401,7 @@ def display_roadmap( def display_tokenomics( symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Plots coin tokenomics @@ -485,7 +487,7 @@ def display_tokenomics( def display_project_info( symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing project info [Source: https://messari.io/] @@ -527,7 +529,7 @@ def display_project_info( def display_investors( symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing coin investors [Source: https://messari.io/] @@ -575,7 +577,7 @@ def display_investors( def display_team( symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing coin team [Source: https://messari.io/] @@ -623,7 +625,7 @@ def display_team( def display_governance( symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing coin governance [Source: https://messari.io/] @@ -662,7 +664,7 @@ def display_governance( def display_fundraising( symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Display coin fundraising diff --git a/openbb_terminal/cryptocurrency/due_diligence/pycoingecko_view.py b/openbb_terminal/cryptocurrency/due_diligence/pycoingecko_view.py index 36792bd44b5..36a130b31ae 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/pycoingecko_view.py +++ b/openbb_terminal/cryptocurrency/due_diligence/pycoingecko_view.py @@ -25,7 +25,7 @@ def display_coin_potential_returns( limit: Optional[int] = None, price: Optional[int] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing potential returns of a certain coin. [Source: CoinGecko] @@ -58,7 +58,9 @@ def display_coin_potential_returns( @log_start_end(log=logger) -def display_info(symbol: str, export: str = "", sheet_name: str = None) -> None: +def display_info( + symbol: str, export: str = "", sheet_name: Optional[str] = None +) -> None: """Prints table showing basic information about loaded coin. [Source: CoinGecko] Parameters @@ -92,7 +94,9 @@ def display_info(symbol: str, export: str = "", sheet_name: str = None) -> None: @log_start_end(log=logger) -def display_web(symbol: str, export: str = "", sheet_name: str = None) -> None: +def display_web( + symbol: str, export: str = "", sheet_name: Optional[str] = None +) -> None: """Prints table showing found websites corresponding to loaded coin. [Source: CoinGecko] Parameters @@ -126,7 +130,9 @@ def display_web(symbol: str, export: str = "", sheet_name: str = None) -> None: @log_start_end(log=logger) -def display_social(symbol: str, export: str = "", sheet_name: str = None) -> None: +def display_social( + symbol: str, export: str = "", sheet_name: Optional[str] = None +) -> None: """Prints table showing social media corresponding to loaded coin. [Source: CoinGecko] Parameters @@ -156,7 +162,9 @@ def display_social(symbol: str, export: str = "", sheet_name: str = None) -> Non @log_start_end(log=logger) -def display_dev(symbol: str, export: str = "", sheet_name: str = None) -> None: +def display_dev( + symbol: str, export: str = "", sheet_name: Optional[str] = None +) -> None: """Prints table showing developers data for loaded coin. [Source: CoinGecko] Parameters @@ -188,7 +196,10 @@ def display_dev(symbol: str, export: str = "", sheet_name: str = None) -> None: @log_start_end(log=logger) def display_ath( - symbol: str, currency: str = "usd", export: str = "", sheet_name: str = None + symbol: str, + currency: str = "usd", + export: str = "", + sheet_name: Optional[str] = None, ) -> None: """Prints table showing all time high data for loaded coin. [Source: CoinGecko] @@ -218,7 +229,10 @@ def display_ath( @log_start_end(log=logger) def display_atl( - symbol: str, currency: str = "usd", export: str = "", sheet_name: str = None + symbol: str, + currency: str = "usd", + export: str = "", + sheet_name: Optional[str] = None, ) -> None: """Prints table showing all time low data for loaded coin. [Source: CoinGecko] @@ -247,7 +261,9 @@ def display_atl( @log_start_end(log=logger) -def display_score(symbol: str, export: str = "", sheet_name: str = None) -> None: +def display_score( + symbol: str, export: str = "", sheet_name: Optional[str] = None +) -> None: """Prints table showing different kind of scores for loaded coin. [Source: CoinGecko] Parameters @@ -278,7 +294,7 @@ def display_score(symbol: str, export: str = "", sheet_name: str = None) -> None @log_start_end(log=logger) -def display_bc(symbol: str, export: str = "", sheet_name: str = None) -> None: +def display_bc(symbol: str, export: str = "", sheet_name: Optional[str] = None) -> None: """Prints table showing urls to blockchain explorers. [Source: CoinGecko] Parameters @@ -306,7 +322,9 @@ def display_bc(symbol: str, export: str = "", sheet_name: str = None) -> None: @log_start_end(log=logger) -def display_market(symbol: str, export: str = "", sheet_name: str = None) -> None: +def display_market( + symbol: str, export: str = "", sheet_name: Optional[str] = None +) -> None: """Prints table showing market data for loaded coin. [Source: CoinGecko] Parameters diff --git a/openbb_terminal/cryptocurrency/due_diligence/santiment_view.py b/openbb_terminal/cryptocurrency/due_diligence/santiment_view.py index ec78fdf7d6d..e55fd4c700d 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/santiment_view.py +++ b/openbb_terminal/cryptocurrency/due_diligence/santiment_view.py @@ -28,7 +28,7 @@ def display_github_activity( end_date: Optional[str] = None, interval: str = "1d", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Returns a list of github activity for a given coin and time interval. diff --git a/openbb_terminal/cryptocurrency/due_diligence/tokenterminal_view.py b/openbb_terminal/cryptocurrency/due_diligence/tokenterminal_view.py index f7c308882ea..f07a43def29 100644 --- a/openbb_terminal/cryptocurrency/due_diligence/tokenterminal_view.py +++ b/openbb_terminal/cryptocurrency/due_diligence/tokenterminal_view.py @@ -31,7 +31,7 @@ def display_fundamental_metric_from_project_over_time( metric: str, project: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots fundamental metric from a project over time [Source: Token Terminal] @@ -107,7 +107,9 @@ def display_fundamental_metric_from_project_over_time( @log_start_end(log=logger) @check_api_key(["API_TOKEN_TERMINAL_KEY"]) -def display_description(project: str, export: str = "", sheet_name: str = None): +def display_description( + project: str, export: str = "", sheet_name: Optional[str] = None +): """Prints description from a project [Source: Token Terminal] Parameters diff --git a/openbb_terminal/cryptocurrency/nft/nft_controller.py b/openbb_terminal/cryptocurrency/nft/nft_controller.py index dcc87d4ced9..08c779cfaf3 100644 --- a/openbb_terminal/cryptocurrency/nft/nft_controller.py +++ b/openbb_terminal/cryptocurrency/nft/nft_controller.py @@ -1,6 +1,6 @@ import argparse import logging -from typing import List +from typing import Optional, List from openbb_terminal import feature_flags as obbff from openbb_terminal.cryptocurrency.nft import ( @@ -32,7 +32,7 @@ class NFTController(BaseController): PATH = "/crypto/nft/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/cryptocurrency/nft/nftpricefloor_view.py b/openbb_terminal/cryptocurrency/nft/nftpricefloor_view.py index 2a11e0fac16..feac7bf85be 100644 --- a/openbb_terminal/cryptocurrency/nft/nftpricefloor_view.py +++ b/openbb_terminal/cryptocurrency/nft/nftpricefloor_view.py @@ -31,7 +31,7 @@ def display_collections( show_sales: bool = False, limit: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display NFT collections. [Source: https://nftpricefloor.com/] @@ -96,7 +96,7 @@ def display_floor_price( slug: str, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, raw: bool = False, ): diff --git a/openbb_terminal/cryptocurrency/onchain/bitquery_view.py b/openbb_terminal/cryptocurrency/onchain/bitquery_view.py index a8084e1fd5e..3d9c8237152 100644 --- a/openbb_terminal/cryptocurrency/onchain/bitquery_view.py +++ b/openbb_terminal/cryptocurrency/onchain/bitquery_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.cryptocurrency.dataframe_helpers import ( lambda_very_long_number_formatter, @@ -25,7 +26,7 @@ def display_dex_trades( sortby: str = "tradeAmount", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing Trades on Decentralized Exchanges aggregated by DEX or Month [Source: https://graphql.bitquery.io/] @@ -91,7 +92,7 @@ def display_daily_volume_for_given_pair( sortby: str = "date", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing daily volume for given pair [Source: https://graphql.bitquery.io/] @@ -166,7 +167,7 @@ def display_dex_volume_for_token( sortby: str = "tradeAmount", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing token volume on different Decentralized Exchanges. [Source: https://graphql.bitquery.io/] @@ -232,7 +233,7 @@ def display_ethereum_unique_senders( sortby: str = "date", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing number of unique ethereum addresses which made a transaction in given time interval [Source: https://graphql.bitquery.io/] @@ -295,7 +296,7 @@ def display_most_traded_pairs( sortby: str = "tradeAmount", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing most traded crypto pairs on given decentralized exchange in chosen time period. [Source: https://graphql.bitquery.io/] @@ -357,7 +358,7 @@ def display_spread_for_crypto_pair( sortby: str = "date", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints table showing an average bid and ask prices, average spread for given crypto pair for chosen time period. [Source: https://graphql.bitquery.io/] diff --git a/openbb_terminal/cryptocurrency/onchain/blockchain_view.py b/openbb_terminal/cryptocurrency/onchain/blockchain_view.py index d06cc0318df..60bd1cd3af7 100644 --- a/openbb_terminal/cryptocurrency/onchain/blockchain_view.py +++ b/openbb_terminal/cryptocurrency/onchain/blockchain_view.py @@ -30,7 +30,7 @@ def display_btc_circulating_supply( start_date: str = "2010-01-01", end_date: Optional[str] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Returns BTC circulating supply [Source: https://api.blockchain.info/] @@ -92,7 +92,7 @@ def display_btc_confirmed_transactions( start_date: str = "2010-01-01", end_date: Optional[str] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Returns BTC confirmed transactions [Source: https://api.blockchain.info/] @@ -155,7 +155,7 @@ def display_btc_confirmed_transactions( def display_btc_single_block( blockhash: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Returns BTC block data. [Source: https://api.blockchain.info/] Parameters diff --git a/openbb_terminal/cryptocurrency/onchain/ethgasstation_view.py b/openbb_terminal/cryptocurrency/onchain/ethgasstation_view.py index f0ea8459e62..92f85ee4d71 100644 --- a/openbb_terminal/cryptocurrency/onchain/ethgasstation_view.py +++ b/openbb_terminal/cryptocurrency/onchain/ethgasstation_view.py @@ -1,6 +1,7 @@ """ETH Gas Station view""" import logging import os +from typing import Optional from openbb_terminal.cryptocurrency.onchain.ethgasstation_model import get_gwei_fees from openbb_terminal.decorators import log_start_end @@ -11,7 +12,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_gwei_fees(export: str = "", sheet_name: str = None) -> None: +def display_gwei_fees(export: str = "", sheet_name: Optional[str] = None) -> None: """Current gwei fees [Source: https://ethgasstation.info] diff --git a/openbb_terminal/cryptocurrency/onchain/ethplorer_view.py b/openbb_terminal/cryptocurrency/onchain/ethplorer_view.py index a52862cf8b7..3dd19bd3e07 100644 --- a/openbb_terminal/cryptocurrency/onchain/ethplorer_view.py +++ b/openbb_terminal/cryptocurrency/onchain/ethplorer_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.cryptocurrency.dataframe_helpers import ( lambda_very_long_number_formatter, @@ -24,7 +25,7 @@ def display_address_info( sortby: str = "index", ascend: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display info about tokens for given ethereum blockchain balance e.g. ETH balance, balance of all tokens with name and symbol. [Source: Ethplorer] @@ -74,7 +75,7 @@ def display_top_tokens( sortby: str = "rank", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display top ERC20 tokens [Source: Ethplorer] @@ -121,7 +122,7 @@ def display_top_token_holders( sortby: str = "balance", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display info about top ERC20 token holders. [Source: Ethplorer] @@ -167,7 +168,7 @@ def display_address_history( sortby: str = "timestamp", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display information about balance historical transactions. [Source: Ethplorer] @@ -215,7 +216,7 @@ def display_token_info( address: str, social: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display info about ERC20 token. [Source: Ethplorer] @@ -259,7 +260,7 @@ def display_token_info( def display_tx_info( tx_hash: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display info about transaction. [Source: Ethplorer] @@ -297,7 +298,7 @@ def display_token_history( ascend: bool = False, hash_: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display info about token history. [Source: Ethplorer] @@ -356,7 +357,7 @@ def display_token_historical_prices( sortby: str = "date", ascend: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display token historical prices with volume and market cap, and average price. [Source: Ethplorer] diff --git a/openbb_terminal/cryptocurrency/onchain/onchain_controller.py b/openbb_terminal/cryptocurrency/onchain/onchain_controller.py index b3f07b71494..bccd85ec86d 100644 --- a/openbb_terminal/cryptocurrency/onchain/onchain_controller.py +++ b/openbb_terminal/cryptocurrency/onchain/onchain_controller.py @@ -7,7 +7,7 @@ import argparse import difflib import logging from datetime import datetime, timedelta -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.cryptocurrency.due_diligence.glassnode_model import ( @@ -90,7 +90,7 @@ class OnchainController(BaseController): PATH = "/crypto/onchain/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/cryptocurrency/onchain/shroom_view.py b/openbb_terminal/cryptocurrency/onchain/shroom_view.py index 5c51c62f371..8291a754357 100644 --- a/openbb_terminal/cryptocurrency/onchain/shroom_view.py +++ b/openbb_terminal/cryptocurrency/onchain/shroom_view.py @@ -33,7 +33,7 @@ logger = logging.getLogger(__name__) @check_api_key(["API_SHROOM_KEY"]) def display_daily_transactions( export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Get daily transactions for certain symbols in ethereum blockchain @@ -89,7 +89,7 @@ def display_dapp_stats( raw: bool = False, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Get daily transactions for certain symbols in ethereum blockchain @@ -160,7 +160,7 @@ def display_total_value_locked( symbol: str = "USDC", interval: int = 1, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """ diff --git a/openbb_terminal/cryptocurrency/onchain/whale_alert_view.py b/openbb_terminal/cryptocurrency/onchain/whale_alert_view.py index 4590b99d032..3f38da74c0d 100644 --- a/openbb_terminal/cryptocurrency/onchain/whale_alert_view.py +++ b/openbb_terminal/cryptocurrency/onchain/whale_alert_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.cryptocurrency.onchain import whale_alert_model from openbb_terminal.decorators import check_api_key, log_start_end @@ -25,7 +26,7 @@ def display_whales_transactions( ascend: bool = False, show_address: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display huge value transactions from major blockchains. [Source: https://docs.whale-alert.io/] diff --git a/openbb_terminal/cryptocurrency/overview/blockchaincenter_view.py b/openbb_terminal/cryptocurrency/overview/blockchaincenter_view.py index 19a693090db..ef2ef3c26fb 100644 --- a/openbb_terminal/cryptocurrency/overview/blockchaincenter_view.py +++ b/openbb_terminal/cryptocurrency/overview/blockchaincenter_view.py @@ -29,7 +29,7 @@ def display_altcoin_index( start_date: str = "2010-01-01", end_date: Optional[str] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Displays altcoin index overtime diff --git a/openbb_terminal/cryptocurrency/overview/coinbase_view.py b/openbb_terminal/cryptocurrency/overview/coinbase_view.py index d0d4514f8b0..8da94533eee 100644 --- a/openbb_terminal/cryptocurrency/overview/coinbase_view.py +++ b/openbb_terminal/cryptocurrency/overview/coinbase_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.cryptocurrency.overview import coinbase_model from openbb_terminal.decorators import check_api_key, log_start_end @@ -18,7 +19,7 @@ def display_trading_pairs( sortby: str = "quote_increment", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Displays a list of available currency pairs for trading. [Source: Coinbase] diff --git a/openbb_terminal/cryptocurrency/overview/coinpaprika_view.py b/openbb_terminal/cryptocurrency/overview/coinpaprika_view.py index 24ca6e5063a..3578a477383 100644 --- a/openbb_terminal/cryptocurrency/overview/coinpaprika_view.py +++ b/openbb_terminal/cryptocurrency/overview/coinpaprika_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from pandas.plotting import register_matplotlib_converters @@ -71,7 +72,7 @@ CURRENCIES = [ @log_start_end(log=logger) -def display_global_market(export: str = "", sheet_name: str = None) -> None: +def display_global_market(export: str = "", sheet_name: Optional[str] = None) -> None: """Return data frame with most important global crypto statistics like: market_cap_usd, volume_24h_usd, bitcoin_dominance_percentage, cryptocurrencies_number, market_cap_ath_value, market_cap_ath_date, volume_24h_ath_value, volume_24h_ath_date, @@ -109,7 +110,7 @@ def display_all_coins_market_info( ascend: bool = True, limit: int = 15, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Displays basic market information for all coins from CoinPaprika API. [Source: CoinPaprika] @@ -165,7 +166,7 @@ def display_all_coins_info( ascend: bool = True, limit: int = 15, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Displays basic coin information for all coins from CoinPaprika API. [Source: CoinPaprika] @@ -221,7 +222,7 @@ def display_all_exchanges( ascend: bool = True, limit: int = 15, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """List exchanges from CoinPaprika API. [Source: CoinPaprika] @@ -278,7 +279,7 @@ def display_exchange_markets( limit: int = 15, links: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Get all markets for given exchange [Source: CoinPaprika] @@ -330,7 +331,7 @@ def display_exchange_markets( @log_start_end(log=logger) -def display_all_platforms(export: str = "", sheet_name: str = None) -> None: +def display_all_platforms(export: str = "", sheet_name: Optional[str] = None) -> None: """List all smart contract platforms like ethereum, solana, cosmos, polkadot, kusama. [Source: CoinPaprika] @@ -362,7 +363,7 @@ def display_contracts( ascend: bool = True, limit: int = 15, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Gets all contract addresses for given platform. [Source: CoinPaprika] diff --git a/openbb_terminal/cryptocurrency/overview/cryptopanic_view.py b/openbb_terminal/cryptocurrency/overview/cryptopanic_view.py index a144d24176b..c0e95f07071 100644 --- a/openbb_terminal/cryptocurrency/overview/cryptopanic_view.py +++ b/openbb_terminal/cryptocurrency/overview/cryptopanic_view.py @@ -25,7 +25,7 @@ def display_news( ascend: bool = False, links: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display recent posts from CryptoPanic news aggregator platform. [Source: https://cryptopanic.com/] diff --git a/openbb_terminal/cryptocurrency/overview/glassnode_view.py b/openbb_terminal/cryptocurrency/overview/glassnode_view.py index 183c8f1060d..188c664771f 100644 --- a/openbb_terminal/cryptocurrency/overview/glassnode_view.py +++ b/openbb_terminal/cryptocurrency/overview/glassnode_view.py @@ -30,7 +30,7 @@ def display_btc_rainbow( start_date: str = "2010-01-01", end_date: Optional[str] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Displays bitcoin rainbow chart diff --git a/openbb_terminal/cryptocurrency/overview/loanscan_view.py b/openbb_terminal/cryptocurrency/overview/loanscan_view.py index bd524248506..6eb5a7bab70 100644 --- a/openbb_terminal/cryptocurrency/overview/loanscan_view.py +++ b/openbb_terminal/cryptocurrency/overview/loanscan_view.py @@ -29,7 +29,7 @@ def display_crypto_rates( rate_type: str = "borrow", limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Displays crypto {borrow,supply} interest rates for cryptocurrencies across several platforms diff --git a/openbb_terminal/cryptocurrency/overview/overview_controller.py b/openbb_terminal/cryptocurrency/overview/overview_controller.py index a67e556ccfe..d574c4a0953 100644 --- a/openbb_terminal/cryptocurrency/overview/overview_controller.py +++ b/openbb_terminal/cryptocurrency/overview/overview_controller.py @@ -6,7 +6,7 @@ import argparse import difflib import logging from datetime import datetime, timedelta -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.cryptocurrency.discovery.pycoingecko_model import ( @@ -87,7 +87,7 @@ class OverviewController(BaseController): PATH = "/crypto/ov/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/cryptocurrency/overview/pycoingecko_view.py b/openbb_terminal/cryptocurrency/overview/pycoingecko_view.py index c5cb463acad..a417484602d 100644 --- a/openbb_terminal/cryptocurrency/overview/pycoingecko_view.py +++ b/openbb_terminal/cryptocurrency/overview/pycoingecko_view.py @@ -43,7 +43,7 @@ def display_crypto_heatmap( category: str = "", limit: int = 15, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Shows cryptocurrencies heatmap [Source: CoinGecko] @@ -146,7 +146,7 @@ def display_holdings_overview( symbol: str, show_bar: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, limit: int = 15, ) -> None: """Shows overview of public companies that holds ethereum or bitcoin. [Source: CoinGecko] @@ -219,7 +219,7 @@ def display_exchange_rates( ascend: bool = False, limit: int = 15, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Shows list of crypto, fiats, commodity exchange rates. [Source: CoinGecko] @@ -258,7 +258,7 @@ def display_exchange_rates( @log_start_end(log=logger) def display_global_market_info( - pie: bool = False, export: str = "", sheet_name: str = None + pie: bool = False, export: str = "", sheet_name: Optional[str] = None ) -> None: """Shows global statistics about crypto. [Source: CoinGecko] - market cap change @@ -323,7 +323,9 @@ def display_global_market_info( @log_start_end(log=logger) -def display_global_defi_info(export: str = "", sheet_name: str = None) -> None: +def display_global_defi_info( + export: str = "", sheet_name: Optional[str] = None +) -> None: """Shows global statistics about Decentralized Finances. [Source: CoinGecko] Parameters @@ -357,7 +359,7 @@ def display_global_defi_info(export: str = "", sheet_name: str = None) -> None: def display_stablecoins( limit: int = 15, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, sortby: str = "Market_Cap_[$]", ascend: bool = False, pie: bool = True, @@ -444,7 +446,7 @@ def display_categories( sortby: str = "market_cap_desc", limit: int = 15, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, pie: bool = False, ) -> None: """Shows top cryptocurrency categories by market capitalization @@ -516,7 +518,7 @@ def display_exchanges( limit: int = 15, links: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Shows list of top exchanges from CoinGecko. [Source: CoinGecko] @@ -566,7 +568,7 @@ def display_platforms( ascend: bool = True, limit: int = 15, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Shows list of financial platforms. [Source: CoinGecko] @@ -609,7 +611,7 @@ def display_products( ascend: bool = False, limit: int = 15, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Shows list of financial products. [Source: CoinGecko] @@ -652,7 +654,7 @@ def display_indexes( ascend: bool = True, limit: int = 15, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Shows list of crypto indexes. [Source: CoinGecko] @@ -694,7 +696,7 @@ def display_derivatives( ascend: bool = False, limit: int = 15, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Shows list of crypto derivatives. [Source: CoinGecko] diff --git a/openbb_terminal/cryptocurrency/overview/rekt_view.py b/openbb_terminal/cryptocurrency/overview/rekt_view.py index 1ea036fad47..b001f15b574 100644 --- a/openbb_terminal/cryptocurrency/overview/rekt_view.py +++ b/openbb_terminal/cryptocurrency/overview/rekt_view.py @@ -1,6 +1,7 @@ """Rekt view""" import logging import os +from typing import Optional from openbb_terminal.cryptocurrency.overview import rekt_model from openbb_terminal.decorators import log_start_end @@ -21,7 +22,7 @@ def display_crypto_hacks( ascend: bool = False, slug: str = "polyntwork-rekt", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display list of major crypto-related hacks. If slug is passed individual crypto hack is displayed instead of list of crypto hacks diff --git a/openbb_terminal/cryptocurrency/overview/withdrawalfees_view.py b/openbb_terminal/cryptocurrency/overview/withdrawalfees_view.py index d119de44bd1..21fed4f4919 100644 --- a/openbb_terminal/cryptocurrency/overview/withdrawalfees_view.py +++ b/openbb_terminal/cryptocurrency/overview/withdrawalfees_view.py @@ -1,6 +1,7 @@ """Withdrawal Fees view""" import logging import os +from typing import Optional from openbb_terminal.cryptocurrency.overview.withdrawalfees_model import ( get_crypto_withdrawal_fees, @@ -16,7 +17,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def display_overall_withdrawal_fees( - limit: int = 15, export: str = "", sheet_name: str = None + limit: int = 15, export: str = "", sheet_name: Optional[str] = None ) -> None: """Top coins withdrawal fees [Source: https://withdrawalfees.com/] @@ -54,7 +55,7 @@ def display_overall_withdrawal_fees( @log_start_end(log=logger) def display_overall_exchange_withdrawal_fees( - export: str = "", sheet_name: str = None + export: str = "", sheet_name: Optional[str] = None ) -> None: """Exchange withdrawal fees [Source: https://withdrawalfees.com/] @@ -90,7 +91,7 @@ def display_overall_exchange_withdrawal_fees( @log_start_end(log=logger) def display_crypto_withdrawal_fees( - symbol: str, export: str = "", sheet_name: str = None + symbol: str, export: str = "", sheet_name: Optional[str] = None ) -> None: """Coin withdrawal fees per exchange [Source: https://withdrawalfees.com/] diff --git a/openbb_terminal/cryptocurrency/quantitative_analysis/qa_controller.py b/openbb_terminal/cryptocurrency/quantitative_analysis/qa_controller.py index c7420173a78..fc2f6e35741 100644 --- a/openbb_terminal/cryptocurrency/quantitative_analysis/qa_controller.py +++ b/openbb_terminal/cryptocurrency/quantitative_analysis/qa_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional import numpy as np import pandas as pd @@ -60,7 +60,7 @@ class QaController(CryptoBaseController): self, symbol: str, data: pd.DataFrame, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/cryptocurrency/technical_analysis/ta_controller.py b/openbb_terminal/cryptocurrency/technical_analysis/ta_controller.py index 5c270ab75a0..63ad4624bd6 100644 --- a/openbb_terminal/cryptocurrency/technical_analysis/ta_controller.py +++ b/openbb_terminal/cryptocurrency/technical_analysis/ta_controller.py @@ -6,7 +6,7 @@ import argparse import logging import webbrowser from datetime import datetime -from typing import List +from typing import List, Optional import numpy as np import pandas as pd @@ -77,7 +77,7 @@ class TechnicalAnalysisController(CryptoBaseController): start: datetime, interval: str, stock: pd.DataFrame, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/cryptocurrency/tools/tools_controller.py b/openbb_terminal/cryptocurrency/tools/tools_controller.py index 3b855589eb0..36ea881688a 100644 --- a/openbb_terminal/cryptocurrency/tools/tools_controller.py +++ b/openbb_terminal/cryptocurrency/tools/tools_controller.py @@ -5,7 +5,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.cryptocurrency.tools import tools_view @@ -32,7 +32,7 @@ class ToolsController(BaseController): PATH = "/crypto/tools/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/cryptocurrency/tools/tools_view.py b/openbb_terminal/cryptocurrency/tools/tools_view.py index e427f69fdbf..179fe61891e 100644 --- a/openbb_terminal/cryptocurrency/tools/tools_view.py +++ b/openbb_terminal/cryptocurrency/tools/tools_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.cryptocurrency.tools.tools_model import calculate_apy, calculate_il from openbb_terminal.decorators import log_start_end @@ -18,7 +19,7 @@ def display_apy( compounding_times: int, narrative: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Displays APY value converted from APR @@ -65,7 +66,7 @@ def display_il( initial_pool_value: int, narrative: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Displays Impermanent Loss in a custom liquidity pool diff --git a/openbb_terminal/dashboards/dashboards_controller.py b/openbb_terminal/dashboards/dashboards_controller.py index e7119800e6d..16b575fa356 100644 --- a/openbb_terminal/dashboards/dashboards_controller.py +++ b/openbb_terminal/dashboards/dashboards_controller.py @@ -5,7 +5,7 @@ import argparse import logging import os import subprocess # nosec -from typing import List +from typing import List, Optional import openbb_terminal.config_terminal as cfg from openbb_terminal import feature_flags as obbff @@ -37,7 +37,7 @@ class DashboardsController(BaseController): ] PATH = "/dashboards/" - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) @@ -112,7 +112,7 @@ class DashboardsController(BaseController): @classmethod def create_call_voila( - cls, other_args: List[str], name: str, filename: str = None + cls, other_args: List[str], name: str, filename: Optional[str] = None ) -> None: filename = filename if filename else name @@ -176,7 +176,7 @@ class DashboardsController(BaseController): @classmethod def create_call_streamlit( - cls, other_args: List[str], name: str, filename: str = None + cls, other_args: List[str], name: str, filename: Optional[str] = None ) -> None: filename = filename if filename else name diff --git a/openbb_terminal/econometrics/econometrics_controller.py b/openbb_terminal/econometrics/econometrics_controller.py index a7e47e60a1e..c53ff96d2e2 100644 --- a/openbb_terminal/econometrics/econometrics_controller.py +++ b/openbb_terminal/econometrics/econometrics_controller.py @@ -8,7 +8,7 @@ import logging import os from itertools import chain from pathlib import Path -from typing import Any, Dict, List +from typing import Any, Dict, List, Optional import numpy as np import pandas as pd @@ -108,7 +108,7 @@ class EconometricsController(BaseController): loaded_dataset_cols = "\n" list_dataset_cols: List = list() - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) self.files: List[str] = list() diff --git a/openbb_terminal/econometrics/econometrics_view.py b/openbb_terminal/econometrics/econometrics_view.py index 70fb0319840..e36a8d71bc7 100644 --- a/openbb_terminal/econometrics/econometrics_view.py +++ b/openbb_terminal/econometrics/econometrics_view.py @@ -26,9 +26,9 @@ register_matplotlib_converters() @log_start_end(log=logger) def show_options( datasets: Dict[str, pd.DataFrame], - dataset_name: str = None, + dataset_name: Optional[str] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Plot custom data @@ -71,7 +71,7 @@ def show_options( def display_plot( data: Union[pd.Series, pd.DataFrame, Dict[str, pd.DataFrame]], export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.axes]] = None, ): """Plot data from a dataset @@ -140,7 +140,7 @@ def display_norm( column: str = "", plot: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.axes]] = None, ): """Determine the normality of a timeseries. @@ -213,7 +213,7 @@ def display_root( fuller_reg: str = "c", kpss_reg: str = "c", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Determine the normality of a timeseries. @@ -266,7 +266,7 @@ def display_granger( lags: int = 3, confidence_level: float = 0.05, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Show granger tests @@ -334,7 +334,7 @@ def display_cointegration_test( significant: bool = False, plot: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.axes]] = None, ): """Estimates long-run and short-run cointegration relationship for series y and x and apply diff --git a/openbb_terminal/econometrics/regression_model.py b/openbb_terminal/econometrics/regression_model.py index 35dd64adbdf..fb2c57a8cbb 100644 --- a/openbb_terminal/econometrics/regression_model.py +++ b/openbb_terminal/econometrics/regression_model.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import logging import os import warnings -from typing import Any, Dict, List, Tuple +from typing import Any, Dict, List, Optional, Tuple import pandas as pd import statsmodels @@ -434,7 +434,9 @@ def get_fdols(Y: pd.DataFrame, X: pd.DataFrame) -> Any: @log_start_end(log=logger) -def get_comparison(regressions: Dict, export: str = "", sheet_name: str = None): +def get_comparison( + regressions: Dict, export: str = "", sheet_name: Optional[str] = None +): """Compare regression results between Panel Data regressions. Parameters diff --git a/openbb_terminal/econometrics/regression_view.py b/openbb_terminal/econometrics/regression_view.py index c3cfd589b1c..a2c4bb87f17 100644 --- a/openbb_terminal/econometrics/regression_view.py +++ b/openbb_terminal/econometrics/regression_view.py @@ -27,7 +27,7 @@ def display_panel( entity_effects: bool = False, time_effects: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Based on the regression type, this function decides what regression to run. @@ -85,7 +85,7 @@ def display_dwat( dependent_variable: pd.Series, plot: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.axes]] = None, ): """Show Durbin-Watson autocorrelation tests @@ -146,7 +146,7 @@ def display_bgod( model: statsmodels.regression.linear_model.RegressionResultsWrapper, lags: int = 3, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Show Breusch-Godfrey autocorrelation test @@ -193,7 +193,7 @@ def display_bgod( def display_bpag( model: statsmodels.regression.linear_model.RegressionResultsWrapper, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Show Breusch-Pagan heteroscedasticity test diff --git a/openbb_terminal/economy/alphavantage_view.py b/openbb_terminal/economy/alphavantage_view.py index f086e92aa4e..d6a3a6d21f2 100644 --- a/openbb_terminal/economy/alphavantage_view.py +++ b/openbb_terminal/economy/alphavantage_view.py @@ -28,7 +28,7 @@ logger = logging.getLogger(__name__) def realtime_performance_sector( raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display Real-Time Performance sector. [Source: AlphaVantage] @@ -92,7 +92,7 @@ def display_real_gdp( start_year: int = 2010, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display US GDP from AlphaVantage @@ -151,7 +151,7 @@ def display_gdp_capita( start_year: int = 2010, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display US GDP per Capita from AlphaVantage @@ -209,7 +209,7 @@ def display_inflation( start_year: int = 2010, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display US Inflation from AlphaVantage @@ -267,7 +267,7 @@ def display_cpi( start_year: int = 2010, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display US consumer price index (CPI) from AlphaVantage @@ -328,7 +328,7 @@ def display_treasury_yield( start_date: str = "2010-01-01", raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display historical treasury yield for given maturity @@ -390,7 +390,7 @@ def display_unemployment( start_year: int = 2010, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display US unemployment AlphaVantage diff --git a/openbb_terminal/economy/commodity_view.py b/openbb_terminal/economy/commodity_view.py index 8e3c68be3d7..2b54b30e917 100644 --- a/openbb_terminal/economy/commodity_view.py +++ b/openbb_terminal/economy/commodity_view.py @@ -1,5 +1,6 @@ import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.economy import commodity_model @@ -25,7 +26,7 @@ def format_large_numbers(num: float) -> str: @log_start_end(log=logger) -def display_debt(export: str = "", sheet_name: str = None, limit: int = 20): +def display_debt(export: str = "", sheet_name: Optional[str] = None, limit: int = 20): """Displays external debt for given countries [Source: Wikipedia] Parameters diff --git a/openbb_terminal/economy/econdb_model.py b/openbb_terminal/economy/econdb_model.py index 3f08492f4d7..e9276f4c3b6 100644 --- a/openbb_terminal/economy/econdb_model.py +++ b/openbb_terminal/economy/econdb_model.py @@ -658,8 +658,8 @@ def get_macro_countries() -> Dict[str, str]: @log_start_end(log=logger) def get_aggregated_macro_data( - parameters: list = None, - countries: list = None, + parameters: Optional[list] = None, + countries: Optional[list] = None, transform: str = "", start_date: str = "1900-01-01", end_date: Optional[str] = None, @@ -741,8 +741,8 @@ def get_aggregated_macro_data( @log_start_end(log=logger) def get_treasuries( - instruments: list = None, - maturities: list = None, + instruments: Optional[list] = None, + maturities: Optional[list] = None, frequency: str = "monthly", start_date: str = "1900-01-01", end_date: Optional[str] = None, diff --git a/openbb_terminal/economy/econdb_view.py b/openbb_terminal/economy/econdb_view.py index 48c35bac3a7..7085cb32fbb 100644 --- a/openbb_terminal/economy/econdb_view.py +++ b/openbb_terminal/economy/econdb_view.py @@ -19,8 +19,8 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def show_macro_data( - parameters: list = None, - countries: list = None, + parameters: Optional[list] = None, + countries: Optional[list] = None, transform: str = "", start_date: str = "1900-01-01", end_date: Optional[str] = None, @@ -28,7 +28,7 @@ def show_macro_data( raw: bool = False, external_axes: Optional[List[plt.axes]] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Show the received macro data about a company [Source: EconDB] @@ -146,15 +146,15 @@ def show_macro_data( @log_start_end(log=logger) def show_treasuries( - instruments: list = None, - maturities: list = None, + instruments: Optional[list] = None, + maturities: Optional[list] = None, frequency: str = "monthly", start_date: str = "1900-01-01", end_date: Optional[str] = None, raw: bool = False, external_axes: Optional[List[plt.axes]] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display U.S. Treasury rates [Source: EconDB] diff --git a/openbb_terminal/economy/economy_controller.py b/openbb_terminal/economy/economy_controller.py index 381545a0382..711b5f176f3 100644 --- a/openbb_terminal/economy/economy_controller.py +++ b/openbb_terminal/economy/economy_controller.py @@ -10,7 +10,7 @@ from datetime import ( date, datetime as dt, ) -from typing import Any, Dict, List +from typing import Any, Dict, List, Optional import pandas as pd @@ -160,7 +160,7 @@ class EconomyController(BaseController): FILE_PATH = os.path.join(os.path.dirname(__file__), "README.md") CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/economy/finnhub_view.py b/openbb_terminal/economy/finnhub_view.py index 4f2fb0a183b..bff786f1d13 100644 --- a/openbb_terminal/economy/finnhub_view.py +++ b/openbb_terminal/economy/finnhub_view.py @@ -1,5 +1,6 @@ import logging import os +from typing import Optional from openbb_terminal.decorators import check_api_key, log_start_end from openbb_terminal.economy import finnhub_model @@ -12,7 +13,11 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) @check_api_key(["API_FINNHUB_KEY"]) def economy_calendar_events( - country: str, limit: int, impact: str, export: str = "", sheet_name: str = None + country: str, + limit: int, + impact: str, + export: str = "", + sheet_name: Optional[str] = None, ): """Output economy calendar impact events. [Source: Finnhub] diff --git a/openbb_terminal/economy/finviz_view.py b/openbb_terminal/economy/finviz_view.py index 813c38d7f0e..9fd10fc27e9 100644 --- a/openbb_terminal/economy/finviz_view.py +++ b/openbb_terminal/economy/finviz_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from PIL import Image @@ -33,7 +34,7 @@ def display_valuation( sortby: str = "Name", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display group (sectors, industry or country) valuation data. [Source: Finviz] @@ -75,7 +76,7 @@ def display_performance( sortby: str = "Name", ascend: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """View group (sectors, industry or country) performance data. [Source: Finviz] @@ -112,7 +113,9 @@ def display_performance( @log_start_end(log=logger) -def display_spectrum(group: str = "sector", export: str = "", sheet_name: str = None): +def display_spectrum( + group: str = "sector", export: str = "", sheet_name: Optional[str] = None +): """Display finviz spectrum in system viewer [Source: Finviz] Parameters @@ -145,7 +148,7 @@ def display_future( sortby: str = "ticker", ascend: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display table of a particular future type. [Source: Finviz] diff --git a/openbb_terminal/economy/fred_view.py b/openbb_terminal/economy/fred_view.py index c7b93697808..2d7da159e8a 100644 --- a/openbb_terminal/economy/fred_view.py +++ b/openbb_terminal/economy/fred_view.py @@ -82,7 +82,7 @@ def display_fred_series( get_data: bool = False, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display (multiple) series from https://fred.stlouisfed.org. [Source: FRED] @@ -191,7 +191,7 @@ def display_yield_curve( external_axes: Optional[List[plt.Axes]] = None, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display yield curve based on US Treasury rates for a specified date. diff --git a/openbb_terminal/economy/investingcom_view.py b/openbb_terminal/economy/investingcom_view.py index 23f4d45b924..59f7ea999da 100644 --- a/openbb_terminal/economy/investingcom_view.py +++ b/openbb_terminal/economy/investingcom_view.py @@ -44,7 +44,7 @@ def display_spread_matrix( raw: bool = False, external_axes: Optional[List[plt.Axes]] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display spread matrix. [Source: Investing.com] @@ -212,7 +212,7 @@ def display_yieldcurve( external_axes: Optional[List[plt.Axes]] = None, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display yield curve for specified country. [Source: Investing.com] @@ -304,7 +304,7 @@ def display_economic_calendar( end_date: str = "", limit=100, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display economic calendar. [Source: Investing.com] diff --git a/openbb_terminal/economy/nasdaq_model.py b/openbb_terminal/economy/nasdaq_model.py index 92eb83d138b..ace479ddf1f 100644 --- a/openbb_terminal/economy/nasdaq_model.py +++ b/openbb_terminal/economy/nasdaq_model.py @@ -207,7 +207,7 @@ def get_big_mac_index(country_code: str = "USA") -> pd.DataFrame: @log_start_end(log=logger) @check_api_key(["API_KEY_QUANDL"]) -def get_big_mac_indices(country_codes: List[str] = None) -> pd.DataFrame: +def get_big_mac_indices(country_codes: Optional[List[str]] = None) -> pd.DataFrame: """Display Big Mac Index for given countries Parameters diff --git a/openbb_terminal/economy/nasdaq_view.py b/openbb_terminal/economy/nasdaq_view.py index 2da1e87dfea..b4b04f57c3e 100644 --- a/openbb_terminal/economy/nasdaq_view.py +++ b/openbb_terminal/economy/nasdaq_view.py @@ -29,7 +29,7 @@ def display_economic_calendar( end_date: str, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display economic calendar for specified country between start and end dates @@ -68,10 +68,10 @@ def display_economic_calendar( @log_start_end(log=logger) @check_api_key(["API_KEY_QUANDL"]) def display_big_mac_index( - country_codes: List[str] = None, + country_codes: Optional[List[str]] = None, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display Big Mac Index for given countries diff --git a/openbb_terminal/economy/plot_view.py b/openbb_terminal/economy/plot_view.py index c7319bb6d76..49fae3d01c7 100644 --- a/openbb_terminal/economy/plot_view.py +++ b/openbb_terminal/economy/plot_view.py @@ -110,7 +110,7 @@ def show_options( raw: str = "", limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """ The ability to plot any data coming from EconDB, FRED or Yahoo Finance. diff --git a/openbb_terminal/economy/quantitative_analysis/qa_controller.py b/openbb_terminal/economy/quantitative_analysis/qa_controller.py index 4fb3e612ad5..2027c51d088 100644 --- a/openbb_terminal/economy/quantitative_analysis/qa_controller.py +++ b/openbb_terminal/economy/quantitative_analysis/qa_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import Dict, List +from typing import Dict, List, Optional import numpy as np import pandas as pd @@ -59,7 +59,7 @@ class QaController(StockBaseController): def __init__( self, all_economy_data: Dict, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/economy/wsj_view.py b/openbb_terminal/economy/wsj_view.py index 6496088f6ce..a219d525a98 100644 --- a/openbb_terminal/economy/wsj_view.py +++ b/openbb_terminal/economy/wsj_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.economy import wsj_model @@ -13,7 +14,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_overview(export: str = "", sheet_name: str = None): +def display_overview(export: str = "", sheet_name: Optional[str] = None): """Market overview with daily change. [Source: Wall St. Journal] Parameters @@ -43,7 +44,7 @@ def display_overview(export: str = "", sheet_name: str = None): @log_start_end(log=logger) -def display_indices(export: str = "", sheet_name: str = None): +def display_indices(export: str = "", sheet_name: Optional[str] = None): """US indices. [Source: Wall St. Journal] Parameters @@ -70,7 +71,7 @@ def display_indices(export: str = "", sheet_name: str = None): @log_start_end(log=logger) -def display_futures(export: str = "", sheet_name: str = None): +def display_futures(export: str = "", sheet_name: Optional[str] = None): """Futures/Commodities. [Source: Wall St. Journal] Parameters @@ -100,7 +101,7 @@ def display_futures(export: str = "", sheet_name: str = None): @log_start_end(log=logger) -def display_usbonds(export: str = "", sheet_name: str = None): +def display_usbonds(export: str = "", sheet_name: Optional[str] = None): """US bonds. [Source: Wall St. Journal] Parameters @@ -127,7 +128,7 @@ def display_usbonds(export: str = "", sheet_name: str = None): @log_start_end(log=logger) -def display_glbonds(export: str = "", sheet_name: str = None): +def display_glbonds(export: str = "", sheet_name: Optional[str] = None): """Global bonds. [Source: Wall St. Journal] Parameters @@ -154,7 +155,7 @@ def display_glbonds(export: str = "", sheet_name: str = None): @log_start_end(log=logger) -def display_currencies(export: str = "", sheet_name: str = None): +def display_currencies(export: str = "", sheet_name: Optional[str] = None): """Display currencies. [Source: Wall St. Journal] Parameters diff --git a/openbb_terminal/economy/yfinance_model.py b/openbb_terminal/economy/yfinance_model.py index 854404ac5c2..757191f0685 100644 --- a/openbb_terminal/economy/yfinance_model.py +++ b/openbb_terminal/economy/yfinance_model.py @@ -673,8 +673,8 @@ def get_available_indices() -> Dict[str, Dict[str, str]]: def get_indices( indices: list, interval: str = "1d", - start_date: int = None, - end_date: int = None, + start_date: Optional[int] = None, + end_date: Optional[int] = None, column: str = "Adj Close", returns: bool = False, ) -> pd.DataFrame: diff --git a/openbb_terminal/economy/yfinance_view.py b/openbb_terminal/economy/yfinance_view.py index 37cd4dd1eae..3767f8ba57d 100644 --- a/openbb_terminal/economy/yfinance_view.py +++ b/openbb_terminal/economy/yfinance_view.py @@ -30,14 +30,14 @@ logger = logging.getLogger(__name__) def show_indices( indices: list, interval: str = "1d", - start_date: int = None, - end_date: int = None, + start_date: Optional[int] = None, + end_date: Optional[int] = None, column: str = "Adj Close", returns: bool = False, raw: bool = False, external_axes: Optional[List[plt.axes]] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Load (and show) the selected indices over time [Source: Yahoo Finance] Parameters diff --git a/openbb_terminal/etf/discovery/disc_controller.py b/openbb_terminal/etf/discovery/disc_controller.py index 96cf81905e5..0c42a72b75d 100644 --- a/openbb_terminal/etf/discovery/disc_controller.py +++ b/openbb_terminal/etf/discovery/disc_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.custom_prompt_toolkit import NestedCompleter @@ -28,7 +28,7 @@ class DiscoveryController(BaseController): PATH = "/etf/disc/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/etf/discovery/wsj_view.py b/openbb_terminal/etf/discovery/wsj_view.py index 5834f3fc5d3..66005be3c9f 100644 --- a/openbb_terminal/etf/discovery/wsj_view.py +++ b/openbb_terminal/etf/discovery/wsj_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.etf.discovery import wsj_model @@ -17,7 +18,7 @@ def show_top_mover( sort_type: str = "gainers", limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """ Show top ETF movers from wsj.com diff --git a/openbb_terminal/etf/etf_controller.py b/openbb_terminal/etf/etf_controller.py index fd354dc553b..4d91cbafa20 100644 --- a/openbb_terminal/etf/etf_controller.py +++ b/openbb_terminal/etf/etf_controller.py @@ -5,7 +5,7 @@ import argparse import logging import os from datetime import datetime, timedelta -from typing import List +from typing import List, Optional import yfinance as yf from thepassiveinvestor import create_ETF_report @@ -83,7 +83,7 @@ class ETFController(BaseController): FILE_PATH = os.path.join(os.path.dirname(__file__), "README.md") CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/etf/financedatabase_view.py b/openbb_terminal/etf/financedatabase_view.py index 17dbf5ed213..e592cde1662 100644 --- a/openbb_terminal/etf/financedatabase_view.py +++ b/openbb_terminal/etf/financedatabase_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import pandas as pd @@ -19,7 +20,7 @@ def display_etf_by_name( name: str, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display a selection of ETFs based on name filtered by total assets. [Source: Finance Database] @@ -66,7 +67,7 @@ def display_etf_by_description( description: str, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display a selection of ETFs based on description filtered by total assets. [Source: Finance Database] @@ -114,7 +115,7 @@ def display_etf_by_category( category: str, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display a selection of ETFs based on a category filtered by total assets. [Source: Finance Database] diff --git a/openbb_terminal/etf/screener/screener_controller.py b/openbb_terminal/etf/screener/screener_controller.py index e8a9b0d9f2d..a28a6ec45c7 100644 --- a/openbb_terminal/etf/screener/screener_controller.py +++ b/openbb_terminal/etf/screener/screener_controller.py @@ -5,7 +5,7 @@ __docformat__ = "numpy" import argparse import configparser import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.custom_prompt_toolkit import NestedCompleter @@ -53,7 +53,7 @@ class ScreenerController(BaseController): PATH = "/etf/scr/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/etf/screener/screener_view.py b/openbb_terminal/etf/screener/screener_view.py index 8c2cdba9959..d19b8184b97 100644 --- a/openbb_terminal/etf/screener/screener_view.py +++ b/openbb_terminal/etf/screener/screener_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.etf.screener import screener_model @@ -21,7 +22,7 @@ def view_screener( sortby: str, ascend: bool, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display screener output diff --git a/openbb_terminal/etf/stockanalysis_view.py b/openbb_terminal/etf/stockanalysis_view.py index 760d33291c0..8a6b4741332 100644 --- a/openbb_terminal/etf/stockanalysis_view.py +++ b/openbb_terminal/etf/stockanalysis_view.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import logging import os -from typing import List +from typing import List, Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.etf import stockanalysis_model @@ -14,7 +14,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def view_overview(symbol: str, export: str = "", sheet_name: str = None): +def view_overview(symbol: str, export: str = "", sheet_name: Optional[str] = None): """Print etf overview information Parameters @@ -49,7 +49,7 @@ def view_overview(symbol: str, export: str = "", sheet_name: str = None): @log_start_end(log=logger) def view_holdings( - symbol: str, limit: int = 10, export: str = "", sheet_name: str = None + symbol: str, limit: int = 10, export: str = "", sheet_name: Optional[str] = None ): """ @@ -83,7 +83,9 @@ def view_holdings( @log_start_end(log=logger) -def view_comparisons(symbols: List[str], export: str = "", sheet_name: str = None): +def view_comparisons( + symbols: List[str], export: str = "", sheet_name: Optional[str] = None +): """Show ETF comparisons Parameters @@ -121,7 +123,7 @@ def view_comparisons(symbols: List[str], export: str = "", sheet_name: str = Non @log_start_end(log=logger) def display_etf_by_name( - name: str, limit: int = 10, export: str = "", sheet_name: str = None + name: str, limit: int = 10, export: str = "", sheet_name: Optional[str] = None ): """Display ETFs matching search string. [Source: StockAnalysis] diff --git a/openbb_terminal/etf/technical_analysis/ta_controller.py b/openbb_terminal/etf/technical_analysis/ta_controller.py index 99efdf16de5..1290c09dcb5 100644 --- a/openbb_terminal/etf/technical_analysis/ta_controller.py +++ b/openbb_terminal/etf/technical_analysis/ta_controller.py @@ -6,7 +6,7 @@ __docformat__ = "numpy" import argparse import logging from datetime import datetime -from typing import List +from typing import List, Optional import numpy as np import pandas as pd @@ -77,7 +77,7 @@ class TechnicalAnalysisController(BaseController): ticker: str, start: datetime, data: pd.DataFrame, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/etf/yfinance_view.py b/openbb_terminal/etf/yfinance_view.py index b0cdc0fba5d..e505328ef38 100644 --- a/openbb_terminal/etf/yfinance_view.py +++ b/openbb_terminal/etf/yfinance_view.py @@ -29,7 +29,7 @@ def display_etf_weightings( raw: bool = False, min_pct_to_display: float = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display sector weightings allocation of ETF. [Source: Yahoo Finance] diff --git a/openbb_terminal/featflags_controller.py b/openbb_terminal/featflags_controller.py index ffe5c1ed1df..2063edab300 100644 --- a/openbb_terminal/featflags_controller.py +++ b/openbb_terminal/featflags_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" # IMPORTATION STANDARD import logging -from typing import List +from typing import List, Optional # IMPORTATION THIRDPARTY from dotenv import set_key @@ -46,7 +46,7 @@ class FeatureFlagsController(BaseController): ] PATH = "/featflags/" - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/forecast/autoarima_view.py b/openbb_terminal/forecast/autoarima_view.py index fb04e8f7dbe..89f311cf7be 100644 --- a/openbb_terminal/forecast/autoarima_view.py +++ b/openbb_terminal/forecast/autoarima_view.py @@ -25,7 +25,7 @@ def display_autoarima_forecast( start_window: float = 0.85, forecast_horizon: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/autoces_view.py b/openbb_terminal/forecast/autoces_view.py index 020bd605a8b..e7f22808e5d 100644 --- a/openbb_terminal/forecast/autoces_view.py +++ b/openbb_terminal/forecast/autoces_view.py @@ -25,7 +25,7 @@ def display_autoces_forecast( start_window: float = 0.85, forecast_horizon: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/autoets_view.py b/openbb_terminal/forecast/autoets_view.py index 56452e6c34b..aeee5f75bee 100644 --- a/openbb_terminal/forecast/autoets_view.py +++ b/openbb_terminal/forecast/autoets_view.py @@ -25,7 +25,7 @@ def display_autoets_forecast( start_window: float = 0.85, forecast_horizon: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/autoselect_view.py b/openbb_terminal/forecast/autoselect_view.py index 64c4ddb5108..a2ccc695a02 100644 --- a/openbb_terminal/forecast/autoselect_view.py +++ b/openbb_terminal/forecast/autoselect_view.py @@ -25,7 +25,7 @@ def display_autoselect_forecast( start_window: float = 0.85, forecast_horizon: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/brnn_model.py b/openbb_terminal/forecast/brnn_model.py index 4a1341f0a65..f42d836eaa0 100644 --- a/openbb_terminal/forecast/brnn_model.py +++ b/openbb_terminal/forecast/brnn_model.py @@ -25,7 +25,7 @@ def get_brnn_data( target_column: str = "close", n_predict: int = 5, train_split: float = 0.85, - past_covariates: str = None, + past_covariates: Optional[str] = None, forecast_horizon: int = 5, input_chunk_length: int = 14, output_chunk_length: int = 5, diff --git a/openbb_terminal/forecast/brnn_view.py b/openbb_terminal/forecast/brnn_view.py index 34b4225001d..e9fc89162b7 100644 --- a/openbb_terminal/forecast/brnn_view.py +++ b/openbb_terminal/forecast/brnn_view.py @@ -21,7 +21,7 @@ def display_brnn_forecast( target_column: str = "close", dataset_name: str = "", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, input_chunk_length: int = 14, @@ -36,7 +36,7 @@ def display_brnn_forecast( force_reset: bool = True, save_checkpoints: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/expo_view.py b/openbb_terminal/forecast/expo_view.py index de41d84f49c..ac5ccb96ddd 100644 --- a/openbb_terminal/forecast/expo_view.py +++ b/openbb_terminal/forecast/expo_view.py @@ -29,7 +29,7 @@ def display_expo_forecast( start_window: float = 0.85, forecast_horizon: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/forecast_controller.py b/openbb_terminal/forecast/forecast_controller.py index 1252f27731c..e6a7d4b7537 100644 --- a/openbb_terminal/forecast/forecast_controller.py +++ b/openbb_terminal/forecast/forecast_controller.py @@ -160,7 +160,10 @@ class ForecastController(BaseController): list_dataset_cols: list = list() def __init__( - self, ticker: str = "", data: pd.DataFrame = empty_df, queue: List[str] = None + self, + ticker: str = "", + data: pd.DataFrame = empty_df, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/forecast/forecast_model.py b/openbb_terminal/forecast/forecast_model.py index 1f6154562bb..713e0d3ddc8 100644 --- a/openbb_terminal/forecast/forecast_model.py +++ b/openbb_terminal/forecast/forecast_model.py @@ -56,7 +56,7 @@ def __sdk_dt_format(x) -> str: @log_start_end(log=logger) def get_options( - datasets: Dict[str, pd.DataFrame], dataset_name: str = None + datasets: Dict[str, pd.DataFrame], dataset_name: Optional[str] = None ) -> Dict[Union[str, Any], pd.DataFrame]: """Obtain columns-dataset combinations from loaded in datasets that can be used in other commands diff --git a/openbb_terminal/forecast/forecast_view.py b/openbb_terminal/forecast/forecast_view.py index ac7af5e13f4..31c8fbc54aa 100644 --- a/openbb_terminal/forecast/forecast_view.py +++ b/openbb_terminal/forecast/forecast_view.py @@ -26,9 +26,9 @@ register_matplotlib_converters() @log_start_end(log=logger) def show_options( datasets: Dict[str, pd.DataFrame], - dataset_name: str = None, + dataset_name: Optional[str] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Plot custom data @@ -72,7 +72,7 @@ def display_plot( data: pd.DataFrame, columns: List[str], export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.axes]] = None, ): """Plot data from a dataset @@ -122,7 +122,7 @@ def display_seasonality( data: pd.DataFrame, column: str = "close", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, m: Optional[int] = None, max_lag: int = 24, alpha: float = 0.05, @@ -179,7 +179,7 @@ def display_seasonality( def display_corr( dataset: pd.DataFrame, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.axes]] = None, ): """Plot correlation coefficients for dataset features @@ -247,7 +247,7 @@ def show_df( limit_col: int = 10, name: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): console.print( f"[green]{name} dataset has shape (row, column): {data.shape}\n[/green]" @@ -277,7 +277,10 @@ def show_df( @log_start_end(log=logger) def describe_df( - data: pd.DataFrame, name: str = "", export: str = "", sheet_name: str = None + data: pd.DataFrame, + name: str = "", + export: str = "", + sheet_name: Optional[str] = None, ): new_df = forecast_model.describe_df(data) print_rich_table( @@ -297,7 +300,7 @@ def describe_df( @log_start_end(log=logger) def export_df( - data: pd.DataFrame, export: str, name: str = "", sheet_name: str = None + data: pd.DataFrame, export: str, name: str = "", sheet_name: Optional[str] = None ) -> None: export_data( export, diff --git a/openbb_terminal/forecast/helpers.py b/openbb_terminal/forecast/helpers.py index 19df1151904..0dceee843df 100644 --- a/openbb_terminal/forecast/helpers.py +++ b/openbb_terminal/forecast/helpers.py @@ -471,9 +471,9 @@ def plot_forecast( precision: Optional[int] = None, probabilistic: bool = False, export: str = "", - sheet_name: str = None, - low_quantile: float = None, - high_quantile: float = None, + sheet_name: Optional[str] = None, + low_quantile: Optional[float] = None, + high_quantile: Optional[float] = None, forecast_only: bool = False, naive: bool = False, export_pred_raw: bool = False, @@ -570,7 +570,7 @@ def plot_forecast( def plot_explainability( model: type[GlobalForecastingModel], explainability_raw=False, - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.axes]] = None, ): """ @@ -639,7 +639,7 @@ def dt_format(x) -> str: def get_series( data: pd.DataFrame, - target_column: str = None, + target_column: Optional[str] = None, is_scaler: bool = True, time_col: str = "date", ) -> Tuple[Optional[Scaler], TimeSeries]: diff --git a/openbb_terminal/forecast/linregr_model.py b/openbb_terminal/forecast/linregr_model.py index 5e4e4d91fc4..f523cad67e6 100644 --- a/openbb_terminal/forecast/linregr_model.py +++ b/openbb_terminal/forecast/linregr_model.py @@ -21,7 +21,7 @@ def get_linear_regression_data( data: Union[pd.Series, pd.DataFrame], target_column: str = "close", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, output_chunk_length: int = 5, diff --git a/openbb_terminal/forecast/linregr_view.py b/openbb_terminal/forecast/linregr_view.py index 6bc09879edc..c8a6f6b8cf4 100644 --- a/openbb_terminal/forecast/linregr_view.py +++ b/openbb_terminal/forecast/linregr_view.py @@ -21,13 +21,13 @@ def display_linear_regression( target_column: str = "close", dataset_name: str = "", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, output_chunk_length: int = 5, lags: Union[int, List[int]] = 14, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/mstl_view.py b/openbb_terminal/forecast/mstl_view.py index 91338983fb1..1d680955129 100644 --- a/openbb_terminal/forecast/mstl_view.py +++ b/openbb_terminal/forecast/mstl_view.py @@ -25,7 +25,7 @@ def display_mstl_forecast( start_window: float = 0.85, forecast_horizon: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/nbeats_model.py b/openbb_terminal/forecast/nbeats_model.py index acb8480bfbe..f57c2436690 100644 --- a/openbb_terminal/forecast/nbeats_model.py +++ b/openbb_terminal/forecast/nbeats_model.py @@ -22,7 +22,7 @@ def get_NBEATS_data( data: Union[pd.Series, pd.DataFrame], target_column: str = "close", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, input_chunk_length: int = 14, diff --git a/openbb_terminal/forecast/nbeats_view.py b/openbb_terminal/forecast/nbeats_view.py index 283f6dac602..24f6907b0a4 100644 --- a/openbb_terminal/forecast/nbeats_view.py +++ b/openbb_terminal/forecast/nbeats_view.py @@ -21,7 +21,7 @@ def display_nbeats_forecast( target_column: str = "close", dataset_name: str = "", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, input_chunk_length: int = 14, @@ -37,7 +37,7 @@ def display_nbeats_forecast( force_reset: bool = True, save_checkpoints: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/nhits_model.py b/openbb_terminal/forecast/nhits_model.py index 43a3d1ed0f4..585646ac88c 100644 --- a/openbb_terminal/forecast/nhits_model.py +++ b/openbb_terminal/forecast/nhits_model.py @@ -24,7 +24,7 @@ def get_nhits_data( target_column: str = "close", n_predict: int = 5, train_split: float = 0.85, - past_covariates: str = None, + past_covariates: Optional[str] = None, forecast_horizon: int = 5, input_chunk_length: int = 14, output_chunk_length: int = 5, diff --git a/openbb_terminal/forecast/nhits_view.py b/openbb_terminal/forecast/nhits_view.py index d4ec81ecdee..1e59be0ecb6 100644 --- a/openbb_terminal/forecast/nhits_view.py +++ b/openbb_terminal/forecast/nhits_view.py @@ -21,7 +21,7 @@ def display_nhits_forecast( target_column: str = "close", dataset_name: str = "", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, input_chunk_length: int = 14, @@ -42,7 +42,7 @@ def display_nhits_forecast( force_reset: bool = True, save_checkpoints: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/regr_model.py b/openbb_terminal/forecast/regr_model.py index 19871d10f24..3be6e9f194f 100644 --- a/openbb_terminal/forecast/regr_model.py +++ b/openbb_terminal/forecast/regr_model.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import logging import warnings -from typing import List, Tuple, Union +from typing import List, Optional, Tuple, Union import pandas as pd from darts import TimeSeries @@ -21,7 +21,7 @@ def get_regression_data( data: Union[pd.Series, pd.DataFrame], target_column: str = "close", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, output_chunk_length: int = 5, diff --git a/openbb_terminal/forecast/regr_view.py b/openbb_terminal/forecast/regr_view.py index 71e34bf4ea5..8dba7396aff 100644 --- a/openbb_terminal/forecast/regr_view.py +++ b/openbb_terminal/forecast/regr_view.py @@ -21,13 +21,13 @@ def display_regression( target_column: str = "close", dataset_name: str = "", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, output_chunk_length: int = 5, lags: Union[int, List[int]] = 14, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/rnn_view.py b/openbb_terminal/forecast/rnn_view.py index 31f25916575..e994a7939a2 100644 --- a/openbb_terminal/forecast/rnn_view.py +++ b/openbb_terminal/forecast/rnn_view.py @@ -35,7 +35,7 @@ def display_rnn_forecast( force_reset: bool = True, save_checkpoints: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/rwd_view.py b/openbb_terminal/forecast/rwd_view.py index fa7720d8859..410d70652f2 100644 --- a/openbb_terminal/forecast/rwd_view.py +++ b/openbb_terminal/forecast/rwd_view.py @@ -24,7 +24,7 @@ def display_rwd_forecast( start_window: float = 0.85, forecast_horizon: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/seasonalnaive_view.py b/openbb_terminal/forecast/seasonalnaive_view.py index e4474df4a2e..ef94bec712c 100644 --- a/openbb_terminal/forecast/seasonalnaive_view.py +++ b/openbb_terminal/forecast/seasonalnaive_view.py @@ -25,7 +25,7 @@ def display_seasonalnaive_forecast( start_window: float = 0.85, forecast_horizon: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/tcn_model.py b/openbb_terminal/forecast/tcn_model.py index 1d0c7467d39..570ab41135a 100644 --- a/openbb_terminal/forecast/tcn_model.py +++ b/openbb_terminal/forecast/tcn_model.py @@ -22,7 +22,7 @@ def get_tcn_data( data: Union[pd.Series, pd.DataFrame], target_column: str = "close", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, input_chunk_length: int = 14, diff --git a/openbb_terminal/forecast/tcn_view.py b/openbb_terminal/forecast/tcn_view.py index 5e7cf5aec94..7701c3d2b89 100644 --- a/openbb_terminal/forecast/tcn_view.py +++ b/openbb_terminal/forecast/tcn_view.py @@ -21,7 +21,7 @@ def display_tcn_forecast( target_column: str = "close", dataset_name: str = "", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, input_chunk_length: int = 14, @@ -37,7 +37,7 @@ def display_tcn_forecast( force_reset: bool = True, save_checkpoints: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/tft_model.py b/openbb_terminal/forecast/tft_model.py index 136ab21f074..512266f0c54 100644 --- a/openbb_terminal/forecast/tft_model.py +++ b/openbb_terminal/forecast/tft_model.py @@ -27,7 +27,7 @@ def get_tft_data( data: Union[pd.Series, pd.DataFrame], target_column: str = "close", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, input_chunk_length: int = 14, diff --git a/openbb_terminal/forecast/tft_view.py b/openbb_terminal/forecast/tft_view.py index 3064027500c..19bffbadea0 100644 --- a/openbb_terminal/forecast/tft_view.py +++ b/openbb_terminal/forecast/tft_view.py @@ -21,7 +21,7 @@ def display_tft_forecast( target_column: str = "close", dataset_name: str = "", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, input_chunk_length: int = 14, @@ -38,7 +38,7 @@ def display_tft_forecast( force_reset: bool = True, save_checkpoints: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/theta_view.py b/openbb_terminal/forecast/theta_view.py index 428e95c1663..b0a54ce8ddb 100644 --- a/openbb_terminal/forecast/theta_view.py +++ b/openbb_terminal/forecast/theta_view.py @@ -27,7 +27,7 @@ def display_theta_forecast( start_window: float = 0.85, forecast_horizon: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forecast/trans_model.py b/openbb_terminal/forecast/trans_model.py index ac89b255820..bea1bbb30fb 100644 --- a/openbb_terminal/forecast/trans_model.py +++ b/openbb_terminal/forecast/trans_model.py @@ -23,7 +23,7 @@ def get_trans_data( target_column: str = "close", n_predict: int = 5, train_split: float = 0.85, - past_covariates: str = None, + past_covariates: Optional[str] = None, forecast_horizon: int = 5, input_chunk_length: int = 14, output_chunk_length: int = 5, diff --git a/openbb_terminal/forecast/trans_view.py b/openbb_terminal/forecast/trans_view.py index fda46a687a6..45b89da7fc7 100644 --- a/openbb_terminal/forecast/trans_view.py +++ b/openbb_terminal/forecast/trans_view.py @@ -21,7 +21,7 @@ def display_trans_forecast( target_column: str = "close", dataset_name: str = "", n_predict: int = 5, - past_covariates: str = None, + past_covariates: Optional[str] = None, train_split: float = 0.85, forecast_horizon: int = 5, input_chunk_length: int = 14, @@ -40,7 +40,7 @@ def display_trans_forecast( force_reset: bool = True, save_checkpoints: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime] = None, diff --git a/openbb_terminal/forex/forex_controller.py b/openbb_terminal/forex/forex_controller.py index 763fd71b29b..6c9d92df8c8 100644 --- a/openbb_terminal/forex/forex_controller.py +++ b/openbb_terminal/forex/forex_controller.py @@ -5,7 +5,7 @@ import argparse import logging import os from datetime import datetime, timedelta -from typing import List +from typing import List, Optional import pandas as pd @@ -61,7 +61,7 @@ class ForexController(BaseController): FILE_PATH = os.path.join(os.path.dirname(__file__), "README.md") CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Construct Data.""" super().__init__(queue) diff --git a/openbb_terminal/forex/fxempire_view.py b/openbb_terminal/forex/fxempire_view.py index d70ccf876fa..4fffac604c0 100644 --- a/openbb_terminal/forex/fxempire_view.py +++ b/openbb_terminal/forex/fxempire_view.py @@ -2,6 +2,7 @@ import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.forex import fxempire_model @@ -16,7 +17,7 @@ def display_forward_rates( to_symbol: str = "USD", from_symbol: str = "EUR", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display forward rates for currency pairs diff --git a/openbb_terminal/forex/oanda/oanda_controller.py b/openbb_terminal/forex/oanda/oanda_controller.py index 9bf70287e0e..148666943cd 100644 --- a/openbb_terminal/forex/oanda/oanda_controller.py +++ b/openbb_terminal/forex/oanda/oanda_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List, Union +from typing import List, Optional, Union from openbb_terminal import ( config_terminal as cfg, @@ -47,7 +47,7 @@ class OandaController(BaseController): PATH = "/forex/oanda/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Construct Data.""" super().__init__(queue) diff --git a/openbb_terminal/forex/quantitative_analysis/qa_controller.py b/openbb_terminal/forex/quantitative_analysis/qa_controller.py index 4c13b3e9e24..522fb675d4e 100644 --- a/openbb_terminal/forex/quantitative_analysis/qa_controller.py +++ b/openbb_terminal/forex/quantitative_analysis/qa_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional import numpy as np import pandas as pd @@ -61,7 +61,7 @@ class QaController(CryptoBaseController): from_symbol: str, to_symbol: str, data: pd.DataFrame, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/forex/technical_analysis/ta_controller.py b/openbb_terminal/forex/technical_analysis/ta_controller.py index 4bfcd38fcf6..95db80e966a 100644 --- a/openbb_terminal/forex/technical_analysis/ta_controller.py +++ b/openbb_terminal/forex/technical_analysis/ta_controller.py @@ -5,7 +5,7 @@ __docformat__ = "numpy" import argparse import logging from datetime import datetime -from typing import List +from typing import List, Optional import numpy as np import pandas as pd @@ -67,7 +67,7 @@ class TechnicalAnalysisController(StockBaseController): start: datetime, interval: str, data: pd.DataFrame, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/futures/futures_controller.py b/openbb_terminal/futures/futures_controller.py index c365abc2008..26713534bea 100644 --- a/openbb_terminal/futures/futures_controller.py +++ b/openbb_terminal/futures/futures_controller.py @@ -6,7 +6,7 @@ __docformat__ = "numpy" import argparse import logging from datetime import datetime, timedelta -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.custom_prompt_toolkit import NestedCompleter @@ -50,7 +50,7 @@ class FuturesController(BaseController): PATH = "/futures/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/futures/yfinance_view.py b/openbb_terminal/futures/yfinance_view.py index eb7156c43a0..6230e48385f 100644 --- a/openbb_terminal/futures/yfinance_view.py +++ b/openbb_terminal/futures/yfinance_view.py @@ -30,7 +30,7 @@ def display_search( exchange: str = "", description: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display search futures [Source: Yahoo Finance] @@ -72,7 +72,7 @@ def display_historical( end_date: Optional[str] = None, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display historical futures [Source: Yahoo Finance] @@ -223,7 +223,7 @@ def display_curve( symbol: str, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display curve futures [Source: Yahoo Finance] diff --git a/openbb_terminal/helper_funcs.py b/openbb_terminal/helper_funcs.py index d5acdfda582..10d28530569 100644 --- a/openbb_terminal/helper_funcs.py +++ b/openbb_terminal/helper_funcs.py @@ -261,12 +261,12 @@ def print_rich_table( show_index: bool = False, title: str = "", index_name: str = "", - headers: Union[List[str], pd.Index] = None, + headers: Optional[Union[List[str], pd.Index]] = None, floatfmt: Union[str, List[str]] = ".2f", show_header: bool = True, automatic_coloring: bool = False, - columns_to_auto_color: List[str] = None, - rows_to_auto_color: List[str] = None, + columns_to_auto_color: Optional[List[str]] = None, + rows_to_auto_color: Optional[List[str]] = None, ): """Prepare a table from df in rich. @@ -1249,7 +1249,7 @@ def get_last_time_market_was_open(dt): return dt -def check_file_type_saved(valid_types: List[str] = None): +def check_file_type_saved(valid_types: Optional[List[str]] = None): """Provide valid types for the user to be able to select. Parameters @@ -1355,7 +1355,7 @@ def export_data( dir_path: str, func_name: str, df: pd.DataFrame = pd.DataFrame(), - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Export data to a file. diff --git a/openbb_terminal/helpers_denomination.py b/openbb_terminal/helpers_denomination.py index c42aa664566..23e675b0e20 100644 --- a/openbb_terminal/helpers_denomination.py +++ b/openbb_terminal/helpers_denomination.py @@ -1,6 +1,6 @@ """Denomination Helper functions""" -from typing import Callable, Dict, Literal, Tuple +from typing import Callable, Dict, Literal, Optional, Tuple import pandas as pd from pandas._typing import Axis @@ -13,10 +13,10 @@ DENOMINATION = Literal[ def transform( df: pd.DataFrame, sourceDenomination: DENOMINATION = "Units", - targetDenomination: DENOMINATION = None, - maxValue: float = None, + targetDenomination: Optional[DENOMINATION] = None, + maxValue: Optional[float] = None, axis: Axis = 0, - skipPredicate: Callable[[pd.Series], bool] = None, + skipPredicate: Optional[Callable[[pd.Series], bool]] = None, ) -> Tuple[pd.DataFrame, DENOMINATION]: """Transforms data frame by denomination. diff --git a/openbb_terminal/keys_controller.py b/openbb_terminal/keys_controller.py index e098f5c0506..a2ed2e8f66b 100644 --- a/openbb_terminal/keys_controller.py +++ b/openbb_terminal/keys_controller.py @@ -5,7 +5,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import Dict, List +from typing import Dict, List, Optional from tqdm import tqdm @@ -36,7 +36,7 @@ class KeysController(BaseController): # pylint: disable=too-many-public-methods def __init__( self, - queue: List[str] = None, + queue: Optional[List[str]] = None, menu_usage: bool = True, env_file: str = str(USER_ENV_FILE), ): diff --git a/openbb_terminal/keys_view.py b/openbb_terminal/keys_view.py index b6231b56137..c356d0684f4 100644 --- a/openbb_terminal/keys_view.py +++ b/openbb_terminal/keys_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal import keys_model from openbb_terminal.decorators import log_start_end @@ -13,7 +14,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_keys(show: bool = False, export: str = "", sheet_name: str = None): +def display_keys( + show: bool = False, export: str = "", sheet_name: Optional[str] = None +): """Display currently set API keys. Parameters diff --git a/openbb_terminal/mutual_funds/investpy_view.py b/openbb_terminal/mutual_funds/investpy_view.py index a2fb44923d8..340a7167ef7 100644 --- a/openbb_terminal/mutual_funds/investpy_view.py +++ b/openbb_terminal/mutual_funds/investpy_view.py @@ -71,7 +71,7 @@ def display_overview( country: str = "united states", limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Displays an overview of the main funds from a country. @@ -141,7 +141,7 @@ def display_historical( data: pd.DataFrame, name: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display historical fund price diff --git a/openbb_terminal/mutual_funds/mutual_fund_controller.py b/openbb_terminal/mutual_funds/mutual_fund_controller.py index 724ab0cf4fa..3f748a7a378 100644 --- a/openbb_terminal/mutual_funds/mutual_fund_controller.py +++ b/openbb_terminal/mutual_funds/mutual_fund_controller.py @@ -5,7 +5,7 @@ import argparse import logging import os from datetime import datetime, timedelta -from typing import List +from typing import List, Optional import pandas as pd @@ -48,7 +48,7 @@ class FundController(BaseController): FILE_PATH = os.path.join(os.path.dirname(__file__), "README.md") CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/mutual_funds/yfinance_view.py b/openbb_terminal/mutual_funds/yfinance_view.py index f1f39afd8d2..713f471940a 100644 --- a/openbb_terminal/mutual_funds/yfinance_view.py +++ b/openbb_terminal/mutual_funds/yfinance_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import matplotlib.pyplot as plt import pandas as pd @@ -21,7 +22,10 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def display_sector( - name: str, min_pct_to_display: float = 5, export: str = "", sheet_name: str = None + name: str, + min_pct_to_display: float = 5, + export: str = "", + sheet_name: Optional[str] = None, ): """Display sector weightings for fund diff --git a/openbb_terminal/parent_classes.py b/openbb_terminal/parent_classes.py index c84353df4d2..4cc54be051f 100644 --- a/openbb_terminal/parent_classes.py +++ b/openbb_terminal/parent_classes.py @@ -11,7 +11,7 @@ import os import re from abc import ABCMeta, abstractmethod from datetime import datetime, timedelta -from typing import Any, Dict, List, Union +from typing import Any, Dict, List, Optional, Union import numpy as np import pandas as pd @@ -117,7 +117,7 @@ class BaseController(metaclass=ABCMeta): return choices - def __init__(self, queue: List[str] = None) -> None: + def __init__(self, queue: Optional[List[str]] = None) -> None: """Create the base class for any controller in the codebase. Used to simplify the creation of menus. diff --git a/openbb_terminal/portfolio/brokers/ally/ally_controller.py b/openbb_terminal/portfolio/brokers/ally/ally_controller.py index 6591506a010..e1f8ad06033 100644 --- a/openbb_terminal/portfolio/brokers/ally/ally_controller.py +++ b/openbb_terminal/portfolio/brokers/ally/ally_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.custom_prompt_toolkit import NestedCompleter @@ -34,7 +34,7 @@ class AllyController(BaseController): PATH = "/portfolio/bro/ally/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/portfolio/brokers/ally/ally_view.py b/openbb_terminal/portfolio/brokers/ally/ally_view.py index 1441dd96170..ae4fd987820 100644 --- a/openbb_terminal/portfolio/brokers/ally/ally_view.py +++ b/openbb_terminal/portfolio/brokers/ally/ally_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -12,7 +13,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_history(limit: int = 15, export: str = "", sheet_name: str = None) -> None: +def display_history( + limit: int = 15, export: str = "", sheet_name: Optional[str] = None +) -> None: history = ally_model.get_history(limit) show_history = history[["amount", "date", "symbol", "transactiontype", "quantity"]] print_rich_table( @@ -32,7 +35,7 @@ def display_history(limit: int = 15, export: str = "", sheet_name: str = None) - @log_start_end(log=logger) -def display_holdings(export: str = "", sheet_name: str = None) -> None: +def display_holdings(export: str = "", sheet_name: Optional[str] = None) -> None: """Display holdings from ally account Parameters @@ -56,7 +59,7 @@ def display_holdings(export: str = "", sheet_name: str = None) -> None: @log_start_end(log=logger) -def display_balances(export: str = "", sheet_name: str = None) -> None: +def display_balances(export: str = "", sheet_name: Optional[str] = None) -> None: """Display balances from ally account Parameters @@ -112,7 +115,7 @@ def display_top_lists( exchange: str = "", limit: int = 20, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """ Display top lists from ally Invest API. Documentation for parameters below: diff --git a/openbb_terminal/portfolio/brokers/bro_controller.py b/openbb_terminal/portfolio/brokers/bro_controller.py index b0b4d35c11f..2784cf8140b 100644 --- a/openbb_terminal/portfolio/brokers/bro_controller.py +++ b/openbb_terminal/portfolio/brokers/bro_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" # pylint: disable=R1710 import logging -from typing import List, Set +from typing import List, Optional, Set from openbb_terminal import feature_flags as obbff from openbb_terminal.custom_prompt_toolkit import NestedCompleter @@ -27,7 +27,7 @@ class BrokersController(BaseController): PATH = "/portfolio/bro/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/portfolio/brokers/coinbase/coinbase_controller.py b/openbb_terminal/portfolio/brokers/coinbase/coinbase_controller.py index e83dc6eebb2..44b6bfa561d 100644 --- a/openbb_terminal/portfolio/brokers/coinbase/coinbase_controller.py +++ b/openbb_terminal/portfolio/brokers/coinbase/coinbase_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" # pylint: disable=R0904, C0302, W0622 import argparse import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.custom_prompt_toolkit import NestedCompleter @@ -40,7 +40,7 @@ class CoinbaseController(BaseController): PATH = "/portfolio/bro/cb/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/portfolio/brokers/coinbase/coinbase_view.py b/openbb_terminal/portfolio/brokers/coinbase/coinbase_view.py index 37af663ee90..7d7f50ba19a 100644 --- a/openbb_terminal/portfolio/brokers/coinbase/coinbase_view.py +++ b/openbb_terminal/portfolio/brokers/coinbase/coinbase_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import check_api_key, log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -14,7 +15,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) @check_api_key(["API_COINBASE_KEY", "API_COINBASE_SECRET", "API_COINBASE_PASS_PHRASE"]) def display_account( - currency: str = "USD", export: str = "", sheet_name: str = None + currency: str = "USD", export: str = "", sheet_name: Optional[str] = None ) -> None: """Display list of all your trading accounts. [Source: Coinbase] @@ -51,7 +52,7 @@ def display_account( @log_start_end(log=logger) @check_api_key(["API_COINBASE_KEY", "API_COINBASE_SECRET", "API_COINBASE_PASS_PHRASE"]) def display_history( - account: str, export: str = "", sheet_name: str = None, limit: int = 20 + account: str, export: str = "", sheet_name: Optional[str] = None, limit: int = 20 ) -> None: """Display account history. [Source: Coinbase] @@ -93,7 +94,7 @@ def display_orders( sortby: str = "price", descend: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """List your current open orders [Source: Coinbase] @@ -134,7 +135,7 @@ def display_deposits( deposit_type: str = "deposit", descend: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display deposits into account [Source: Coinbase] diff --git a/openbb_terminal/portfolio/brokers/degiro/degiro_controller.py b/openbb_terminal/portfolio/brokers/degiro/degiro_controller.py index b2d663c4477..ecd7a56b63a 100644 --- a/openbb_terminal/portfolio/brokers/degiro/degiro_controller.py +++ b/openbb_terminal/portfolio/brokers/degiro/degiro_controller.py @@ -2,7 +2,7 @@ import argparse import datetime import logging -from typing import List +from typing import List, Optional # IMPORTATION INTERNAL from openbb_terminal import feature_flags as obbff @@ -35,7 +35,7 @@ class DegiroController(BaseController): ] PATH = "/portfolio/bro/degiro/" - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/portfolio/brokers/degiro/degiro_view.py b/openbb_terminal/portfolio/brokers/degiro/degiro_view.py index cfe13e8c6ee..d109847ab85 100644 --- a/openbb_terminal/portfolio/brokers/degiro/degiro_view.py +++ b/openbb_terminal/portfolio/brokers/degiro/degiro_view.py @@ -1,6 +1,7 @@ # IMPORTATION THIRDPARTY import logging from argparse import Namespace +from typing import Optional # IMPORTATION THIRDPARTY import pandas as pd @@ -311,7 +312,7 @@ class DegiroView: @log_start_end(log=logger) @check_api_key(["DG_USERNAME", "DG_PASSWORD"]) - def login(self, otp: int = None): + def login(self, otp: Optional[int] = None): # GET ATTRIBUTES degiro_model = self.__degiro_model credentials = degiro_model.login_default_credentials() diff --git a/openbb_terminal/portfolio/brokers/robinhood/robinhood_controller.py b/openbb_terminal/portfolio/brokers/robinhood/robinhood_controller.py index 4b78f57a8dd..0ca27f46bb7 100644 --- a/openbb_terminal/portfolio/brokers/robinhood/robinhood_controller.py +++ b/openbb_terminal/portfolio/brokers/robinhood/robinhood_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.custom_prompt_toolkit import NestedCompleter @@ -25,7 +25,7 @@ class RobinhoodController(BaseController): PATH = "/portfolio/bro/rh/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/portfolio/brokers/robinhood/robinhood_view.py b/openbb_terminal/portfolio/brokers/robinhood/robinhood_view.py index 81d91144a48..cbfaa7601e7 100644 --- a/openbb_terminal/portfolio/brokers/robinhood/robinhood_view.py +++ b/openbb_terminal/portfolio/brokers/robinhood/robinhood_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import matplotlib.pyplot as plt import mplfinance as mpf @@ -28,7 +29,7 @@ span_title_dict = { @log_start_end(log=logger) -def display_holdings(export: str = "", sheet_name: str = None): +def display_holdings(export: str = "", sheet_name: Optional[str] = None): """Display stock holdings in robinhood Parameters @@ -55,7 +56,7 @@ def display_historical( interval: str = "day", window: str = "3month", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display historical portfolio diff --git a/openbb_terminal/portfolio/portfolio_analysis/pa_controller.py b/openbb_terminal/portfolio/portfolio_analysis/pa_controller.py index 28dcac38046..14a2c5c8030 100644 --- a/openbb_terminal/portfolio/portfolio_analysis/pa_controller.py +++ b/openbb_terminal/portfolio/portfolio_analysis/pa_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import argparse import logging from pathlib import Path -from typing import List +from typing import List, Optional import pandas as pd @@ -46,7 +46,7 @@ class PortfolioAnalysisController(BaseController): ] PATH = "/portfolio/pa/" - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): super().__init__(queue) self.portfolio_name = "" diff --git a/openbb_terminal/portfolio/portfolio_controller.py b/openbb_terminal/portfolio/portfolio_controller.py index 1ebf9189de0..c2a9125e812 100644 --- a/openbb_terminal/portfolio/portfolio_controller.py +++ b/openbb_terminal/portfolio/portfolio_controller.py @@ -5,7 +5,7 @@ import argparse import logging import os from datetime import date -from typing import List +from typing import List, Optional import pandas as pd @@ -107,7 +107,7 @@ class PortfolioController(BaseController): PATH = "/portfolio/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) self.file_types = ["xlsx", "csv"] diff --git a/openbb_terminal/portfolio/portfolio_optimization/optimizer_helper.py b/openbb_terminal/portfolio/portfolio_optimization/optimizer_helper.py index 5d8c4437461..1f0099d12e1 100644 --- a/openbb_terminal/portfolio/portfolio_optimization/optimizer_helper.py +++ b/openbb_terminal/portfolio/portfolio_optimization/optimizer_helper.py @@ -2,7 +2,7 @@ __docformat__ = "numpy" import argparse -from typing import Any +from typing import Any, Optional import pandas as pd @@ -159,7 +159,7 @@ def validate_risk_measure(risk_measure: str, warning: bool = True) -> str: return "MV" -def get_kwarg(key: str, kwargs: dict, default: Any = None) -> Any: +def get_kwarg(key: str, kwargs: dict, default: Optional[Any] = None) -> Any: """Get a key from kwargs If key is in kwargs, returns it. diff --git a/openbb_terminal/portfolio/portfolio_optimization/optimizer_view.py b/openbb_terminal/portfolio/portfolio_optimization/optimizer_view.py index e144c761185..4e573a54126 100644 --- a/openbb_terminal/portfolio/portfolio_optimization/optimizer_view.py +++ b/openbb_terminal/portfolio/portfolio_optimization/optimizer_view.py @@ -162,8 +162,8 @@ def portfolio_performance( risk_free_rate: float = 0, alpha: float = 0.05, a_sim: float = 100, - beta: float = None, - b_sim: float = None, + beta: Optional[float] = None, + b_sim: Optional[float] = None, ): """ Prints portfolio performance indicators @@ -1925,9 +1925,9 @@ def display_max_decorr( @log_start_end(log=logger) def display_black_litterman( symbols: List[str], - p_views: List = None, - q_views: List = None, - benchmark: Dict = None, + p_views: Optional[List] = None, + q_views: Optional[List] = None, + benchmark: Optional[Dict] = None, interval: str = "3y", start_date: str = "", end_date: str = "", @@ -1939,7 +1939,7 @@ def display_black_litterman( objective: str = "Sharpe", risk_free_rate: float = 0, risk_aversion: float = 1, - delta: float = None, + delta: Optional[float] = None, equilibrium: bool = True, optimize: bool = True, value: float = 1.0, @@ -2295,7 +2295,7 @@ def display_risk_parity( threshold: float = 0, method: str = "time", risk_measure: str = "mv", - risk_cont: List[str] = None, + risk_cont: Optional[List[str]] = None, risk_free_rate: float = 0, alpha: float = 0.05, target_return: float = -1, @@ -2448,7 +2448,7 @@ def display_rel_risk_parity( threshold: float = 0, method: str = "time", version: str = "A", - risk_cont: List[str] = None, + risk_cont: Optional[List[str]] = None, penal_factor: float = 1, target_return: float = -1, mean: str = "hist", @@ -2596,10 +2596,10 @@ def display_hcp( risk_aversion: float = 1.0, alpha: float = 0.05, a_sim: int = 100, - beta: float = None, - b_sim: int = None, + beta: Optional[float] = None, + b_sim: Optional[int] = None, linkage: str = "ward", - k: int = None, + k: Optional[int] = None, max_k: int = 10, bins_info: str = "KN", alpha_tail: float = 0.05, @@ -2864,8 +2864,8 @@ def display_hrp( risk_aversion: float = 1.0, alpha: float = 0.05, a_sim: int = 100, - beta: float = None, - b_sim: int = None, + beta: Optional[float] = None, + b_sim: Optional[int] = None, linkage: str = "single", k: int = 0, max_k: int = 10, @@ -3108,8 +3108,8 @@ def display_herc( risk_aversion: float = 1.0, alpha: float = 0.05, a_sim: int = 100, - beta: float = None, - b_sim: int = None, + beta: Optional[float] = None, + b_sim: Optional[int] = None, linkage: str = "ward", k: int = 0, max_k: int = 10, @@ -3361,10 +3361,10 @@ def display_nco( risk_aversion: float = 1.0, alpha: float = 0.05, a_sim: int = 100, - beta: float = None, - b_sim: int = None, + beta: Optional[float] = None, + b_sim: Optional[int] = None, linkage: str = "ward", - k: int = None, + k: Optional[int] = None, max_k: int = 10, bins_info: str = "KN", alpha_tail: float = 0.05, @@ -3720,7 +3720,7 @@ def pie_chart_weights( def additional_plots( weights: Dict, data: pd.DataFrame, - category_dict: Dict = None, + category_dict: Optional[Dict] = None, category: str = "", portfolio_name: str = "", freq: str = "D", @@ -3728,8 +3728,8 @@ def additional_plots( risk_free_rate: float = 0, alpha: float = 0.05, a_sim: float = 100, - beta: float = None, - b_sim: float = None, + beta: Optional[float] = None, + b_sim: Optional[float] = None, pie: bool = False, hist: bool = False, dd: bool = False, diff --git a/openbb_terminal/portfolio/portfolio_optimization/parameters/Parameter.py b/openbb_terminal/portfolio/portfolio_optimization/parameters/Parameter.py index fc36685b5a7..82c258809cc 100644 --- a/openbb_terminal/portfolio/portfolio_optimization/parameters/Parameter.py +++ b/openbb_terminal/portfolio/portfolio_optimization/parameters/Parameter.py @@ -1,5 +1,5 @@ from dataclasses import dataclass -from typing import Any, List, Optional, Type +from typing import Any, List, Optional # pylint: disable=unidiomatic-typecheck @@ -21,7 +21,7 @@ class Parameter: """ name: str - type_: Type + type_: Any default: Any choices: Optional[List[Any]] = None diff --git a/openbb_terminal/portfolio/portfolio_optimization/parameters/params_controller.py b/openbb_terminal/portfolio/portfolio_optimization/parameters/params_controller.py index 15ba1f7276a..e38739fe735 100644 --- a/openbb_terminal/portfolio/portfolio_optimization/parameters/params_controller.py +++ b/openbb_terminal/portfolio/portfolio_optimization/parameters/params_controller.py @@ -64,7 +64,7 @@ class ParametersController(BaseController): def __init__( self, file: str, - queue: List[str] = None, + queue: Optional[List[str]] = None, params: Optional[dict] = None, current_model=None, ): diff --git a/openbb_terminal/portfolio/portfolio_optimization/parameters/params_statics.py b/openbb_terminal/portfolio/portfolio_optimization/parameters/params_statics.py index 18a01a877b6..34d479c0efe 100644 --- a/openbb_terminal/portfolio/portfolio_optimization/parameters/params_statics.py +++ b/openbb_terminal/portfolio/portfolio_optimization/parameters/params_statics.py @@ -1,7 +1,9 @@ +from typing import Dict + DEFAULT_RANGE = [value / 1000 for value in range(0, 1001)] DEFAULT_BOOL = ["True", "False"] -AVAILABLE_OPTIONS = { +AVAILABLE_OPTIONS: Dict = { "historic_period": ["d", "w", "mo", "y", "ytd", "max"], "start_period": ["Any"], "end_period": ["Any"], diff --git a/openbb_terminal/portfolio/portfolio_optimization/po_controller.py b/openbb_terminal/portfolio/portfolio_optimization/po_controller.py index 3b855afa6e8..d7eb060f610 100644 --- a/openbb_terminal/portfolio/portfolio_optimization/po_controller.py +++ b/openbb_terminal/portfolio/portfolio_optimization/po_controller.py @@ -5,7 +5,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import Dict, List, Tuple +from typing import Dict, List, Optional, Tuple from openbb_terminal import ( feature_flags as obbff, @@ -212,10 +212,10 @@ class PortfolioOptimizationController(BaseController): def __init__( self, - tickers: List[str] = None, - portfolios: Dict = None, - categories: Dict = None, - queue: List[str] = None, + tickers: Optional[List[str]] = None, + portfolios: Optional[Dict] = None, + categories: Optional[Dict] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) @@ -559,6 +559,7 @@ class PortfolioOptimizationController(BaseController): help="Parameter file to be used", choices=self.optimization_file_map.keys(), metavar="FILE", + type=str, ) if other_args and "-" not in other_args[0][0]: other_args.insert(0, "--file") @@ -580,7 +581,7 @@ class PortfolioOptimizationController(BaseController): else: file_location = self.current_file # type: ignore - self.params, self.current_model = params_view.load_file(file_location) + self.params, self.current_model = params_view.load_file(file_location) # type: ignore @log_start_end(log=logger) def call_params(self, _): diff --git a/openbb_terminal/portfolio/portfolio_optimization/po_engine.py b/openbb_terminal/portfolio/portfolio_optimization/po_engine.py index 0742e3a244b..9b38705a041 100644 --- a/openbb_terminal/portfolio/portfolio_optimization/po_engine.py +++ b/openbb_terminal/portfolio/portfolio_optimization/po_engine.py @@ -1,4 +1,4 @@ -from typing import Dict, List, Tuple +from typing import Dict, List, Optional, Tuple import pandas as pd @@ -16,9 +16,9 @@ class PoEngine: def __init__( self, - symbols_categories: Dict[str, Dict[str, str]] = None, - symbols_file_path: str = None, - parameters_file_path: str = None, + symbols_categories: Optional[Dict[str, Dict[str, str]]] = None, + symbols_file_path: Optional[str] = None, + parameters_file_path: Optional[str] = None, ): """Initialize the engine @@ -133,7 +133,7 @@ class PoEngine: return available_categories - def get_category(self, category: str = None) -> Dict[str, str]: + def get_category(self, category: Optional[str] = None) -> Dict[str, str]: """Get the category Parameters @@ -168,7 +168,7 @@ class PoEngine: return {} return self._categories - def get_category_df(self, category: str = None) -> pd.DataFrame: + def get_category_df(self, category: Optional[str] = None) -> pd.DataFrame: """Get the category df Returns diff --git a/openbb_terminal/portfolio/portfolio_optimization/po_model.py b/openbb_terminal/portfolio/portfolio_optimization/po_model.py index 355df0702a3..6ed7d8d16cd 100644 --- a/openbb_terminal/portfolio/portfolio_optimization/po_model.py +++ b/openbb_terminal/portfolio/portfolio_optimization/po_model.py @@ -37,9 +37,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def generate_portfolio( - symbols_categories: Dict[str, Dict[str, str]] = None, - symbols_file_path: str = None, - parameters_file_path: str = None, + symbols_categories: Optional[Dict[str, Dict[str, str]]] = None, + symbols_file_path: Optional[str] = None, + parameters_file_path: Optional[str] = None, ) -> Union[PoEngine, None]: """Load portfolio optimization engine @@ -273,7 +273,7 @@ def get_portfolio_performance(weights: Dict, data: pd.DataFrame, **kwargs) -> Di @log_start_end(log=logger) def get_maxsharpe( - portfolio_engine: PoEngine = None, **kwargs + portfolio_engine: Optional[PoEngine] = None, **kwargs ) -> Tuple[pd.DataFrame, Dict]: """Optimize Sharpe ratio weights @@ -419,7 +419,7 @@ def get_maxsharpe( @log_start_end(log=logger) def get_minrisk( - portfolio_engine: PoEngine = None, **kwargs + portfolio_engine: Optional[PoEngine] = None, **kwargs ) -> Tuple[pd.DataFrame, Dict]: """Optimize minimum risk weights @@ -565,7 +565,7 @@ def get_minrisk( @log_start_end(log=logger) def get_maxutil( - portfolio_engine: PoEngine = None, **kwargs + portfolio_engine: Optional[PoEngine] = None, **kwargs ) -> Tuple[pd.DataFrame, Dict]: """Optimize maximum utility weights @@ -711,7 +711,7 @@ def get_maxutil( @log_start_end(log=logger) def get_maxret( - portfolio_engine: PoEngine = None, **kwargs + portfolio_engine: Optional[PoEngine] = None, **kwargs ) -> Tuple[pd.DataFrame, Dict]: """Optimize maximum return weights @@ -857,7 +857,7 @@ def get_maxret( @log_start_end(log=logger) def get_maxdiv( - portfolio_engine: PoEngine = None, **kwargs + portfolio_engine: Optional[PoEngine] = None, **kwargs ) -> Tuple[pd.DataFrame, Dict]: """Optimize diversification weights @@ -980,7 +980,7 @@ def get_maxdiv( @log_start_end(log=logger) def get_maxdecorr( - portfolio_engine: PoEngine = None, **kwargs + portfolio_engine: Optional[PoEngine] = None, **kwargs ) -> Tuple[pd.DataFrame, Dict]: """Optimize decorrelation weights @@ -1081,7 +1081,7 @@ def get_maxdecorr( @log_start_end(log=logger) def get_blacklitterman( - portfolio_engine: PoEngine = None, **kwargs + portfolio_engine: Optional[PoEngine] = None, **kwargs ) -> Tuple[pd.DataFrame, Dict]: """Optimize decorrelation weights @@ -1191,7 +1191,7 @@ def get_blacklitterman( @log_start_end(log=logger) def get_ef( - portfolio_engine: PoEngine = None, **kwargs + portfolio_engine: Optional[PoEngine] = None, **kwargs ) -> Tuple[ pd.DataFrame, pd.DataFrame, @@ -1315,7 +1315,7 @@ def get_ef( @log_start_end(log=logger) def get_riskparity( - portfolio_engine: PoEngine = None, **kwargs + portfolio_engine: Optional[PoEngine] = None, **kwargs ) -> Tuple[pd.DataFrame, Dict]: """Optimize with Risk Parity using the risk budgeting approach @@ -1448,7 +1448,7 @@ def get_riskparity( @log_start_end(log=logger) def get_relriskparity( - portfolio_engine: PoEngine = None, **kwargs + portfolio_engine: Optional[PoEngine] = None, **kwargs ) -> Tuple[pd.DataFrame, Dict]: """Optimize with Relaxed Risk Parity using the least squares approach @@ -1591,7 +1591,9 @@ def get_relriskparity( @log_start_end(log=logger) -def get_hrp(portfolio_engine: PoEngine = None, **kwargs) -> Tuple[pd.DataFrame, Dict]: +def get_hrp( + portfolio_engine: Optional[PoEngine] = None, **kwargs +) -> Tuple[pd.DataFrame, Dict]: """Optimize with Hierarchical Risk Parity Parameters @@ -1790,7 +1792,9 @@ def get_hrp(portfolio_engine: PoEngine = None, **kwargs) -> Tuple[pd.DataFrame, @log_start_end(log=logger) -def get_herc(portfolio_engine: PoEngine = None, **kwargs) -> Tuple[pd.DataFrame, Dict]: +def get_herc( + portfolio_engine: Optional[PoEngine] = None, **kwargs +) -> Tuple[pd.DataFrame, Dict]: """Optimize with Hierarchical Equal Risk Contribution (HERC) method. Parameters @@ -1989,7 +1993,9 @@ def get_herc(portfolio_engine: PoEngine = None, **kwargs) -> Tuple[pd.DataFrame, @log_start_end(log=logger) -def get_nco(portfolio_engine: PoEngine = None, **kwargs) -> Tuple[pd.DataFrame, Dict]: +def get_nco( + portfolio_engine: Optional[PoEngine] = None, **kwargs +) -> Tuple[pd.DataFrame, Dict]: """Optimize with Non-Convex Optimization (NCO) model. Parameters @@ -2188,7 +2194,9 @@ def get_nco(portfolio_engine: PoEngine = None, **kwargs) -> Tuple[pd.DataFrame, @log_start_end(log=logger) -def get_equal(portfolio_engine: PoEngine = None, **kwargs) -> Tuple[pd.DataFrame, Dict]: +def get_equal( + portfolio_engine: Optional[PoEngine] = None, **kwargs +) -> Tuple[pd.DataFrame, Dict]: """Equally weighted portfolio, where weight = 1/# of symbols Parameters @@ -2268,7 +2276,7 @@ def get_equal(portfolio_engine: PoEngine = None, **kwargs) -> Tuple[pd.DataFrame @log_start_end(log=logger) def get_mktcap( - portfolio_engine: PoEngine = None, **kwargs + portfolio_engine: Optional[PoEngine] = None, **kwargs ) -> Tuple[pd.DataFrame, Dict]: """Optimize weighted according to market capitalization @@ -2349,7 +2357,7 @@ def get_mktcap( @log_start_end(log=logger) def get_dividend( - portfolio_engine: PoEngine = None, **kwargs + portfolio_engine: Optional[PoEngine] = None, **kwargs ) -> Tuple[pd.DataFrame, Dict]: """Optimize weighted according to dividend yield @@ -2430,7 +2438,7 @@ def get_dividend( @log_start_end(log=logger) def get_property( - portfolio_engine: PoEngine = None, + portfolio_engine: Optional[PoEngine] = None, prop: str = "marketCap", **kwargs, ) -> Tuple[pd.DataFrame, Dict]: @@ -2521,7 +2529,7 @@ def get_property( @log_start_end(log=logger) def show( portfolio_engine: PoEngine, - category: str = None, + category: Optional[str] = None, ) -> Union[pd.DataFrame, pd.DataFrame]: """Show portfolio optimization results diff --git a/openbb_terminal/portfolio/portfolio_optimization/po_view.py b/openbb_terminal/portfolio/portfolio_optimization/po_view.py index 95a91167a28..c24bcf9c52a 100644 --- a/openbb_terminal/portfolio/portfolio_optimization/po_view.py +++ b/openbb_terminal/portfolio/portfolio_optimization/po_view.py @@ -31,6 +31,7 @@ from openbb_terminal.portfolio.portfolio_optimization.statics import ( TIME_FACTOR, ) from openbb_terminal.rich_config import console +from typing import Optional warnings.filterwarnings("ignore") @@ -38,7 +39,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_ef(portfolio_engine: PoEngine = None, **kwargs): +def display_ef(portfolio_engine: Optional[PoEngine] = None, **kwargs): """Display efficient frontier Parameters @@ -245,7 +246,9 @@ def display_ef(portfolio_engine: PoEngine = None, **kwargs): @log_start_end(log=logger) -def display_plot(portfolio_engine: PoEngine = None, chart_type: str = "pie", **kwargs): +def display_plot( + portfolio_engine: Optional[PoEngine] = None, chart_type: str = "pie", **kwargs +): """ Display efficient frontier diff --git a/openbb_terminal/portfolio/portfolio_view.py b/openbb_terminal/portfolio/portfolio_view.py index 0e26791c474..34c3ac48840 100644 --- a/openbb_terminal/portfolio/portfolio_view.py +++ b/openbb_terminal/portfolio/portfolio_view.py @@ -99,7 +99,7 @@ def display_transactions( show_index=False, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display portfolio transactions @@ -390,7 +390,7 @@ def display_yearly_returns( window: str = "all", raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[plt.Axes] = None, ): """Display yearly returns @@ -475,7 +475,7 @@ def display_monthly_returns( graph: bool = False, show_vals: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[plt.Axes] = None, ): """Display monthly returns @@ -622,7 +622,7 @@ def display_daily_returns( raw: bool = False, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[plt.Axes] = None, ): """Display daily returns @@ -699,7 +699,7 @@ def display_distribution_returns( window: str = "all", raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[plt.Axes] = None, ): """Display daily returns @@ -789,7 +789,7 @@ def display_holdings_value( raw: bool = False, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[plt.Axes] = None, ): """Display holdings of assets (absolute value) @@ -872,7 +872,7 @@ def display_holdings_percentage( raw: bool = False, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[plt.Axes] = None, ): """Display holdings of assets (in percentage) @@ -958,7 +958,7 @@ def display_rolling_volatility( portfolio_engine: PortfolioEngine, window: str = "1y", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display rolling volatility @@ -1019,7 +1019,7 @@ def display_rolling_sharpe( risk_free_rate: float = 0, window: str = "1y", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display rolling sharpe @@ -1082,7 +1082,7 @@ def display_rolling_sortino( risk_free_rate: float = 0, window: str = "1y", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display rolling sortino @@ -1144,7 +1144,7 @@ def display_rolling_beta( portfolio_engine: PortfolioEngine, window: str = "1y", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display rolling beta @@ -1208,7 +1208,7 @@ def display_rolling_beta( def display_maximum_drawdown( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display maximum drawdown curve @@ -1257,7 +1257,7 @@ def display_maximum_drawdown( def display_rsquare( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display R-square @@ -1292,7 +1292,7 @@ def display_rsquare( def display_skewness( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display skewness @@ -1325,7 +1325,7 @@ def display_skewness( def display_kurtosis( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display kurtosis @@ -1359,7 +1359,7 @@ def display_stats( portfolio_engine: PortfolioEngine, window: str = "all", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display stats @@ -1394,7 +1394,7 @@ def display_stats( def display_volatility( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display volatility for multiple intervals @@ -1428,7 +1428,7 @@ def display_sharpe_ratio( portfolio_engine: PortfolioEngine, risk_free_rate: float = 0, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display sharpe ratio for multiple intervals @@ -1464,7 +1464,7 @@ def display_sortino_ratio( portfolio_engine: PortfolioEngine, risk_free_rate: float = 0, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display sortino ratio for multiple intervals @@ -1499,7 +1499,7 @@ def display_sortino_ratio( def display_maximum_drawdown_ratio( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display maximum drawdown for multiple intervals @@ -1532,7 +1532,7 @@ def display_maximum_drawdown_ratio( def display_gaintopain_ratio( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display gain-to-pain ratio for multiple intervals @@ -1564,7 +1564,7 @@ def display_gaintopain_ratio( def display_tracking_error( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display tracking error for multiple intervals @@ -1597,7 +1597,7 @@ def display_tracking_error( def display_information_ratio( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display information ratio for multiple intervals @@ -1629,7 +1629,7 @@ def display_information_ratio( def display_tail_ratio( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display tail ratio for multiple intervals @@ -1664,7 +1664,7 @@ def display_tail_ratio( def display_common_sense_ratio( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display common sense ratio for multiple intervals @@ -1697,7 +1697,7 @@ def display_jensens_alpha( portfolio_engine: PortfolioEngine, risk_free_rate: float = 0, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display jensens alpha for multiple intervals @@ -1732,7 +1732,7 @@ def display_jensens_alpha( def display_calmar_ratio( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display calmar ratio for multiple intervals @@ -1765,7 +1765,7 @@ def display_calmar_ratio( def display_kelly_criterion( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display kelly criterion for multiple intervals @@ -1796,7 +1796,7 @@ def display_kelly_criterion( def display_payoff_ratio( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display payoff ratio for multiple intervals @@ -1828,7 +1828,7 @@ def display_payoff_ratio( def display_profit_factor( portfolio_engine: PortfolioEngine, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display profit factor for multiple intervals @@ -1863,7 +1863,7 @@ def display_summary( window: str = "all", risk_free_rate: float = 0, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display summary portfolio and benchmark returns diff --git a/openbb_terminal/reports/reports_controller.py b/openbb_terminal/reports/reports_controller.py index 146701b34da..fd0f5355a02 100644 --- a/openbb_terminal/reports/reports_controller.py +++ b/openbb_terminal/reports/reports_controller.py @@ -6,7 +6,7 @@ import logging import os # pylint: disable=R1732, R0912 -from typing import Any, Dict, List +from typing import Any, Dict, List, Optional import openbb_terminal.config_terminal as cfg from openbb_terminal import feature_flags as obbff @@ -43,7 +43,7 @@ class ReportController(BaseController): REPORTS = sorted(list(set(CHOICES_COMMANDS).intersection(REPORTS))) PARAMETERS_DICT: Dict[str, Any] = {} - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/reports/templates/equity.ipynb b/openbb_terminal/reports/templates/equity.ipynb index 24cbbfb5078..a4e7d1cf8c0 100644 --- a/openbb_terminal/reports/templates/equity.ipynb +++ b/openbb_terminal/reports/templates/equity.ipynb @@ -319,7 +319,7 @@ "expiry_dates = openbb.stocks.options.expirations(symbol)\n", "exp = expiry_dates[0]\n", "option_chain = openbb.stocks.options.chains(symbol, expiration=exp)\n", - "current_price = float(ticker_data['Adj Close'][-1])" + "current_price = float(ticker_data[\"Adj Close\"][-1])" ] }, { @@ -329,8 +329,8 @@ "metadata": {}, "outputs": [], "source": [ - "call_option_chain = option_chain[option_chain['optionType'] == \"call\"]\n", - "put_option_chain = option_chain[option_chain['optionType'] == \"put\"]" + "call_option_chain = option_chain[option_chain[\"optionType\"] == \"call\"]\n", + "put_option_chain = option_chain[option_chain[\"optionType\"] == \"put\"]" ] }, { @@ -342,10 +342,14 @@ "source": [ "fig, ax = plt.subplots(figsize=(11, 3), dpi=150)\n", "ax.plot(\n", - " call_option_chain[\"strike\"], call_option_chain[\"openInterest\"], label=\"Call Open Interest\"\n", + " call_option_chain[\"strike\"],\n", + " call_option_chain[\"openInterest\"],\n", + " label=\"Call Open Interest\",\n", ")\n", "ax.plot(\n", - " put_option_chain[\"strike\"], put_option_chain[\"openInterest\"], label=\"Put Open Interest\"\n", + " put_option_chain[\"strike\"],\n", + " put_option_chain[\"openInterest\"],\n", + " label=\"Put Open Interest\",\n", ")\n", "ax.legend()\n", "fig.tight_layout()\n", diff --git a/openbb_terminal/rich_config.py b/openbb_terminal/rich_config.py index 1ecec0043ba..c4181f26a16 100644 --- a/openbb_terminal/rich_config.py +++ b/openbb_terminal/rich_config.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import json import os from pathlib import Path -from typing import Tuple +from typing import Optional, Tuple, Union import i18n from rich import panel @@ -223,7 +223,7 @@ class MenuText: self.menu_text += cmd + "\n" - def add_menu(self, key_menu: str, condition: bool = True): + def add_menu(self, key_menu: str, condition: Optional[Union[bool, str]] = True): """Append menu text (after translation from key) to a menu Parameters diff --git a/openbb_terminal/settings_controller.py b/openbb_terminal/settings_controller.py index de2c0fe36bf..8174559cc4c 100644 --- a/openbb_terminal/settings_controller.py +++ b/openbb_terminal/settings_controller.py @@ -7,7 +7,7 @@ import logging import os import os.path from pathlib import Path -from typing import List +from typing import List, Optional import pytz @@ -68,7 +68,9 @@ class SettingsController(BaseController): if lang.endswith(".yml") ] - def __init__(self, queue: List[str] = None, env_file: str = str(USER_ENV_FILE)): + def __init__( + self, queue: Optional[List[str]] = None, env_file: str = str(USER_ENV_FILE) + ): """Constructor""" super().__init__(queue) self.env_file = env_file diff --git a/openbb_terminal/sources_controller.py b/openbb_terminal/sources_controller.py index 5317ea91603..dbd14cf3853 100644 --- a/openbb_terminal/sources_controller.py +++ b/openbb_terminal/sources_controller.py @@ -7,7 +7,7 @@ import json import logging import os from pathlib import Path -from typing import Dict, List +from typing import Dict, List, Optional # IMPORTATION THIRDPARTY # IMPORTATION INTERNAL @@ -39,7 +39,7 @@ class SourcesController(BaseController): ] PATH = "/sources/" - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/backtesting/bt_controller.py b/openbb_terminal/stocks/backtesting/bt_controller.py index b26c268238d..e5b4d3afc67 100644 --- a/openbb_terminal/stocks/backtesting/bt_controller.py +++ b/openbb_terminal/stocks/backtesting/bt_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional import matplotlib as mpl import pandas as pd @@ -42,7 +42,9 @@ class BacktestingController(BaseController): PATH = "/stocks/bt/" CHOICES_GENERATION = True - def __init__(self, ticker: str, stock: pd.DataFrame, queue: List[str] = None): + def __init__( + self, ticker: str, stock: pd.DataFrame, queue: Optional[List[str]] = None + ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/backtesting/bt_view.py b/openbb_terminal/stocks/backtesting/bt_view.py index f0d62fed8f8..d9d7678e2c5 100644 --- a/openbb_terminal/stocks/backtesting/bt_view.py +++ b/openbb_terminal/stocks/backtesting/bt_view.py @@ -122,7 +122,7 @@ def display_simple_ema( spy_bt: bool = True, no_bench: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Strategy where stock is bought when Price > EMA(l) @@ -191,7 +191,7 @@ def display_emacross( no_bench: bool = False, shortable: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): # pylint: disable=R0913 """Strategy where we go long/short when EMA(short) is greater than/less than EMA(short) @@ -265,7 +265,7 @@ def display_rsi_strategy( no_bench: bool = False, shortable: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Strategy that buys when the stock is less than a threshold and shorts when it exceeds a threshold. diff --git a/openbb_terminal/stocks/behavioural_analysis/ba_controller.py b/openbb_terminal/stocks/behavioural_analysis/ba_controller.py index 03049dfc0c8..a0cc7cb4a9e 100644 --- a/openbb_terminal/stocks/behavioural_analysis/ba_controller.py +++ b/openbb_terminal/stocks/behavioural_analysis/ba_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import argparse import logging from datetime import datetime, timedelta -from typing import List +from typing import List, Optional import yfinance as yf @@ -72,7 +72,7 @@ class BehaviouralAnalysisController(StockBaseController): PATH = "/stocks/ba/" CHOICES_GENERATION = True - def __init__(self, ticker: str, start: datetime, queue: List[str] = None): + def __init__(self, ticker: str, start: datetime, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/behavioural_analysis/cramer_view.py b/openbb_terminal/stocks/behavioural_analysis/cramer_view.py index 2d83fd2ca58..887abeba9b3 100644 --- a/openbb_terminal/stocks/behavioural_analysis/cramer_view.py +++ b/openbb_terminal/stocks/behavioural_analysis/cramer_view.py @@ -27,7 +27,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def display_cramer_daily( - inverse: bool = True, export: str = "", sheet_name: str = None + inverse: bool = True, export: str = "", sheet_name: Optional[str] = None ): """Display Jim Cramer daily recommendations @@ -74,7 +74,7 @@ def display_cramer_ticker( symbol: str, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display ticker close with Cramer recommendations diff --git a/openbb_terminal/stocks/behavioural_analysis/finnhub_view.py b/openbb_terminal/stocks/behavioural_analysis/finnhub_view.py index c8dfd22a87a..66aaa72661e 100644 --- a/openbb_terminal/stocks/behavioural_analysis/finnhub_view.py +++ b/openbb_terminal/stocks/behavioural_analysis/finnhub_view.py @@ -28,7 +28,7 @@ logger = logging.getLogger(__name__) def display_stock_price_headlines_sentiment( symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display stock price and headlines sentiment using VADER model over time. [Source: Finnhub] diff --git a/openbb_terminal/stocks/comparison_analysis/ca_controller.py b/openbb_terminal/stocks/comparison_analysis/ca_controller.py index 73ea91cd223..36f114dbfbf 100644 --- a/openbb_terminal/stocks/comparison_analysis/ca_controller.py +++ b/openbb_terminal/stocks/comparison_analysis/ca_controller.py @@ -5,7 +5,7 @@ import argparse import logging import random from datetime import datetime, timedelta -from typing import List +from typing import List, Optional import yfinance as yf @@ -73,7 +73,9 @@ class ComparisonAnalysisController(BaseController): PATH = "/stocks/ca/" CHOICES_GENERATION = True - def __init__(self, similar: List[str] = None, queue: List[str] = None): + def __init__( + self, similar: Optional[List[str]] = None, queue: Optional[List[str]] = None + ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/comparison_analysis/finbrain_view.py b/openbb_terminal/stocks/comparison_analysis/finbrain_view.py index d83918f519f..db30e0185aa 100644 --- a/openbb_terminal/stocks/comparison_analysis/finbrain_view.py +++ b/openbb_terminal/stocks/comparison_analysis/finbrain_view.py @@ -33,7 +33,7 @@ def display_sentiment_compare( similar: List[str], raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display sentiment for all ticker. [Source: FinBrain]. @@ -123,7 +123,7 @@ def display_sentiment_correlation( similar: List[str], raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plot correlation sentiments heatmap across similar companies. [Source: FinBrain]. diff --git a/openbb_terminal/stocks/comparison_analysis/finviz_compare_model.py b/openbb_terminal/stocks/comparison_analysis/finviz_compare_model.py index 121d686b4cb..1c143698ded 100644 --- a/openbb_terminal/stocks/comparison_analysis/finviz_compare_model.py +++ b/openbb_terminal/stocks/comparison_analysis/finviz_compare_model.py @@ -2,7 +2,7 @@ __docformat__ = "numpy" import logging -from typing import List +from typing import List, Optional import pandas as pd from finvizfinance.screener import ( @@ -22,7 +22,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def get_similar_companies(symbol: str, compare_list: List[str] = None) -> List[str]: +def get_similar_companies( + symbol: str, compare_list: Optional[List[str]] = None +) -> List[str]: """Get similar companies from Finviz. Parameters diff --git a/openbb_terminal/stocks/comparison_analysis/finviz_compare_view.py b/openbb_terminal/stocks/comparison_analysis/finviz_compare_view.py index d0830289558..27194ea16fd 100644 --- a/openbb_terminal/stocks/comparison_analysis/finviz_compare_view.py +++ b/openbb_terminal/stocks/comparison_analysis/finviz_compare_view.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import logging import os -from typing import List +from typing import List, Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -18,7 +18,7 @@ def screener( similar: List[str], data_type: str = "overview", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Screener. diff --git a/openbb_terminal/stocks/comparison_analysis/marketwatch_view.py b/openbb_terminal/stocks/comparison_analysis/marketwatch_view.py index e08064909d8..9a349070e0c 100644 --- a/openbb_terminal/stocks/comparison_analysis/marketwatch_view.py +++ b/openbb_terminal/stocks/comparison_analysis/marketwatch_view.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import logging import os from datetime import datetime -from typing import List +from typing import List, Optional from openbb_terminal import rich_config from openbb_terminal.decorators import log_start_end @@ -25,7 +25,7 @@ def display_income_comparison( timeframe: str = str(datetime.now().year - 1), quarter: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display income data. [Source: Marketwatch]. @@ -82,7 +82,7 @@ def display_balance_comparison( timeframe: str = str(datetime.now().year - 1), quarter: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Compare balance between companies. [Source: Marketwatch] @@ -139,7 +139,7 @@ def display_cashflow_comparison( timeframe: str = str(datetime.now().year - 1), quarter: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Compare cashflow between companies. [Source: Marketwatch] diff --git a/openbb_terminal/stocks/comparison_analysis/yahoo_finance_view.py b/openbb_terminal/stocks/comparison_analysis/yahoo_finance_view.py index 39338a785c4..e47959c719f 100644 --- a/openbb_terminal/stocks/comparison_analysis/yahoo_finance_view.py +++ b/openbb_terminal/stocks/comparison_analysis/yahoo_finance_view.py @@ -49,7 +49,7 @@ def display_historical( candle_type: str = "a", normalize: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display historical stock prices. [Source: Yahoo Finance] @@ -121,7 +121,7 @@ def display_volume( start_date: Optional[str] = None, end_date: Optional[str] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display stock volume. [Source: Yahoo Finance] @@ -185,7 +185,7 @@ def display_correlation( raw: bool = False, external_axes: Optional[List[plt.Axes]] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """ Correlation heatmap based on historical price comparison diff --git a/openbb_terminal/stocks/dark_pool_shorts/dps_controller.py b/openbb_terminal/stocks/dark_pool_shorts/dps_controller.py index 1776803f315..d90a61ca269 100644 --- a/openbb_terminal/stocks/dark_pool_shorts/dps_controller.py +++ b/openbb_terminal/stocks/dark_pool_shorts/dps_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import argparse import logging from datetime import datetime, timedelta -from typing import List +from typing import List, Optional import pandas as pd @@ -57,7 +57,11 @@ class DarkPoolShortsController(StockBaseController): CHOICES_GENERATION = True def __init__( - self, ticker: str, start: str, stock: pd.DataFrame, queue: List[str] = None + self, + ticker: str, + start: str, + stock: pd.DataFrame, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/dark_pool_shorts/finra_view.py b/openbb_terminal/stocks/dark_pool_shorts/finra_view.py index 643c0ab3b8d..c0c98116ec1 100644 --- a/openbb_terminal/stocks/dark_pool_shorts/finra_view.py +++ b/openbb_terminal/stocks/dark_pool_shorts/finra_view.py @@ -27,7 +27,7 @@ logger = logging.getLogger(__name__) def darkpool_ats_otc( symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display barchart of dark pool (ATS) and OTC (Non ATS) data. [Source: FINRA] @@ -195,7 +195,7 @@ def darkpool_otc( limit: int = 10, tier: str = "T1", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display dark pool (ATS) data of tickers with growing trades activity. [Source: FINRA] diff --git a/openbb_terminal/stocks/dark_pool_shorts/ibkr_view.py b/openbb_terminal/stocks/dark_pool_shorts/ibkr_view.py index 55d71236e8c..f5f0c591599 100644 --- a/openbb_terminal/stocks/dark_pool_shorts/ibkr_view.py +++ b/openbb_terminal/stocks/dark_pool_shorts/ibkr_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -13,7 +14,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_cost_to_borrow(limit: int = 20, export: str = "", sheet_name: str = None): +def display_cost_to_borrow( + limit: int = 20, export: str = "", sheet_name: Optional[str] = None +): """Display stocks with highest cost to borrow. [Source: Interactive Broker] Parameters diff --git a/openbb_terminal/stocks/dark_pool_shorts/quandl_view.py b/openbb_terminal/stocks/dark_pool_shorts/quandl_view.py index ad9198e543e..1d130b80b01 100644 --- a/openbb_terminal/stocks/dark_pool_shorts/quandl_view.py +++ b/openbb_terminal/stocks/dark_pool_shorts/quandl_view.py @@ -99,7 +99,7 @@ def short_interest( limit: int = 10, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plot the short interest of a stock. This corresponds to the diff --git a/openbb_terminal/stocks/dark_pool_shorts/sec_view.py b/openbb_terminal/stocks/dark_pool_shorts/sec_view.py index e5e5c3b1176..a14b32c65fc 100644 --- a/openbb_terminal/stocks/dark_pool_shorts/sec_view.py +++ b/openbb_terminal/stocks/dark_pool_shorts/sec_view.py @@ -29,13 +29,13 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def fails_to_deliver( symbol: str, - data: pd.DataFrame = None, + data: Optional[pd.DataFrame] = None, start_date: Optional[str] = None, end_date: Optional[str] = None, limit: int = 0, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display fails-to-deliver data for a given ticker. [Source: SEC] diff --git a/openbb_terminal/stocks/dark_pool_shorts/shortinterest_view.py b/openbb_terminal/stocks/dark_pool_shorts/shortinterest_view.py index 600bcd22ae9..4a196c50c32 100644 --- a/openbb_terminal/stocks/dark_pool_shorts/shortinterest_view.py +++ b/openbb_terminal/stocks/dark_pool_shorts/shortinterest_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -13,7 +14,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def high_short_interest(limit: int = 10, export: str = "", sheet_name: str = None): +def high_short_interest( + limit: int = 10, export: str = "", sheet_name: Optional[str] = None +): """Prints top N high shorted interest stocks from https://www.highshortinterest.com Parameters diff --git a/openbb_terminal/stocks/dark_pool_shorts/stockgrid_view.py b/openbb_terminal/stocks/dark_pool_shorts/stockgrid_view.py index 653f28aa31c..0b07ef33f32 100644 --- a/openbb_terminal/stocks/dark_pool_shorts/stockgrid_view.py +++ b/openbb_terminal/stocks/dark_pool_shorts/stockgrid_view.py @@ -29,7 +29,7 @@ def dark_pool_short_positions( sortby: str = "dpp_dollar", ascend: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Get dark pool short positions. [Source: Stockgrid] @@ -86,7 +86,10 @@ def dark_pool_short_positions( @log_start_end(log=logger) def short_interest_days_to_cover( - limit: int = 10, sortby: str = "float", export: str = "", sheet_name: str = None + limit: int = 10, + sortby: str = "float", + export: str = "", + sheet_name: Optional[str] = None, ): """Print short interest and days to cover. [Source: Stockgrid] @@ -128,7 +131,7 @@ def short_interest_volume( limit: int = 84, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plot price vs short interest volume. [Source: Stockgrid] @@ -253,7 +256,7 @@ def net_short_position( limit: int = 84, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plot net short position. [Source: Stockgrid] diff --git a/openbb_terminal/stocks/dark_pool_shorts/stocksera_view.py b/openbb_terminal/stocks/dark_pool_shorts/stocksera_view.py index f85a70e9235..096119002b2 100644 --- a/openbb_terminal/stocks/dark_pool_shorts/stocksera_view.py +++ b/openbb_terminal/stocks/dark_pool_shorts/stocksera_view.py @@ -86,7 +86,7 @@ def cost_to_borrow( limit: int = 100, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plot the short interest of a stock. This corresponds to the diff --git a/openbb_terminal/stocks/dark_pool_shorts/yahoofinance_view.py b/openbb_terminal/stocks/dark_pool_shorts/yahoofinance_view.py index 614b9c70750..a39d5d44b33 100644 --- a/openbb_terminal/stocks/dark_pool_shorts/yahoofinance_view.py +++ b/openbb_terminal/stocks/dark_pool_shorts/yahoofinance_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -13,7 +14,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_most_shorted(limit: int = 10, export: str = "", sheet_name: str = None): +def display_most_shorted( + limit: int = 10, export: str = "", sheet_name: Optional[str] = None +): """Display most shorted stocks screener. [Source: Yahoo Finance] Parameters diff --git a/openbb_terminal/stocks/discovery/ark_view.py b/openbb_terminal/stocks/discovery/ark_view.py index 28d59700c29..72c61b86364 100644 --- a/openbb_terminal/stocks/discovery/ark_view.py +++ b/openbb_terminal/stocks/discovery/ark_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal import rich_config from openbb_terminal.decorators import log_start_end @@ -38,7 +39,7 @@ def ark_orders_view( sells_only: bool = False, fund: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints a table of the last N ARK Orders diff --git a/openbb_terminal/stocks/discovery/disc_controller.py b/openbb_terminal/stocks/discovery/disc_controller.py index 85020d53f7d..95b01b8413e 100644 --- a/openbb_terminal/stocks/discovery/disc_controller.py +++ b/openbb_terminal/stocks/discovery/disc_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import argparse import logging from datetime import datetime -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.custom_prompt_toolkit import NestedCompleter @@ -115,7 +115,7 @@ class DiscoveryController(BaseController): heatmap_timeframes = ["day", "week", "month", "3month", "6month", "year", "ytd"] CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/discovery/disc_helpers.py b/openbb_terminal/stocks/discovery/disc_helpers.py index fc1f8340dd8..9218298e802 100644 --- a/openbb_terminal/stocks/discovery/disc_helpers.py +++ b/openbb_terminal/stocks/discovery/disc_helpers.py @@ -1,11 +1,12 @@ import re +from typing import Optional import pandas as pd from openbb_terminal.helper_funcs import get_user_agent, request -def get_df(url: str, header: int = None) -> pd.DataFrame: +def get_df(url: str, header: Optional[int] = None) -> pd.DataFrame: headers = {"User-Agent": get_user_agent()} html = request(url, headers=headers).text # use regex to replace radio button html entries diff --git a/openbb_terminal/stocks/discovery/fidelity_view.py b/openbb_terminal/stocks/discovery/fidelity_view.py index 1fbf4567562..327386791e1 100644 --- a/openbb_terminal/stocks/discovery/fidelity_view.py +++ b/openbb_terminal/stocks/discovery/fidelity_view.py @@ -4,6 +4,7 @@ __docformat__ = "numpy" import logging import os import re +from typing import Optional import pandas as pd @@ -64,7 +65,7 @@ def lambda_price_change_color_red_green(val: str) -> str: @log_start_end(log=logger) -def orders_view(limit: int = 5, export: str = "", sheet_name: str = None): +def orders_view(limit: int = 5, export: str = "", sheet_name: Optional[str] = None): """Prints last N orders by Fidelity customers. [Source: Fidelity] Parameters diff --git a/openbb_terminal/stocks/discovery/finnhub_view.py b/openbb_terminal/stocks/discovery/finnhub_view.py index 8e704c4646f..c7ea270a90a 100644 --- a/openbb_terminal/stocks/discovery/finnhub_view.py +++ b/openbb_terminal/stocks/discovery/finnhub_view.py @@ -16,7 +16,7 @@ def past_ipo( start_date: Optional[str] = None, limit: int = 20, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Past IPOs dates. [Source: Finnhub] @@ -58,7 +58,7 @@ def future_ipo( end_date: Optional[str] = None, limit: int = 20, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Future IPOs dates. [Source: Finnhub] diff --git a/openbb_terminal/stocks/discovery/fmp_view.py b/openbb_terminal/stocks/discovery/fmp_view.py index 879640dabda..a39d31a4ad1 100644 --- a/openbb_terminal/stocks/discovery/fmp_view.py +++ b/openbb_terminal/stocks/discovery/fmp_view.py @@ -4,6 +4,7 @@ __docformat__ = "numpy" import datetime import logging import os +from typing import Optional from openbb_terminal.decorators import check_api_key, log_start_end from openbb_terminal.helper_funcs import export_data @@ -20,7 +21,7 @@ def display_filings( limit: int = 5, today: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display recent forms submitted to the SEC Parameters diff --git a/openbb_terminal/stocks/discovery/nasdaq_model.py b/openbb_terminal/stocks/discovery/nasdaq_model.py index 77aeed0c850..2599192f034 100644 --- a/openbb_terminal/stocks/discovery/nasdaq_model.py +++ b/openbb_terminal/stocks/discovery/nasdaq_model.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging from datetime import datetime +from typing import Optional import pandas as pd import requests @@ -48,7 +49,7 @@ def get_retail_tickers() -> pd.DataFrame: @log_start_end(log=logger) -def get_dividend_cal(date: str = None) -> pd.DataFrame: +def get_dividend_cal(date: Optional[str] = None) -> pd.DataFrame: """Gets dividend calendar for given date. Date represents Ex-Dividend Date Parameters diff --git a/openbb_terminal/stocks/discovery/nasdaq_view.py b/openbb_terminal/stocks/discovery/nasdaq_view.py index 739b3f8c4a2..e24e7a437ef 100644 --- a/openbb_terminal/stocks/discovery/nasdaq_view.py +++ b/openbb_terminal/stocks/discovery/nasdaq_view.py @@ -4,6 +4,7 @@ __docformat__ = "numpy" import logging import os from datetime import datetime +from typing import Optional from openbb_terminal.decorators import check_api_key, log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -18,7 +19,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) @check_api_key(["API_KEY_QUANDL"]) -def display_top_retail(limit: int = 3, export: str = "", sheet_name: str = None): +def display_top_retail( + limit: int = 3, export: str = "", sheet_name: Optional[str] = None +): """Display the top 10 retail traded stocks for last days Parameters @@ -55,12 +58,12 @@ def display_top_retail(limit: int = 3, export: str = "", sheet_name: str = None) @log_start_end(log=logger) def display_dividend_calendar( - date: str = None, + date: Optional[str] = None, sortby: str = "Dividend", ascend: bool = False, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display NASDAQ dividend calendar diff --git a/openbb_terminal/stocks/discovery/seeking_alpha_view.py b/openbb_terminal/stocks/discovery/seeking_alpha_view.py index c9752b39fbe..354312c425a 100644 --- a/openbb_terminal/stocks/discovery/seeking_alpha_view.py +++ b/openbb_terminal/stocks/discovery/seeking_alpha_view.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import logging import os -from typing import List +from typing import List, Optional import pandas as pd @@ -17,7 +17,10 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def upcoming_earning_release_dates( - num_pages: int = 5, limit: int = 1, export: str = "", sheet_name: str = None + num_pages: int = 5, + limit: int = 1, + export: str = "", + sheet_name: Optional[str] = None, ): """Displays upcoming earnings release dates @@ -90,7 +93,10 @@ def upcoming_earning_release_dates( @log_start_end(log=logger) def news( - article_id: int = -1, limit: int = 5, export: str = "", sheet_name: str = None + article_id: int = -1, + limit: int = 5, + export: str = "", + sheet_name: Optional[str] = None, ): """Prints the latest news article list. [Source: Seeking Alpha] @@ -157,7 +163,7 @@ def display_news( news_type: str = "Top-News", limit: int = 5, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display news. [Source: SeekingAlpha] diff --git a/openbb_terminal/stocks/discovery/shortinterest_view.py b/openbb_terminal/stocks/discovery/shortinterest_view.py index 4e4b006c26c..488c170246b 100644 --- a/openbb_terminal/stocks/discovery/shortinterest_view.py +++ b/openbb_terminal/stocks/discovery/shortinterest_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -13,7 +14,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def low_float(limit: int = 5, export: str = "", sheet_name: str = None): +def low_float(limit: int = 5, export: str = "", sheet_name: Optional[str] = None): """Prints top N low float stocks from https://www.lowfloat.com Parameters @@ -46,7 +47,7 @@ def low_float(limit: int = 5, export: str = "", sheet_name: str = None): def hot_penny_stocks( limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, source: str = "YahooFinance", ): """Prints top N hot penny stocks from https://www.pennystockflow.com diff --git a/openbb_terminal/stocks/discovery/yahoofinance_view.py b/openbb_terminal/stocks/discovery/yahoofinance_view.py index 17581ae003b..3b0d0da9da5 100644 --- a/openbb_terminal/stocks/discovery/yahoofinance_view.py +++ b/openbb_terminal/stocks/discovery/yahoofinance_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -12,7 +13,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_gainers(limit: int = 5, export: str = "", sheet_name: str = None) -> None: +def display_gainers( + limit: int = 5, export: str = "", sheet_name: Optional[str] = None +) -> None: """Display gainers. [Source: Yahoo Finance] Parameters @@ -43,7 +46,9 @@ def display_gainers(limit: int = 5, export: str = "", sheet_name: str = None) -> @log_start_end(log=logger) -def display_losers(limit: int = 5, export: str = "", sheet_name: str = None) -> None: +def display_losers( + limit: int = 5, export: str = "", sheet_name: Optional[str] = None +) -> None: """Display losers. [Source: Yahoo Finance] Parameters @@ -74,7 +79,9 @@ def display_losers(limit: int = 5, export: str = "", sheet_name: str = None) -> @log_start_end(log=logger) -def display_ugs(limit: int = 5, export: str = "", sheet_name: str = None) -> None: +def display_ugs( + limit: int = 5, export: str = "", sheet_name: Optional[str] = None +) -> None: """Display most undervalued growth stock. [Source: Yahoo Finance] Parameters @@ -104,7 +111,9 @@ def display_ugs(limit: int = 5, export: str = "", sheet_name: str = None) -> Non @log_start_end(log=logger) -def display_gtech(limit: int = 5, export: str = "", sheet_name: str = None) -> None: +def display_gtech( + limit: int = 5, export: str = "", sheet_name: Optional[str] = None +) -> None: """Display growth technology stocks. [Source: Yahoo Finance] Parameters @@ -135,7 +144,9 @@ def display_gtech(limit: int = 5, export: str = "", sheet_name: str = None) -> N @log_start_end(log=logger) -def display_active(limit: int = 5, export: str = "", sheet_name: str = None) -> None: +def display_active( + limit: int = 5, export: str = "", sheet_name: Optional[str] = None +) -> None: """Display most active stocks. [Source: Yahoo Finance] Parameters @@ -166,7 +177,9 @@ def display_active(limit: int = 5, export: str = "", sheet_name: str = None) -> @log_start_end(log=logger) -def display_ulc(limit: int = 5, export: str = "", sheet_name: str = None) -> None: +def display_ulc( + limit: int = 5, export: str = "", sheet_name: Optional[str] = None +) -> None: """Display potentially undervalued large cap stocks. [Source: Yahoo Finance] Parameters @@ -197,7 +210,9 @@ def display_ulc(limit: int = 5, export: str = "", sheet_name: str = None) -> Non @log_start_end(log=logger) -def display_asc(limit: int = 5, export: str = "", sheet_name: str = None) -> None: +def display_asc( + limit: int = 5, export: str = "", sheet_name: Optional[str] = None +) -> None: """Display small cap stocks with earnings growth rates better than 25%. [Source: Yahoo Finance] Parameters diff --git a/openbb_terminal/stocks/fundamental_analysis/av_view.py b/openbb_terminal/stocks/fundamental_analysis/av_view.py index 2feca44a96e..1f8e48d7439 100644 --- a/openbb_terminal/stocks/fundamental_analysis/av_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/av_view.py @@ -26,7 +26,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) @check_api_key(["API_KEY_ALPHAVANTAGE"]) -def display_overview(symbol: str, export: str = "", sheet_name: str = None): +def display_overview(symbol: str, export: str = "", sheet_name: Optional[str] = None): """Alpha Vantage stock ticker overview Parameters @@ -59,7 +59,7 @@ def display_overview(symbol: str, export: str = "", sheet_name: str = None): @log_start_end(log=logger) @check_api_key(["API_KEY_ALPHAVANTAGE"]) -def display_key(symbol: str, export: str = "", sheet_name: str = None): +def display_key(symbol: str, export: str = "", sheet_name: Optional[str] = None): """Alpha Vantage key metrics Parameters @@ -92,9 +92,9 @@ def display_income_statement( limit: int = 5, quarterly: bool = False, ratios: bool = False, - plot: list = None, + plot: Optional[list] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Alpha Vantage income statement @@ -183,9 +183,9 @@ def display_balance_sheet( limit: int = 5, quarterly: bool = False, ratios: bool = False, - plot: list = None, + plot: Optional[list] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Alpha Vantage balance sheet statement @@ -275,9 +275,9 @@ def display_cash_flow( limit: int = 5, quarterly: bool = False, ratios: bool = False, - plot: list = None, + plot: Optional[list] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Alpha Vantage income statement @@ -365,7 +365,7 @@ def display_earnings( limit: int = 5, quarterly: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Alpha Vantage earnings @@ -408,7 +408,7 @@ def display_earnings( def display_fraud( symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, help_text: bool = False, color: bool = True, detail: bool = False, @@ -474,7 +474,7 @@ def display_dupont( symbol: str, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Shows the extended dupont ratio diff --git a/openbb_terminal/stocks/fundamental_analysis/business_insider_view.py b/openbb_terminal/stocks/fundamental_analysis/business_insider_view.py index ae2d5540d4f..98485b9bcb7 100644 --- a/openbb_terminal/stocks/fundamental_analysis/business_insider_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/business_insider_view.py @@ -30,7 +30,7 @@ register_matplotlib_converters() @log_start_end(log=logger) -def display_management(symbol: str, export: str = "", sheet_name: str = None): +def display_management(symbol: str, export: str = "", sheet_name: Optional[str] = None): """Display company's managers Parameters @@ -74,7 +74,7 @@ def price_target_from_analysts( limit: int = 10, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display analysts' price targets for a given stock. [Source: Business Insider] @@ -176,7 +176,9 @@ def price_target_from_analysts( @log_start_end(log=logger) -def estimates(symbol: str, estimate: str, export: str = "", sheet_name: str = None): +def estimates( + symbol: str, estimate: str, export: str = "", sheet_name: Optional[str] = None +): """Display analysts' estimates for a given ticker. [Source: Business Insider] Parameters diff --git a/openbb_terminal/stocks/fundamental_analysis/csimarket_view.py b/openbb_terminal/stocks/fundamental_analysis/csimarket_view.py index 11038961855..76b8549ddf7 100644 --- a/openbb_terminal/stocks/fundamental_analysis/csimarket_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/csimarket_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import pandas as pd @@ -16,7 +17,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def suppliers( - symbol: str, export: str = "", sheet_name: str = None, limit: int = 10 + symbol: str, export: str = "", sheet_name: Optional[str] = None, limit: int = 10 ) -> None: """Display suppliers from ticker provided. [Source: CSIMarket] @@ -51,7 +52,7 @@ def suppliers( @log_start_end(log=logger) -def customers(symbol: str, export: str = "", sheet_name: str = None): +def customers(symbol: str, export: str = "", sheet_name: Optional[str] = None): """Display customers from ticker provided. [Source: CSIMarket] Parameters diff --git a/openbb_terminal/stocks/fundamental_analysis/dcf_model.py b/openbb_terminal/stocks/fundamental_analysis/dcf_model.py index 9b7cef57ea5..45d94682e51 100644 --- a/openbb_terminal/stocks/fundamental_analysis/dcf_model.py +++ b/openbb_terminal/stocks/fundamental_analysis/dcf_model.py @@ -5,7 +5,7 @@ import logging import os from io import BytesIO from pathlib import Path -from typing import Any, Dict, List, Tuple, Union +from typing import Any, Dict, List, Optional, Tuple, Union from urllib.request import urlopen from zipfile import ZipFile @@ -194,12 +194,12 @@ def insert_row( def set_cell( ws: worksheet, cell: str, - text: Union[int, str, float] = None, - font: str = None, - border: str = None, - fill: str = None, - alignment: str = None, - num_form: str = None, + text: Optional[Union[int, str, float]] = None, + font: Optional[str] = None, + border: Optional[str] = None, + fill: Optional[str] = None, + alignment: Optional[str] = None, + num_form: Optional[str] = None, ): """Set the value for a cell diff --git a/openbb_terminal/stocks/fundamental_analysis/dcf_view.py b/openbb_terminal/stocks/fundamental_analysis/dcf_view.py index 24fc4d0abed..432966d6bf2 100644 --- a/openbb_terminal/stocks/fundamental_analysis/dcf_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/dcf_view.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import logging from datetime import datetime -from typing import Any, Dict, List, Union +from typing import Any, Dict, List, Optional, Union import numpy as np import pandas as pd @@ -927,7 +927,7 @@ class CreateExcelFA: adds: List[str], subtracts: List[str], audit: bool = False, - text: str = None, + text: Optional[str] = None, ): col = 1 if audit else self.info["len_data"] + 1 for i in range(self.info["len_data"] if audit else self.info["len_pred"]): @@ -970,7 +970,7 @@ class CreateExcelFA: @log_start_end(log=logger) def custom_exp( - self, row: Union[int, str], text: str, ws: int = 1, column: str = None + self, row: Union[int, str], text: str, ws: int = 1, column: Optional[str] = None ): if ws == 1: rowT = row if isinstance(row, int) else self.title_to_row(row) diff --git a/openbb_terminal/stocks/fundamental_analysis/eclect_us_view.py b/openbb_terminal/stocks/fundamental_analysis/eclect_us_view.py index 1740838dffa..971d59ce0a0 100644 --- a/openbb_terminal/stocks/fundamental_analysis/eclect_us_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/eclect_us_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -13,7 +14,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_analysis(symbol: str, export: str = "", sheet_name: str = None) -> None: +def display_analysis( + symbol: str, export: str = "", sheet_name: Optional[str] = None +) -> None: """Display analysis of SEC filings based on NLP model. [Source: https://eclect.us] Parameters diff --git a/openbb_terminal/stocks/fundamental_analysis/eodhd_view.py b/openbb_terminal/stocks/fundamental_analysis/eodhd_view.py index f6bd25fd638..32279727679 100644 --- a/openbb_terminal/stocks/fundamental_analysis/eodhd_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/eodhd_view.py @@ -2,6 +2,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import matplotlib.pyplot as plt @@ -27,9 +28,9 @@ def display_fundamentals( limit: int = 10, quarterly: bool = False, ratios: bool = False, - plot: list = None, + plot: Optional[list] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display tickers balance sheet; income statement; cash flow statement diff --git a/openbb_terminal/stocks/fundamental_analysis/fa_controller.py b/openbb_terminal/stocks/fundamental_analysis/fa_controller.py index eeebe7b13d2..8f06940c460 100644 --- a/openbb_terminal/stocks/fundamental_analysis/fa_controller.py +++ b/openbb_terminal/stocks/fundamental_analysis/fa_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging from datetime import datetime, timedelta -from typing import List +from typing import List, Optional from pandas.core.frame import DataFrame @@ -97,7 +97,7 @@ class FundamentalAnalysisController(StockBaseController): interval: str, stock: DataFrame, suffix: str = "", - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/fundamental_analysis/finnhub_view.py b/openbb_terminal/stocks/fundamental_analysis/finnhub_view.py index 8ef5c1c050e..43922c4fa0a 100644 --- a/openbb_terminal/stocks/fundamental_analysis/finnhub_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/finnhub_view.py @@ -77,7 +77,7 @@ def rating_over_time( limit: int = 10, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Rating over time (monthly). [Source: Finnhub] diff --git a/openbb_terminal/stocks/fundamental_analysis/finviz_view.py b/openbb_terminal/stocks/fundamental_analysis/finviz_view.py index ef43226b369..ecae5a9945a 100644 --- a/openbb_terminal/stocks/fundamental_analysis/finviz_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/finviz_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal import rich_config from openbb_terminal.decorators import log_start_end @@ -13,7 +14,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_screen_data(symbol: str, export: str = "", sheet_name: str = None): +def display_screen_data( + symbol: str, export: str = "", sheet_name: Optional[str] = None +): """FinViz ticker screener Parameters @@ -60,7 +63,7 @@ def lambda_category_color_red_green(val: str) -> str: @log_start_end(log=logger) -def analyst(symbol: str, export: str = "", sheet_name: str = None): +def analyst(symbol: str, export: str = "", sheet_name: Optional[str] = None): """Display analyst ratings. [Source: Finviz] Parameters diff --git a/openbb_terminal/stocks/fundamental_analysis/fmp_view.py b/openbb_terminal/stocks/fundamental_analysis/fmp_view.py index 0caa7ccc70c..8e511c38ef8 100644 --- a/openbb_terminal/stocks/fundamental_analysis/fmp_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/fmp_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import matplotlib.pyplot as plt import pandas as pd @@ -20,7 +21,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) @check_api_key(["API_KEY_FINANCIALMODELINGPREP"]) -def valinvest_score(symbol: str, years: int, export: str = "", sheet_name: str = None): +def valinvest_score( + symbol: str, years: int, export: str = "", sheet_name: Optional[str] = None +): """Value investing tool based on Warren Buffett, Joseph Piotroski and Benjamin Graham thoughts [Source: FMP] Parameters @@ -58,7 +61,7 @@ def valinvest_score(symbol: str, years: int, export: str = "", sheet_name: str = @log_start_end(log=logger) @check_api_key(["API_KEY_FINANCIALMODELINGPREP"]) -def display_profile(symbol: str, export: str = "", sheet_name: str = None): +def display_profile(symbol: str, export: str = "", sheet_name: Optional[str] = None): """Financial Modeling Prep ticker profile Parameters @@ -104,7 +107,7 @@ def display_enterprise( limit: int = 5, quarterly: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Financial Modeling Prep ticker enterprise @@ -162,7 +165,7 @@ def display_discounted_cash_flow( limit: int = 5, quarterly: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Financial Modeling Prep ticker discounted cash flow @@ -204,9 +207,9 @@ def display_income_statement( limit: int = 5, quarterly: bool = False, ratios: bool = False, - plot: list = None, + plot: Optional[list] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Financial Modeling Prep ticker income statement @@ -297,9 +300,9 @@ def display_balance_sheet( limit: int = 5, quarterly: bool = False, ratios: bool = False, - plot: list = None, + plot: Optional[list] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Financial Modeling Prep ticker balance sheet @@ -391,9 +394,9 @@ def display_cash_flow( limit: int = 5, quarterly: bool = False, ratios: bool = False, - plot: list = None, + plot: Optional[list] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Financial Modeling Prep ticker cash flow @@ -483,7 +486,7 @@ def display_key_metrics( limit: int = 5, quarterly: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Financial Modeling Prep ticker key metrics @@ -530,7 +533,7 @@ def display_financial_ratios( limit: int = 5, quarterly: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Financial Modeling Prep ticker ratios @@ -577,7 +580,7 @@ def display_financial_statement_growth( limit: int = 5, quarterly: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Financial Modeling Prep ticker growth @@ -623,7 +626,7 @@ def display_filings( pages: int = 1, limit: int = 20, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display recent forms submitted to the SEC @@ -684,7 +687,9 @@ def add_color(value: str) -> str: @log_start_end(log=logger) -def rating(symbol: str, limit: int = 10, export: str = "", sheet_name: str = None): +def rating( + symbol: str, limit: int = 10, export: str = "", sheet_name: Optional[str] = None +): """Display ratings for a given ticker. [Source: Financial Modeling Prep] Parameters diff --git a/openbb_terminal/stocks/fundamental_analysis/marketwatch_view.py b/openbb_terminal/stocks/fundamental_analysis/marketwatch_view.py index 74472dd70f9..34f610bfaee 100644 --- a/openbb_terminal/stocks/fundamental_analysis/marketwatch_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/marketwatch_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -12,7 +13,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def sec_filings(symbol: str, limit: int = 5, export: str = "", sheet_name: str = None): +def sec_filings( + symbol: str, limit: int = 5, export: str = "", sheet_name: Optional[str] = None +): """Display SEC filings for a given stock ticker. [Source: Market Watch] Parameters diff --git a/openbb_terminal/stocks/fundamental_analysis/polygon_view.py b/openbb_terminal/stocks/fundamental_analysis/polygon_view.py index 0fd4722563b..abc987c7241 100644 --- a/openbb_terminal/stocks/fundamental_analysis/polygon_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/polygon_view.py @@ -2,6 +2,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import matplotlib.pyplot as plt @@ -28,9 +29,9 @@ def display_fundamentals( limit: int = 10, quarterly: bool = False, ratios: bool = False, - plot: list = None, + plot: Optional[list] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display tickers balance sheet or income statement diff --git a/openbb_terminal/stocks/fundamental_analysis/seeking_alpha_view.py b/openbb_terminal/stocks/fundamental_analysis/seeking_alpha_view.py index b08c537fcf9..3be019ecbe7 100644 --- a/openbb_terminal/stocks/fundamental_analysis/seeking_alpha_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/seeking_alpha_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -13,7 +14,9 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_eps_estimates(symbol: str, export: str = "", sheet_name: str = None): +def display_eps_estimates( + symbol: str, export: str = "", sheet_name: Optional[str] = None +): """Display eps Estimates Parameters @@ -44,7 +47,9 @@ def display_eps_estimates(symbol: str, export: str = "", sheet_name: str = None) @log_start_end(log=logger) -def display_rev_estimates(symbol: str, export: str = "", sheet_name: str = None): +def display_rev_estimates( + symbol: str, export: str = "", sheet_name: Optional[str] = None +): """Display rev Estimates Parameters diff --git a/openbb_terminal/stocks/fundamental_analysis/yahoo_finance_view.py b/openbb_terminal/stocks/fundamental_analysis/yahoo_finance_view.py index 6145a4f1797..723b1ed9cee 100644 --- a/openbb_terminal/stocks/fundamental_analysis/yahoo_finance_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/yahoo_finance_view.py @@ -29,7 +29,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def display_info(symbol: str, export: str = "", sheet_name: str = None): +def display_info(symbol: str, export: str = "", sheet_name: Optional[str] = None): """Yahoo Finance ticker info Parameters ---------- @@ -73,7 +73,10 @@ def display_info(symbol: str, export: str = "", sheet_name: str = None): @log_start_end(log=logger) def display_shareholders( - symbol: str, holder: str = "institutional", export: str = "", sheet_name: str = None + symbol: str, + holder: str = "institutional", + export: str = "", + sheet_name: Optional[str] = None, ): """Yahoo Finance ticker shareholders Parameters @@ -112,7 +115,9 @@ def display_shareholders( @log_start_end(log=logger) -def display_sustainability(symbol: str, export: str = "", sheet_name: str = None): +def display_sustainability( + symbol: str, export: str = "", sheet_name: Optional[str] = None +): """Yahoo Finance ticker sustainability Parameters @@ -153,7 +158,9 @@ def display_sustainability(symbol: str, export: str = "", sheet_name: str = None @log_start_end(log=logger) -def display_calendar_earnings(symbol: str, export: str = "", sheet_name: str = None): +def display_calendar_earnings( + symbol: str, export: str = "", sheet_name: Optional[str] = None +): """Yahoo Finance ticker calendar earnings Parameters @@ -191,7 +198,7 @@ def display_dividends( limit: int = 12, plot: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display historical dividends @@ -274,7 +281,7 @@ def display_dividends( def display_splits( symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display splits and reverse splits events. [Source: Yahoo Finance] @@ -361,7 +368,7 @@ def display_mktcap( symbol: str, start_date: Optional[str] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display market cap over time. [Source: Yahoo Finance] @@ -417,9 +424,9 @@ def display_fundamentals( statement: str, limit: int = 12, ratios: bool = False, - plot: list = None, + plot: Optional[list] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display tickers balance sheet, income statement or cash-flow @@ -526,7 +533,9 @@ def display_fundamentals( @log_start_end(log=logger) -def display_earnings(symbol: str, limit: int, export: str = "", sheet_name: str = None): +def display_earnings( + symbol: str, limit: int, export: str = "", sheet_name: Optional[str] = None +): """ Parameters diff --git a/openbb_terminal/stocks/government/gov_controller.py b/openbb_terminal/stocks/government/gov_controller.py index 3ef16f2db79..e2c5c5e7bcc 100644 --- a/openbb_terminal/stocks/government/gov_controller.py +++ b/openbb_terminal/stocks/government/gov_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.custom_prompt_toolkit import NestedCompleter @@ -46,7 +46,7 @@ class GovController(StockBaseController): def __init__( self, ticker: str, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/government/quiverquant_view.py b/openbb_terminal/stocks/government/quiverquant_view.py index 772c42f3b4b..94c3a57fb62 100644 --- a/openbb_terminal/stocks/government/quiverquant_view.py +++ b/openbb_terminal/stocks/government/quiverquant_view.py @@ -34,7 +34,7 @@ def display_last_government( limit: int = 5, representative: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display last government trading [Source: quiverquant.com] @@ -89,7 +89,7 @@ def display_government_buys( limit: int = 10, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Top buy government trading [Source: quiverquant.com] @@ -170,7 +170,7 @@ def display_government_sells( limit: int = 10, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Top sell government trading [Source: quiverquant.com] @@ -252,7 +252,7 @@ def display_last_contracts( limit: int = 20, sum_contracts: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Last government contracts [Source: quiverquant.com] @@ -367,7 +367,7 @@ def display_government_trading( past_transactions_months: int = 6, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Government trading for specific ticker [Source: quiverquant.com] @@ -424,7 +424,7 @@ def display_contracts( past_transaction_days: int = 10, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Show government contracts for ticker [Source: quiverquant.com] @@ -496,7 +496,7 @@ def display_qtr_contracts( limit: int = 5, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Quarterly contracts [Source: quiverquant.com] @@ -603,7 +603,7 @@ def display_hist_contracts( symbol: str, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Show historical quarterly government contracts [Source: quiverquant.com] @@ -686,7 +686,7 @@ def display_top_lobbying( limit: int = 10, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Top lobbying tickers based on total spent diff --git a/openbb_terminal/stocks/insider/businessinsider_view.py b/openbb_terminal/stocks/insider/businessinsider_view.py index 5c9753e7ffe..97d3f2cce81 100644 --- a/openbb_terminal/stocks/insider/businessinsider_view.py +++ b/openbb_terminal/stocks/insider/businessinsider_view.py @@ -40,7 +40,7 @@ def insider_activity( limit: int = 10, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display insider activity. [Source: Business Insider] diff --git a/openbb_terminal/stocks/insider/finviz_view.py b/openbb_terminal/stocks/insider/finviz_view.py index eacb64c9a07..1332c7c9d95 100644 --- a/openbb_terminal/stocks/insider/finviz_view.py +++ b/openbb_terminal/stocks/insider/finviz_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -13,7 +14,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) def last_insider_activity( - symbol: str, limit: int = 10, export: str = "", sheet_name: str = None + symbol: str, limit: int = 10, export: str = "", sheet_name: Optional[str] = None ): """Display insider activity for a given stock ticker. [Source: Finviz] diff --git a/openbb_terminal/stocks/insider/insider_controller.py b/openbb_terminal/stocks/insider/insider_controller.py index b99880c65d1..04892d4cfa3 100644 --- a/openbb_terminal/stocks/insider/insider_controller.py +++ b/openbb_terminal/stocks/insider/insider_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import argparse import configparser import logging -from typing import List +from typing import List, Optional import pandas as pd @@ -75,7 +75,7 @@ class InsiderController(StockBaseController): start: str, interval: str, stock: pd.DataFrame, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/insider/openinsider_view.py b/openbb_terminal/stocks/insider/openinsider_view.py index 11041c4d67b..b2715607a4c 100644 --- a/openbb_terminal/stocks/insider/openinsider_view.py +++ b/openbb_terminal/stocks/insider/openinsider_view.py @@ -1,7 +1,7 @@ import itertools import logging import os -from typing import List +from typing import List, Optional import numpy as np import pandas as pd @@ -106,7 +106,10 @@ def lambda_green_highlight(values): @log_start_end(log=logger) def print_insider_data( - type_insider: str = "lcb", limit: int = 10, export: str = "", sheet_name: str = None + type_insider: str = "lcb", + limit: int = 10, + export: str = "", + sheet_name: Optional[str] = None, ): """Print insider data @@ -154,7 +157,7 @@ def print_insider_filter( limit: int = 10, links: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Print insider filter based on loaded preset. [Source: OpenInsider] diff --git a/openbb_terminal/stocks/options/alphaquery_view.py b/openbb_terminal/stocks/options/alphaquery_view.py index b8d7688a122..22adaf92f4c 100644 --- a/openbb_terminal/stocks/options/alphaquery_view.py +++ b/openbb_terminal/stocks/options/alphaquery_view.py @@ -28,7 +28,7 @@ def display_put_call_ratio( window: int = 30, start_date: str = (datetime.now() - timedelta(days=366)).strftime("%Y-%m-%d"), export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display put call ratio [Source: AlphaQuery.com] diff --git a/openbb_terminal/stocks/options/barchart_view.py b/openbb_terminal/stocks/options/barchart_view.py index ed5a276539e..cfe10e6ec2f 100644 --- a/openbb_terminal/stocks/options/barchart_view.py +++ b/openbb_terminal/stocks/options/barchart_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -12,7 +13,7 @@ logger = logging.getLogger(__name__) @log_start_end(log=logger) -def print_options_data(symbol: str, export: str = "", sheet_name: str = None): +def print_options_data(symbol: str, export: str = "", sheet_name: Optional[str] = None): """Scrapes Barchart.com for the options information Parameters diff --git a/openbb_terminal/stocks/options/chartexchange_view.py b/openbb_terminal/stocks/options/chartexchange_view.py index 06a277635da..0c7add79be8 100644 --- a/openbb_terminal/stocks/options/chartexchange_view.py +++ b/openbb_terminal/stocks/options/chartexchange_view.py @@ -63,7 +63,7 @@ def display_raw( price: float = 90, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Return raw stock data[chartexchange] diff --git a/openbb_terminal/stocks/options/fdscanner_view.py b/openbb_terminal/stocks/options/fdscanner_view.py index f837249e896..ae1d5530c79 100644 --- a/openbb_terminal/stocks/options/fdscanner_view.py +++ b/openbb_terminal/stocks/options/fdscanner_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import export_data, print_rich_table @@ -19,7 +20,7 @@ def display_options( calls_only: bool = False, puts_only: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Displays the unusual options table diff --git a/openbb_terminal/stocks/options/hedge/hedge_controller.py b/openbb_terminal/stocks/options/hedge/hedge_controller.py index 65d49508cab..bd2faf4b0d9 100644 --- a/openbb_terminal/stocks/options/hedge/hedge_controller.py +++ b/openbb_terminal/stocks/options/hedge/hedge_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import argparse import logging from datetime import datetime -from typing import Dict, List +from typing import Dict, List, Optional import pandas as pd @@ -42,7 +42,7 @@ class HedgeController(BaseController): PATH = "/stocks/options/hedge/" CHOICES_GENERATION = True - def __init__(self, ticker: str, expiration: str, queue: List[str] = None): + def __init__(self, ticker: str, expiration: str, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/options/op_helpers.py b/openbb_terminal/stocks/options/op_helpers.py index 0e44acd73df..6b697146a43 100644 --- a/openbb_terminal/stocks/options/op_helpers.py +++ b/openbb_terminal/stocks/options/op_helpers.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import logging from datetime import datetime, timedelta from math import e, log -from typing import Tuple, Union +from typing import Optional, Tuple, Union import numpy as np import pandas as pd @@ -212,7 +212,7 @@ def get_greeks( puts: pd.DataFrame, expire: str, div_cont: float = 0, - rf: float = None, + rf: Optional[float] = None, opt_type: int = 0, show_all: bool = False, show_extra_greeks: bool = False, diff --git a/openbb_terminal/stocks/options/options_controller.py b/openbb_terminal/stocks/options/options_controller.py index b68e1c5ee6f..402f9f5bd6d 100644 --- a/openbb_terminal/stocks/options/options_controller.py +++ b/openbb_terminal/stocks/options/options_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import argparse import logging from datetime import datetime, timedelta -from typing import List +from typing import List, Optional import pandas as pd @@ -121,7 +121,7 @@ class OptionsController(BaseController): PATH = "/stocks/options/" CHOICES_GENERATION = True - def __init__(self, ticker: str, queue: List[str] = None): + def __init__(self, ticker: str, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/options/options_view.py b/openbb_terminal/stocks/options/options_view.py index f692bca2881..c71fd22a8ae 100644 --- a/openbb_terminal/stocks/options/options_view.py +++ b/openbb_terminal/stocks/options/options_view.py @@ -81,7 +81,7 @@ def plot_vol( puts_only: bool = False, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plot volume @@ -188,7 +188,7 @@ def plot_oi( puts_only: bool = False, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plot open interest @@ -294,7 +294,7 @@ def plot_voi( max_sp: float = -1, raw: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plot volume and open interest @@ -450,8 +450,8 @@ def display_chains( min_sp: float = -1, max_sp: float = -1, export: str = "", - sheet_name: str = None, - to_display: list = None, + sheet_name: Optional[str] = None, + to_display: Optional[list] = None, ): """Display chains diff --git a/openbb_terminal/stocks/options/pricing/pricing_controller.py b/openbb_terminal/stocks/options/pricing/pricing_controller.py index 1b1a90b47e4..ca73ba67337 100644 --- a/openbb_terminal/stocks/options/pricing/pricing_controller.py +++ b/openbb_terminal/stocks/options/pricing/pricing_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional import pandas as pd @@ -36,7 +36,7 @@ class PricingController(BaseController): ticker: str, selected_date: str, prices: pd.DataFrame, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/options/screen/screener_controller.py b/openbb_terminal/stocks/options/screen/screener_controller.py index 9b3da8ec85e..26c638572e1 100644 --- a/openbb_terminal/stocks/options/screen/screener_controller.py +++ b/openbb_terminal/stocks/options/screen/screener_controller.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" import argparse import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.custom_prompt_toolkit import NestedCompleter @@ -34,7 +34,7 @@ class ScreenerController(BaseController): PATH = "/stocks/options/screen/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/options/screen/syncretism_view.py b/openbb_terminal/stocks/options/screen/syncretism_view.py index e44c9f76021..dd785e8c715 100644 --- a/openbb_terminal/stocks/options/screen/syncretism_view.py +++ b/openbb_terminal/stocks/options/screen/syncretism_view.py @@ -61,7 +61,7 @@ def view_screener_output( preset: str, limit: int = 20, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> List: """Print the output of screener @@ -118,7 +118,7 @@ def view_historical_greeks( raw: bool = False, limit: Union[int, str] = 20, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Plots historical greeks for a given option. [Source: Syncretism] diff --git a/openbb_terminal/stocks/options/tradier_view.py b/openbb_terminal/stocks/options/tradier_view.py index 5ef2484f053..2630a0aea38 100644 --- a/openbb_terminal/stocks/options/tradier_view.py +++ b/openbb_terminal/stocks/options/tradier_view.py @@ -34,7 +34,7 @@ def display_historical( strike: float = 0, put: bool = False, raw: bool = False, - chain_id: str = None, + chain_id: Optional[str] = None, export: str = "", sheet_name: str = "", external_axes: Optional[List[plt.Axes]] = None, diff --git a/openbb_terminal/stocks/options/yfinance_model.py b/openbb_terminal/stocks/options/yfinance_model.py index ee47ebc77ea..be0fc5f3af7 100644 --- a/openbb_terminal/stocks/options/yfinance_model.py +++ b/openbb_terminal/stocks/options/yfinance_model.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import logging import math from datetime import date, datetime, timedelta -from typing import Any, Dict, List, Tuple +from typing import Any, Dict, List, Optional, Tuple import pandas as pd import yfinance as yf @@ -273,7 +273,7 @@ def get_binom( strike: float = 0, put: bool = False, europe: bool = False, - vol: float = None, + vol: Optional[float] = None, ): """Gets binomial pricing for options diff --git a/openbb_terminal/stocks/options/yfinance_view.py b/openbb_terminal/stocks/options/yfinance_view.py index 387676fab78..874350af18c 100644 --- a/openbb_terminal/stocks/options/yfinance_view.py +++ b/openbb_terminal/stocks/options/yfinance_view.py @@ -74,7 +74,7 @@ def plot_plot( y: str = "iv", custom: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> None: """Generate a graph custom graph based on user input @@ -223,10 +223,10 @@ def show_parity( expiry: str, put: bool = False, ask: bool = False, - mini: float = None, - maxi: float = None, + mini: Optional[float] = None, + maxi: Optional[float] = None, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Prints options and whether they are under or over priced [Source: Yahoo Finance] @@ -337,9 +337,9 @@ def risk_neutral_vals( expiry: str, data: pd.DataFrame, put: bool = False, - mini: float = None, - maxi: float = None, - risk: float = None, + mini: Optional[float] = None, + maxi: Optional[float] = None, + risk: Optional[float] = None, ) -> None: """Prints current options prices and risk neutral values [Source: Yahoo Finance] @@ -516,7 +516,7 @@ def show_binom( europe: bool = False, export: str = "", plot: bool = False, - vol: float = None, + vol: Optional[float] = None, ) -> None: """Get binomial pricing for option @@ -559,7 +559,7 @@ def show_binom( def display_vol_surface( symbol: str, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, z: str = "IV", external_axes: Optional[List[plt.Axes]] = None, ): @@ -619,7 +619,7 @@ def show_greeks( symbol: str, expiry: str, div_cont: float = 0, - rf: float = None, + rf: Optional[float] = None, opt_type: int = 1, mini: float = -1, maxi: float = -1, diff --git a/openbb_terminal/stocks/quantitative_analysis/beta_model.py b/openbb_terminal/stocks/quantitative_analysis/beta_model.py index 2fef77c65f1..dbc07a129be 100644 --- a/openbb_terminal/stocks/quantitative_analysis/beta_model.py +++ b/openbb_terminal/stocks/quantitative_analysis/beta_model.py @@ -1,7 +1,7 @@ """Beta model""" __docformat__ = "numpy" -from typing import Tuple +from typing import Optional, Tuple import pandas as pd from scipy import stats @@ -12,8 +12,8 @@ from openbb_terminal.stocks import stocks_helper def beta_model( symbol: str, ref_symbol: str, - data: pd.DataFrame = None, - ref_data: pd.DataFrame = None, + data: Optional[pd.DataFrame] = None, + ref_data: Optional[pd.DataFrame] = None, interval: int = 1440, ) -> Tuple[pd.Series, pd.Series, float, float]: """Calculate beta for a ticker and a reference ticker. diff --git a/openbb_terminal/stocks/quantitative_analysis/beta_view.py b/openbb_terminal/stocks/quantitative_analysis/beta_view.py index 4f3eaff0d96..89f672526f0 100644 --- a/openbb_terminal/stocks/quantitative_analysis/beta_view.py +++ b/openbb_terminal/stocks/quantitative_analysis/beta_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import matplotlib.pyplot as plt import pandas as pd @@ -19,11 +20,11 @@ logger = logging.getLogger(__name__) def beta_view( symbol: str, ref_symbol: str, - data: pd.DataFrame = None, - ref_data: pd.DataFrame = None, + data: Optional[pd.DataFrame] = None, + ref_data: Optional[pd.DataFrame] = None, interval: int = 1440, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> None: """Display the beta scatterplot + linear regression. diff --git a/openbb_terminal/stocks/quantitative_analysis/qa_controller.py b/openbb_terminal/stocks/quantitative_analysis/qa_controller.py index b3be672a11a..0ddffd7a3f8 100644 --- a/openbb_terminal/stocks/quantitative_analysis/qa_controller.py +++ b/openbb_terminal/stocks/quantitative_analysis/qa_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import argparse import logging from datetime import datetime -from typing import List +from typing import List, Optional import pandas as pd @@ -79,7 +79,7 @@ class QaController(StockBaseController): start: datetime, interval: str, stock: pd.DataFrame, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/research/res_controller.py b/openbb_terminal/stocks/research/res_controller.py index 9e580eb2efc..664f99d7e21 100644 --- a/openbb_terminal/stocks/research/res_controller.py +++ b/openbb_terminal/stocks/research/res_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import logging import webbrowser from datetime import datetime -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.custom_prompt_toolkit import NestedCompleter @@ -43,7 +43,11 @@ class ResearchController(BaseController): PATH = "/stocks/res/" def __init__( - self, ticker: str, start: datetime, interval: str, queue: List[str] = None + self, + ticker: str, + start: datetime, + interval: str, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/screener/ark_view.py b/openbb_terminal/stocks/screener/ark_view.py index d3fdbc3c78c..98e9a79b79b 100644 --- a/openbb_terminal/stocks/screener/ark_view.py +++ b/openbb_terminal/stocks/screener/ark_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import pandas as pd @@ -20,7 +21,7 @@ def display_ark_trades( limit: int = 20, show_symbol: bool = False, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Display ARK trades for ticker diff --git a/openbb_terminal/stocks/screener/finviz_view.py b/openbb_terminal/stocks/screener/finviz_view.py index 57554fbbb06..1b499108502 100644 --- a/openbb_terminal/stocks/screener/finviz_view.py +++ b/openbb_terminal/stocks/screener/finviz_view.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import difflib import logging import os -from typing import List +from typing import List, Optional import pandas as pd @@ -131,7 +131,7 @@ def screener( ascend: bool = False, sortby: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ) -> List[str]: """Screener one of the following: overview, valuation, financial, ownership, performance, technical. diff --git a/openbb_terminal/stocks/screener/screener_controller.py b/openbb_terminal/stocks/screener/screener_controller.py index c4385ab1836..30c69bd61af 100644 --- a/openbb_terminal/stocks/screener/screener_controller.py +++ b/openbb_terminal/stocks/screener/screener_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import argparse import datetime import logging -from typing import List +from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.core.config.paths import ( @@ -77,7 +77,7 @@ class ScreenerController(BaseController): PATH = "/stocks/scr/" CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/screener/yahoofinance_view.py b/openbb_terminal/stocks/screener/yahoofinance_view.py index e2663f72fdc..b20f5982462 100644 --- a/openbb_terminal/stocks/screener/yahoofinance_view.py +++ b/openbb_terminal/stocks/screener/yahoofinance_view.py @@ -34,7 +34,7 @@ def historical( type_candle: str = "a", normalize: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, ) -> List[str]: """View historical price of stocks that meet preset diff --git a/openbb_terminal/stocks/sector_industry_analysis/financedatabase_model.py b/openbb_terminal/stocks/sector_industry_analysis/financedatabase_model.py index 5d9ae124541..0ecc16fd395 100644 --- a/openbb_terminal/stocks/sector_industry_analysis/financedatabase_model.py +++ b/openbb_terminal/stocks/sector_industry_analysis/financedatabase_model.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" # pylint:disable=too-many-arguments,unexpected-keyword-arg import logging +from typing import Optional import financedatabase as fd import yfinance as yf @@ -107,9 +108,9 @@ def get_marketcap() -> list: @log_start_end(log=logger) def filter_stocks( - country: str = None, - sector: str = None, - industry: str = None, + country: Optional[str] = None, + sector: Optional[str] = None, + industry: Optional[str] = None, marketcap: str = "", exclude_exchanges: bool = True, ) -> list: diff --git a/openbb_terminal/stocks/sector_industry_analysis/financedatabase_view.py b/openbb_terminal/stocks/sector_industry_analysis/financedatabase_view.py index 25e497d082c..03787121316 100644 --- a/openbb_terminal/stocks/sector_industry_analysis/financedatabase_view.py +++ b/openbb_terminal/stocks/sector_industry_analysis/financedatabase_view.py @@ -37,9 +37,9 @@ def display_bars_financials( exclude_exchanges: bool = True, limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, raw: bool = False, - already_loaded_stocks_data: Dict = None, + already_loaded_stocks_data: Optional[Dict] = None, external_axes: Optional[List[plt.Axes]] = None, ): """Display financials bars comparing sectors, industry, analysis, countries, market cap and excluding exchanges. @@ -242,7 +242,7 @@ def display_companies_per_sector_in_country( mktcap: str = "Large", exclude_exchanges: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, raw: bool = False, max_sectors_to_display: int = 15, min_pct_to_display_sector: float = 0.015, @@ -383,7 +383,7 @@ def display_companies_per_industry_in_country( mktcap: str = "Large", exclude_exchanges: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, raw: bool = False, max_industries_to_display: int = 15, min_pct_to_display_industry: float = 0.015, @@ -534,7 +534,7 @@ def display_companies_per_industry_in_sector( mktcap: str = "Large", exclude_exchanges: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, raw: bool = False, max_industries_to_display: int = 15, min_pct_to_display_industry: float = 0.015, @@ -686,7 +686,7 @@ def display_companies_per_country_in_sector( mktcap: str = "Large", exclude_exchanges: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, raw: bool = False, max_countries_to_display: int = 15, min_pct_to_display_country: float = 0.015, @@ -831,7 +831,7 @@ def display_companies_per_country_in_industry( mktcap: str = "Large", exclude_exchanges: bool = True, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, raw: bool = False, max_countries_to_display: int = 15, min_pct_to_display_country: float = 0.015, diff --git a/openbb_terminal/stocks/sector_industry_analysis/sia_controller.py b/openbb_terminal/stocks/sector_industry_analysis/sia_controller.py index e95eff5984e..5cdaed300ca 100644 --- a/openbb_terminal/stocks/sector_industry_analysis/sia_controller.py +++ b/openbb_terminal/stocks/sector_industry_analysis/sia_controller.py @@ -4,7 +4,7 @@ __docformat__ = "numpy" import argparse import difflib import logging -from typing import List +from typing import List, Optional import yfinance as yf @@ -162,7 +162,7 @@ class SectorIndustryAnalysisController(BaseController): def __init__( self, ticker: str, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/sector_industry_analysis/stockanalysis_model.py b/openbb_terminal/stocks/sector_industry_analysis/stockanalysis_model.py index c0cf9bcd17f..fa39b48ed9f 100644 --- a/openbb_terminal/stocks/sector_industry_analysis/stockanalysis_model.py +++ b/openbb_terminal/stocks/sector_industry_analysis/stockanalysis_model.py @@ -3,7 +3,7 @@ __docformat__ = "numpy" # pylint:disable=too-many-arguments,unexpected-keyword-arg import logging -from typing import Any, Dict, List +from typing import Any, Dict, List, Optional import numpy as np import pandas as pd @@ -82,9 +82,9 @@ SA_KEYS = { @log_start_end(log=logger) def get_stocks_data( - symbols: List[str] = None, + symbols: Optional[List[str]] = None, finance_key: str = "ncf", - stocks_data: dict = None, + stocks_data: Optional[dict] = None, period: str = "annual", symbol: str = "USD", ): diff --git a/openbb_terminal/stocks/sector_industry_analysis/stockanalysis_view.py b/openbb_terminal/stocks/sector_industry_analysis/stockanalysis_view.py index bd4529e3c1d..624b3c97125 100644 --- a/openbb_terminal/stocks/sector_industry_analysis/stockanalysis_view.py +++ b/openbb_terminal/stocks/sector_industry_analysis/stockanalysis_view.py @@ -43,7 +43,7 @@ def display_plots_financials( currency: str = "USD", limit: int = 10, export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, external_axes: Optional[List[plt.Axes]] = None, raw: bool = False, already_loaded_stocks_data=None, diff --git a/openbb_terminal/stocks/stocks_controller.py b/openbb_terminal/stocks/stocks_controller.py index ab7b572daaf..e1377c75084 100644 --- a/openbb_terminal/stocks/stocks_controller.py +++ b/openbb_terminal/stocks/stocks_controller.py @@ -5,7 +5,7 @@ import argparse import logging import os from datetime import datetime, timedelta -from typing import List +from typing import List, Optional import financedatabase import yfinance as yf @@ -82,7 +82,7 @@ class StocksController(StockBaseController): TOB_EXCHANGES = ["BZX", "EDGX", "BYX", "EDGA"] CHOICES_GENERATION = True - def __init__(self, queue: List[str] = None): + def __init__(self, queue: Optional[List[str]] = None): """Construct stocks controller.""" super().__init__(queue) diff --git a/openbb_terminal/stocks/stocks_helper.py b/openbb_terminal/stocks/stocks_helper.py index 0f713db6fd7..da723e28803 100644 --- a/openbb_terminal/stocks/stocks_helper.py +++ b/openbb_terminal/stocks/stocks_helper.py @@ -466,7 +466,7 @@ def load( def display_candle( symbol: str, - data: pd.DataFrame = None, + data: Optional[pd.DataFrame] = None, use_matplotlib: bool = True, intraday: bool = False, add_trend: bool = False, diff --git a/openbb_terminal/stocks/technical_analysis/rsp_view.py b/openbb_terminal/stocks/technical_analysis/rsp_view.py index ea590cb3db1..1fd033e91b8 100644 --- a/openbb_terminal/stocks/technical_analysis/rsp_view.py +++ b/openbb_terminal/stocks/technical_analysis/rsp_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import pandas as pd @@ -18,7 +19,7 @@ logger = logging.getLogger(__name__) def display_rsp( s_ticker: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, tickers_show: bool = False, ): """Display Relative Strength Percentile [Source: https://github.com/skyte/relative-strength] diff --git a/openbb_terminal/stocks/technical_analysis/ta_controller.py b/openbb_terminal/stocks/technical_analysis/ta_controller.py index f4c3b0c2275..769b71ad86e 100644 --- a/openbb_terminal/stocks/technical_analysis/ta_controller.py +++ b/openbb_terminal/stocks/technical_analysis/ta_controller.py @@ -6,7 +6,7 @@ import argparse import logging import webbrowser from datetime import datetime -from typing import List +from typing import List, Optional import pandas as pd @@ -89,7 +89,7 @@ class TechnicalAnalysisController(StockBaseController): start: datetime, interval: str, stock: pd.DataFrame, - queue: List[str] = None, + queue: Optional[List[str]] = None, ): """Constructor""" super().__init__(queue) diff --git a/openbb_terminal/stocks/technical_analysis/tradingview_view.py b/openbb_terminal/stocks/technical_analysis/tradingview_view.py index e34eee8f90f..7064286cbc1 100644 --- a/openbb_terminal/stocks/technical_analysis/tradingview_view.py +++ b/openbb_terminal/stocks/technical_analysis/tradingview_view.py @@ -3,6 +3,7 @@ __docformat__ = "numpy" import logging import os +from typing import Optional import pandas as pd @@ -21,7 +22,7 @@ def print_recommendation( exchange: str = "", interval: str = "", export: str = "", - sheet_name: str = None, + sheet_name: Optional[str] = None, ): """Print tradingview recommendation based on technical indicators diff --git a/openbb_terminal/stocks/tradinghours/tradinghours_controller.py b/openbb_terminal/stocks/tradinghours/tradinghours_controller.py index e706631ee32..e7d17b8936b 100644 --- a/openbb_terminal/stocks/tradinghours/tradinghours_controller.py +++ b/openbb_terminal/stocks/tradinghours/tradinghours_controller.py @@ -5,7 +5,7 @@ import argparse import logging import os from datetime import date -from typing import List +from typing import List, Optional import pandas as pd @@ -41,7 +41,7 @@ class TradingHoursController(BaseController): FILE_PATH = os.path.join(os.path.dirname(__file__), "README.md") CHOICES_GENERATION = True - def __init__(self, ticker: str = "", queue: List[str] = None): + def __init__(self, ticker: str = "", queue: Optional[List[str]] = None): """Construct Data.""" super().__init__(queue) diff --git a/openbb_terminal/terminal_controller.py b/openbb_terminal/terminal_controller.py index 817322ce712..d30078b2b69 100644 --- a/openbb_terminal/terminal_controller.py +++ b/openbb_terminal/terminal_controller.py @@ -113,7 +113,7 @@ class TerminalController(BaseController): GUESS_CORRECTLY = 0 CHOICES_GENERATION = False - def __init__(self, jobs_cmds: List[str] = None): + def __init__(self, jobs_cmds: Optional[List[str]] = None): """Construct terminal controller.""" super().__init__(jobs_cmds) @@ -815,7 +815,7 @@ class TerminalController(BaseController): # pylint: disable=global-statement -def terminal(jobs_cmds: List[str] = None, test_mode=False): +def terminal(jobs_cmds: Optional[List[str]] = None, test_mode=False): """Terminal Menu.""" if not test_mode: setup_logging() @@ -986,7 +986,7 @@ def run_scripts( path: Path, test_mode: bool = False, verbose: bool = False, - routines_args: List[str] = None, + routines_args: Optional[List[str]] = None, special_arguments: Optional[Dict[str, str]] = None, output: bool = True, ): @@ -1118,7 +1118,7 @@ def run_routine(file: str, routines_args=List[str]): def main( debug: bool, path_list: List[str], - routines_args: List[str] = None, + routines_args: Optional[List[str]] = None, **kwargs, ): """Run the terminal with various options. diff --git a/openbb_terminal/terminal_helper.py b/openbb_terminal/terminal_helper.py index 1a70f80757c..b8f12a02177 100644 --- a/openbb_terminal/terminal_helper.py +++ b/openbb_terminal/terminal_helper.py @@ -9,7 +9,7 @@ import subprocess # nosec import sys import webbrowser from contextlib import contextmanager -from typing import List +from typing import List, Optional # IMPORTATION THIRDPARTY import matplotlib.pyplot as plt @@ -324,7 +324,7 @@ def welcome_message(): console.print(e) -def reset(queue: List[str] = None): +def reset(queue: Optional[List[str]] = None): """Resets the terminal. Allows for checking code or keys without quitting""" console.print("resetting...") logger.info("resetting") diff --git a/openbb_terminal/thought_of_the_day.py b/openbb_terminal/thought_of_the_day.py index 90325132d13..66361cf3f41 100644 --- a/openbb_terminal/thought_of_the_day.py +++ b/openbb_terminal/thought_of_the_day.py @@ -16,7 +16,7 @@ __docformat__ = "numpy" class ThoughtOfTheDay: """ThoughtOfTheDay class""" - def __init__(self, urls: dict[str, str] = None): + def __init__(self, urls: dict[str, str] | None = None): """Constructor""" self.metadata: dict = {} diff --git a/poetry.lock b/poetry.lock index 2260e2df864..a6d7651492c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2188,20 +2188,22 @@ python-versions = "*" [[package]] name = "mypy" -version = "0.930" +version = "1.0.0" description = "Optional static typing for Python" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] mypy-extensions = ">=0.4.3" -tomli = ">=1.1.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} typing-extensions = ">=3.10" [package.extras] dmypy = ["psutil (>=4.0)"] +install-types = ["pip"] python2 = ["typed-ast (>=1.4.0,<2)"] +reports = ["lxml"] [[package]] name = "mypy-extensions" @@ -5064,7 +5066,7 @@ prediction = ["torch", "pytorch-lightning", "u8darts"] [metadata] lock-version = "1.1" python-versions = "^3.8,<3.11, !=3.9.7" -content-hash = "8b59d3adb985f6b1586d40087f128c9f0224a0bc8d1152ece42f304be8ae3483" +content-hash = "5839ef287429ab3303ffa60cf2a3d9f2ed88f61237e31afc21fe0aa01654784f" [metadata.files] absl-py = [] diff --git a/pyproject.toml b/pyproject.toml index 9a955f3c4e0..af7b8eea7b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -114,7 +114,7 @@ SPARQLWrapper = "^2.0.0" [tool.poetry.dev-dependencies] pytest = "^6.2.2" pylint = "2.15.2" -mypy = "^0.930" +mypy = "^1.0.0" mock = "^4.0.3" codespell = "^2.0.0" sphinx = "^4.5.0" diff --git a/website/generate_sdk_markdown.py b/website/generate_sdk_markdown.py index 9b15f73b799..2ecf37a624d 100644 --- a/website/generate_sdk_markdown.py +++ b/website/generate_sdk_markdown.py @@ -457,7 +457,7 @@ def main() -> bool: def generate_index_markdown( - markdown: str, d: dict, level: int, path: Path = None + markdown: str, d: dict, level: int, path: Optional[Path] = None ) -> str: """Generates the index markdown for the given dictionary.""" if path is None: