From 1e6546a8b253cdaeadb91d16607b614ab0ea8a54 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Tue, 17 May 2022 15:21:16 -0400 Subject: [PATCH 01/34] Working exponential with bugs --- .../prediction_techniques/expo_model.py | 59 +++++++++++++++++ .../common/prediction_techniques/expo_view.py | 63 +++++++++++++++++++ .../prediction_techniques/pred_controller.py | 39 ++++++++++++ 3 files changed, 161 insertions(+) create mode 100644 openbb_terminal/common/prediction_techniques/expo_model.py create mode 100644 openbb_terminal/common/prediction_techniques/expo_view.py diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py new file mode 100644 index 000000000000..d98dd91fb2d3 --- /dev/null +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -0,0 +1,59 @@ +"""Monte Carlo Model""" +__docformat__ = "numpy" + +import logging +from typing import Any, Tuple, Union, List + +import numpy as np +import pandas as pd +from darts import TimeSeries +from darts.models import ExponentialSmoothing +import matplotlib.pyplot as plt + +from openbb_terminal.decorators import log_start_end + +logger = logging.getLogger(__name__) + +@log_start_end(log=logger) +def get_expo_data( + data: Union[pd.Series, pd.DataFrame], + n_predict: int, +#) -> Tuple[List[float], Any]: +): + """Performs Probabalistic Exponential Smoothing forecasting + + Default parameters: 80/20 splot + + Parameters + ---------- + data : Union[pd.Series, np.ndarray] + Input data. + n_predict : int + Days to predict + + use_log : bool, optional + Flag to use log returns, by default True + + Returns + ------- + List[float] + List of predicted values + Any + Fit Expo model object. + """ + + print(f"Predicting {n_predict} days in advance. ") + + data['index'] = range(1, len(data) + 1) + + ticker_series = TimeSeries.from_dataframe(data, time_col='index', value_cols="AdjClose") + ticker_series = ticker_series.astype(np.float32) + + train, val = ticker_series.split_before(0.85) + model = ExponentialSmoothing() + model.fit(train) + + # Show forcast over validation # and then +10 afterwards sampled 5 times per point + probabilistic_forecast = model.predict(len(val) + n_predict, num_samples=10) + + return ticker_series, probabilistic_forecast, model diff --git a/openbb_terminal/common/prediction_techniques/expo_view.py b/openbb_terminal/common/prediction_techniques/expo_view.py new file mode 100644 index 000000000000..a41365926f08 --- /dev/null +++ b/openbb_terminal/common/prediction_techniques/expo_view.py @@ -0,0 +1,63 @@ +"""Monte Carlo View""" +__docformat__ = "numpy" + +import logging +import os +from typing import List, Optional, Union + +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import seaborn as sns + +from openbb_terminal.config_terminal import theme +from openbb_terminal.common.prediction_techniques import expo_model +from openbb_terminal.config_plot import PLOT_DPI +from openbb_terminal.decorators import log_start_end +from openbb_terminal.helper_funcs import ( + export_data, + get_next_stock_market_days, + plot_autoscale, +) +from openbb_terminal.rich_config import console +from openbb_terminal.common.prediction_techniques.pred_helper import ( + lambda_price_prediction_backtesting_color, + print_prediction_kpis, + print_pretty_prediction, +) + +logger = logging.getLogger(__name__) + + +@log_start_end(log=logger) +def display_expo_forecast( + data: Union[pd.DataFrame, pd.Series], + n_predict: int, + export: str = "", +): + """Display Probalistic Exponential Smoothing forecasting + + Parameters + ---------- + data : Union[pd.Series, np.array] + Data to forecast + n_predict : int + Number of days to forecast + fig_title : str + Figure title + export: str + Format to export data + time_res : str + Resolution for data, allowing for predicting outside of standard market days + external_axes : Optional[List[plt.Axes]], optional + External axes (2 axis is expected in the list), by default None + """ + ticker_series, predicted_values, _ = expo_model.get_expo_data(data, n_predict) + + ticker_series.plot(label="Actual AdjClose") + predicted_values.plot(label="Probabilistic Forecast", low_quantile=0.05, high_quantile=0.95) + plt.legend() + plt.show() + + + #export_data(export, os.path.dirname(os.path.abspath(__file__)), "expo") diff --git a/openbb_terminal/stocks/prediction_techniques/pred_controller.py b/openbb_terminal/stocks/prediction_techniques/pred_controller.py index 665be71de006..33e420947ca7 100644 --- a/openbb_terminal/stocks/prediction_techniques/pred_controller.py +++ b/openbb_terminal/stocks/prediction_techniques/pred_controller.py @@ -22,6 +22,8 @@ neural_networks_view, pred_helper, regression_view, + expo_view, + expo_model ) from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import ( @@ -54,6 +56,7 @@ class PredictionTechniquesController(BaseController): "lstm", "conv1d", "mc", + "expo", ] PATH = "/stocks/pred/" @@ -119,6 +122,7 @@ def print_help(self): lstm Long-Short Term Memory conv1d 1D Convolutional Neural Network mc Monte-Carlo simulations[/cmds] + expo Probablistic Exponential Smoothing """ console.print(text=help_text, menu="Stocks - Prediction Techniques") @@ -714,3 +718,38 @@ def call_mc(self, other_args: List[str]): use_log=ns_parser.dist == "lognormal", export=ns_parser.export, ) + + @log_start_end(log=logger) + def call_expo(self, other_args: List[str]): + """Process expo command""" + parser = argparse.ArgumentParser( + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + add_help=False, + prog="expo", + description=""" + Perform Probablistic Exponential Smoothing forecasting + """, + ) + parser.add_argument( + "-d", + "--days", + help="Days to predict", + dest="n_days", + type=check_positive, + default=5, + ) + + ns_parser = parse_known_args_and_warn( + parser, other_args, export_allowed=EXPORT_ONLY_FIGURES_ALLOWED + ) + + if ns_parser: + if self.target != "AdjClose": + console.print("Expo Prediction designed for AdjClose prices\n") + + expo_view.display_expo_forecast( + #data=self.stock[self.target], + data=self.stock, + n_predict=ns_parser.n_days, + export=ns_parser.export, + ) \ No newline at end of file From 42f840da9788981e3ac44bd172dfc49b5bb53627 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Wed, 18 May 2022 00:13:16 -0400 Subject: [PATCH 02/34] utilizing business datatime + fillers --- .../common/prediction_techniques/expo_model.py | 17 +++++++++-------- .../common/prediction_techniques/expo_view.py | 6 +++--- .../stocks/prediction_techniques/pred_api.py | 4 ++++ .../prediction_techniques/pred_controller.py | 3 +-- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index d98dd91fb2d3..beb6b0e38b21 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -1,4 +1,4 @@ -"""Monte Carlo Model""" +"""Exponential Probablistic Model""" __docformat__ = "numpy" import logging @@ -8,7 +8,7 @@ import pandas as pd from darts import TimeSeries from darts.models import ExponentialSmoothing -import matplotlib.pyplot as plt +from darts.dataprocessing.transformers import MissingValuesFiller from openbb_terminal.decorators import log_start_end @@ -18,8 +18,9 @@ def get_expo_data( data: Union[pd.Series, pd.DataFrame], n_predict: int, -#) -> Tuple[List[float], Any]: ): +#) -> Tuple[List[float], List[float], Any]: + """Performs Probabalistic Exponential Smoothing forecasting Default parameters: 80/20 splot @@ -41,19 +42,19 @@ def get_expo_data( Any Fit Expo model object. """ - + filler = MissingValuesFiller() + data['date_fixed'] = data.index # add temp column since we need to use index col for date print(f"Predicting {n_predict} days in advance. ") - data['index'] = range(1, len(data) + 1) - - ticker_series = TimeSeries.from_dataframe(data, time_col='index', value_cols="AdjClose") + ticker_series = TimeSeries.from_dataframe(data, time_col='date_fixed', value_cols=['AdjClose'], freq='B', fill_missing_dates=True) + ticker_series = filler.transform(ticker_series) ticker_series = ticker_series.astype(np.float32) train, val = ticker_series.split_before(0.85) model = ExponentialSmoothing() model.fit(train) - # Show forcast over validation # and then +10 afterwards sampled 5 times per point + # Show forcast over validation # and then +10 afterwards sampled 10 times per point probabilistic_forecast = model.predict(len(val) + n_predict, num_samples=10) return ticker_series, probabilistic_forecast, model diff --git a/openbb_terminal/common/prediction_techniques/expo_view.py b/openbb_terminal/common/prediction_techniques/expo_view.py index a41365926f08..224955d0d074 100644 --- a/openbb_terminal/common/prediction_techniques/expo_view.py +++ b/openbb_terminal/common/prediction_techniques/expo_view.py @@ -1,4 +1,4 @@ -"""Monte Carlo View""" +"""Probablistic Exponential Smoothing View""" __docformat__ = "numpy" import logging @@ -53,9 +53,9 @@ def display_expo_forecast( External axes (2 axis is expected in the list), by default None """ ticker_series, predicted_values, _ = expo_model.get_expo_data(data, n_predict) - + ticker_series.plot(label="Actual AdjClose") - predicted_values.plot(label="Probabilistic Forecast", low_quantile=0.05, high_quantile=0.95) + predicted_values.plot(label="Probabilistic Forecast", low_quantile=0.1, high_quantile=0.9) plt.legend() plt.show() diff --git a/openbb_terminal/stocks/prediction_techniques/pred_api.py b/openbb_terminal/stocks/prediction_techniques/pred_api.py index 8f263cd300bf..9b6a54c89d07 100644 --- a/openbb_terminal/stocks/prediction_techniques/pred_api.py +++ b/openbb_terminal/stocks/prediction_techniques/pred_api.py @@ -35,5 +35,9 @@ display_mc_forecast as mc, ) +from openbb_terminal.common.prediction_techniques.expo_view import ( + display_expo_forecast as expo, +) + # Models models = _models(os.path.abspath(os.path.dirname(prediction_techniques.__file__))) diff --git a/openbb_terminal/stocks/prediction_techniques/pred_controller.py b/openbb_terminal/stocks/prediction_techniques/pred_controller.py index 33e420947ca7..e4b033576ce4 100644 --- a/openbb_terminal/stocks/prediction_techniques/pred_controller.py +++ b/openbb_terminal/stocks/prediction_techniques/pred_controller.py @@ -22,8 +22,7 @@ neural_networks_view, pred_helper, regression_view, - expo_view, - expo_model + expo_view ) from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import ( From 5edcad727944c676768bb5f11ddd0cc813a6204a Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Thu, 19 May 2022 10:05:24 -0400 Subject: [PATCH 03/34] working figures --- .../common/prediction_techniques/expo_view.py | 29 +++++++++++++++---- .../prediction_techniques/pred_controller.py | 4 +-- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_view.py b/openbb_terminal/common/prediction_techniques/expo_view.py index 224955d0d074..1a86697c9e0d 100644 --- a/openbb_terminal/common/prediction_techniques/expo_view.py +++ b/openbb_terminal/common/prediction_techniques/expo_view.py @@ -21,9 +21,8 @@ ) from openbb_terminal.rich_config import console from openbb_terminal.common.prediction_techniques.pred_helper import ( - lambda_price_prediction_backtesting_color, - print_prediction_kpis, print_pretty_prediction, + plot_data_predictions ) logger = logging.getLogger(__name__) @@ -53,11 +52,29 @@ def display_expo_forecast( External axes (2 axis is expected in the list), by default None """ ticker_series, predicted_values, _ = expo_model.get_expo_data(data, n_predict) + external_axes = None - ticker_series.plot(label="Actual AdjClose") - predicted_values.plot(label="Probabilistic Forecast", low_quantile=0.1, high_quantile=0.9) - plt.legend() - plt.show() + if not external_axes: + fig, ax = plt.subplots(figsize=plot_autoscale(), dpi=PLOT_DPI) + else: + if len(external_axes) != 1: + logger.error("Expected list of one axis item.") + console.print("[red]Expected list of one axis item.\n[/red]") + return + (ax,) = external_axes + #ax = fig.get_axes()[0] + ticker_series.plot(label="Actual AdjClose", figure=fig) + predicted_values.plot(label="Probabilistic Forecast", low_quantile=0.1, high_quantile=0.9, figure=fig) + + # how to sub axes in a figure that is in external axis mode + ax.set_title(f"Probablistic Exponetial Smoothing") + ax.set_ylabel("Closing") + ax.set_xlabel("Date") + + theme.style_primary_axis(ax) + + if not external_axes: + theme.visualize_output() #export_data(export, os.path.dirname(os.path.abspath(__file__)), "expo") diff --git a/openbb_terminal/stocks/prediction_techniques/pred_controller.py b/openbb_terminal/stocks/prediction_techniques/pred_controller.py index e4b033576ce4..29d4fcfd60e4 100644 --- a/openbb_terminal/stocks/prediction_techniques/pred_controller.py +++ b/openbb_terminal/stocks/prediction_techniques/pred_controller.py @@ -120,8 +120,8 @@ def print_help(self): rnn Recurrent Neural Network lstm Long-Short Term Memory conv1d 1D Convolutional Neural Network - mc Monte-Carlo simulations[/cmds] - expo Probablistic Exponential Smoothing + mc Monte-Carlo simulations + expo Probablistic Exponential Smoothing[/cmds] """ console.print(text=help_text, menu="Stocks - Prediction Techniques") From 0f0aab4c72314b5f42e7686170eac0fe142ea240 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Thu, 19 May 2022 17:02:40 -0400 Subject: [PATCH 04/34] expo with more functionality --- .../prediction_techniques/expo_model.py | 89 ++++++++++++++---- .../common/prediction_techniques/expo_view.py | 27 +++--- .../prediction_techniques/pred_controller.py | 92 ++++++++++++++++++- 3 files changed, 171 insertions(+), 37 deletions(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index beb6b0e38b21..6cf855bf4ebe 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -3,58 +3,111 @@ import logging from typing import Any, Tuple, Union, List +from matplotlib import ticker import numpy as np import pandas as pd from darts import TimeSeries from darts.models import ExponentialSmoothing from darts.dataprocessing.transformers import MissingValuesFiller +from darts.utils.utils import ModelMode, SeasonalityMode +from darts.metrics import mape from openbb_terminal.decorators import log_start_end +TRENDS = ["N", "A", "M"] +SEASONS = ["N", "A", "M"] +PERIODS = [4,5,7] +DAMPED = ["T", "F"] + logger = logging.getLogger(__name__) @log_start_end(log=logger) def get_expo_data( data: Union[pd.Series, pd.DataFrame], - n_predict: int, -): -#) -> Tuple[List[float], List[float], Any]: + trend: str = "A", + seasonal: str = "A", + seasonal_periods: int = 7, + damped: str = "F", + n_predict: int=5, +) -> Tuple[List[float], List[float], Any, Any]: """Performs Probabalistic Exponential Smoothing forecasting - - Default parameters: 80/20 splot + This is a wrapper around statsmodels Holt-Winters' Exponential Smoothing; + we refer to this link for the original and more complete documentation of the parameters. + + https://unit8co.github.io/darts/generated_api/darts.models.forecasting.exponential_smoothing.html?highlight=exponential Parameters ---------- data : Union[pd.Series, np.ndarray] Input data. - n_predict : int - Days to predict - - use_log : bool, optional - Flag to use log returns, by default True + trend: str + Trend component. One of [N, A, M] + Defaults to ADDITIVE. + seasonal: str + Seasonal component. One of [N, A, M] + Defaults to ADDITIVE. + seasonal_periods: int + Number of seasonal periods in a year + If not set, inferred from frequency of the series. + n_predict: int + Number of days to forecast Returns ------- + List[float] + Adjusted Data series List[float] List of predicted values Any - Fit Expo model object. + Fit Prob. Expo model object. """ - filler = MissingValuesFiller() - data['date_fixed'] = data.index # add temp column since we need to use index col for date - print(f"Predicting {n_predict} days in advance. ") - ticker_series = TimeSeries.from_dataframe(data, time_col='date_fixed', value_cols=['AdjClose'], freq='B', fill_missing_dates=True) + filler = MissingValuesFiller() + data['date'] = data.index # add temp column since we need to use index col for date + ticker_series = TimeSeries.from_dataframe(data, time_col='date', value_cols=['AdjClose'], freq='B', fill_missing_dates=True) + ticker_series = filler.transform(ticker_series) ticker_series = ticker_series.astype(np.float32) - train, val = ticker_series.split_before(0.85) - model = ExponentialSmoothing() + + + if trend == "M": + trend = ModelMode.MULTIPLICATIVE + elif trend == "N": + trend = ModelMode.NONE + else: # Default + trend = ModelMode.ADDITIVE + + if seasonal == "M": + seasonal = SeasonalityMode.MULTIPLICATIVE + elif seasonal == "N": + seasonal = SeasonalityMode.NONE + else: # Default + seasonal = SeasonalityMode.ADDITIVE + + if damped == "T": + damped = True + else: + damped = False + + # print(f"Prediction days {n_predict}") + # print(f"Trend {trend}") + # print(f"Seasonal {seasonal}") + # print(f"Seasonal_periods {seasonal_periods}") + # print(f"damped {damped} with type {type(damped)}") + model = ExponentialSmoothing(trend=trend, + seasonal=seasonal, + seasonal_periods=seasonal_periods, + damped=damped) + model.fit(train) + #model.backtest(ticker_series, val) # Show forcast over validation # and then +10 afterwards sampled 10 times per point probabilistic_forecast = model.predict(len(val) + n_predict, num_samples=10) + precision = mape(val, probabilistic_forecast) + #print("model {} obtains MAPE: {:.2f}%".format(model, mape(val, probabilistic_forecast))) - return ticker_series, probabilistic_forecast, model + return ticker_series, probabilistic_forecast, precision, model diff --git a/openbb_terminal/common/prediction_techniques/expo_view.py b/openbb_terminal/common/prediction_techniques/expo_view.py index 1a86697c9e0d..21be6e429b38 100644 --- a/openbb_terminal/common/prediction_techniques/expo_view.py +++ b/openbb_terminal/common/prediction_techniques/expo_view.py @@ -31,7 +31,12 @@ @log_start_end(log=logger) def display_expo_forecast( data: Union[pd.DataFrame, pd.Series], + ticker_name: str, n_predict: int, + trend: str, + seasonal: str, + seasonal_periods: int, + damped: str, export: str = "", ): """Display Probalistic Exponential Smoothing forecasting @@ -42,18 +47,15 @@ def display_expo_forecast( Data to forecast n_predict : int Number of days to forecast - fig_title : str - Figure title export: str Format to export data - time_res : str - Resolution for data, allowing for predicting outside of standard market days external_axes : Optional[List[plt.Axes]], optional External axes (2 axis is expected in the list), by default None """ - ticker_series, predicted_values, _ = expo_model.get_expo_data(data, n_predict) + ticker_series, predicted_values, precision, _ = expo_model.get_expo_data(data, trend, seasonal, seasonal_periods, damped, n_predict) + + # Plotting with Matplotlib external_axes = None - if not external_axes: fig, ax = plt.subplots(figsize=plot_autoscale(), dpi=PLOT_DPI) else: @@ -63,18 +65,15 @@ def display_expo_forecast( return (ax,) = external_axes - #ax = fig.get_axes()[0] - + #ax = fig.get_axes()[0] # fig gives list of axes (only one for this case) ticker_series.plot(label="Actual AdjClose", figure=fig) predicted_values.plot(label="Probabilistic Forecast", low_quantile=0.1, high_quantile=0.9, figure=fig) - - # how to sub axes in a figure that is in external axis mode - ax.set_title(f"Probablistic Exponetial Smoothing") - ax.set_ylabel("Closing") + ax.set_title(f"PES for ${ticker_name} for next [{n_predict}] days MAP={round(precision,2)}%") + ax.set_ylabel("Adj. Closing") ax.set_xlabel("Date") - theme.style_primary_axis(ax) if not external_axes: theme.visualize_output() - #export_data(export, os.path.dirname(os.path.abspath(__file__)), "expo") + + export_data(export, os.path.dirname(os.path.abspath(__file__)), "expo") diff --git a/openbb_terminal/stocks/prediction_techniques/pred_controller.py b/openbb_terminal/stocks/prediction_techniques/pred_controller.py index 29d4fcfd60e4..c7dd04bfbd18 100644 --- a/openbb_terminal/stocks/prediction_techniques/pred_controller.py +++ b/openbb_terminal/stocks/prediction_techniques/pred_controller.py @@ -22,7 +22,8 @@ neural_networks_view, pred_helper, regression_view, - expo_view + expo_view, + expo_model ) from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import ( @@ -92,6 +93,10 @@ def __init__( choices["ets"]["-s"] = {c: {} for c in ets_model.SEASONS} choices["arima"]["-i"] = {c: {} for c in arima_model.ICS} choices["mc"]["--dist"] = {c: {} for c in mc_model.DISTRIBUTIONS} + choices["expo"]["-t"] = {c: {} for c in expo_model.TRENDS} + choices["expo"]["-s"] = {c: {} for c in expo_model.SEASONS} + choices["expo"]["-p"] = {c: {} for c in expo_model.PERIODS} + choices["expo"]["-dp"] = {c: {} for c in expo_model.DAMPED} self.completer = NestedCompleter.from_nested_dict(choices) def print_help(self): @@ -726,17 +731,65 @@ def call_expo(self, other_args: List[str]): add_help=False, prog="expo", description=""" - Perform Probablistic Exponential Smoothing forecasting + Perform Probablistic Exponential Smoothing forecast + Trend: N: None, A: Additive, M: Multiplicative + Seasonality: N: None, A: Additive, M: Multiplicative + Damped: T: True, F: False """, ) parser.add_argument( "-d", "--days", - help="Days to predict", + action="store", dest="n_days", type=check_positive, default=5, + help="prediction days.", + ) + parser.add_argument( + "-t", + "--trend", + action="store", + dest="trend", + choices=expo_model.TRENDS, + default="A", + help="Trend: N: None, A: Additive[DEFAULT], M: Multiplicative.", + ) + parser.add_argument( + "-s", + "--seasonal", + action="store", + dest="seasonal", + choices=expo_model.SEASONS, + default="A", + help="Seasonality: N: None, A: Additive[DEFAULT], M: Multiplicative.", + ) + parser.add_argument( + "-p", + "--periods", + action="store", + dest="seasonal_periods", + type=check_positive, + default=5, + help="Seasonal periods: 4: Quarters, 5: Business Days [DEFAULT], 7: Weekly", ) + parser.add_argument( + "-dp", + "--damped", + action="store", + dest="damped", + default="F", + help="Seasonal periods: 4: Quarters, 5: Business Days [DEFAULT], 7: Weekly", + ) + # parser.add_argument( + # "-e", + # "--end", + # action="store", + # type=valid_date, + # dest="s_end_date", + # default=None, + # help="The end date (format YYYY-MM-DD) to select - Backtesting", + # ) ns_parser = parse_known_args_and_warn( parser, other_args, export_allowed=EXPORT_ONLY_FIGURES_ALLOWED @@ -747,8 +800,37 @@ def call_expo(self, other_args: List[str]): console.print("Expo Prediction designed for AdjClose prices\n") expo_view.display_expo_forecast( - #data=self.stock[self.target], data=self.stock, + ticker_name=self.ticker, n_predict=ns_parser.n_days, + trend=ns_parser.trend, + seasonal=ns_parser.seasonal, + seasonal_periods=ns_parser.seasonal_periods, + damped = ns_parser.damped, + #s_end_date=ns_parser.s_end_date, #TODO export=ns_parser.export, - ) \ No newline at end of file + ) + + + # ns_parser = parse_known_args_and_warn( + # parser, other_args, export_allowed=EXPORT_ONLY_FIGURES_ALLOWED + # ) + # if ns_parser: + + # if ns_parser.s_end_date: + + # if ns_parser.s_end_date < self.stock.index[0]: + # console.print( + # "Backtesting not allowed, since End Date is older than Start Date of historical data\n" + # ) + + # if ( + # ns_parser.s_end_date + # < get_next_stock_market_days( + # last_stock_day=self.stock.index[0], + # n_next_days=5 + ns_parser.n_days, + # )[-1] + # ): + # console.print( + # "Backtesting not allowed, since End Date is too close to Start Date to train model\n" + # ) From 09f4ebba761949f1335f4dd60db0aa2b1637ef63 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Thu, 19 May 2022 21:23:25 -0400 Subject: [PATCH 05/34] historical forcasting feat. --- .../prediction_techniques/expo_model.py | 28 ++++++++--------- .../common/prediction_techniques/expo_view.py | 16 ++++++++-- .../prediction_techniques/pred_controller.py | 30 ++++++++++++------- 3 files changed, 45 insertions(+), 29 deletions(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index 6cf855bf4ebe..53455cf3cb2e 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -27,9 +27,11 @@ def get_expo_data( data: Union[pd.Series, pd.DataFrame], trend: str = "A", seasonal: str = "A", - seasonal_periods: int = 7, + seasonal_periods: int = None, damped: str = "F", - n_predict: int=5, + n_predict: int=30, + start_window: float=0.65, + forcast_horizon: int=1 ) -> Tuple[List[float], List[float], Any, Any]: """Performs Probabalistic Exponential Smoothing forecasting @@ -87,27 +89,23 @@ def get_expo_data( else: # Default seasonal = SeasonalityMode.ADDITIVE - if damped == "T": + if damped == "T": damped = True else: damped = False - # print(f"Prediction days {n_predict}") - # print(f"Trend {trend}") - # print(f"Seasonal {seasonal}") - # print(f"Seasonal_periods {seasonal_periods}") - # print(f"damped {damped} with type {type(damped)}") - model = ExponentialSmoothing(trend=trend, + model_es = ExponentialSmoothing(trend=trend, seasonal=seasonal, seasonal_periods=seasonal_periods, damped=damped) - model.fit(train) - #model.backtest(ticker_series, val) + historical_fcast_es = model_es.historical_forecasts( + ticker_series, start=start_window, forecast_horizon=forcast_horizon, verbose=True + ) # Show forcast over validation # and then +10 afterwards sampled 10 times per point - probabilistic_forecast = model.predict(len(val) + n_predict, num_samples=10) + probabilistic_forecast = model_es.predict(n_predict, num_samples=10) precision = mape(val, probabilistic_forecast) - #print("model {} obtains MAPE: {:.2f}%".format(model, mape(val, probabilistic_forecast))) - - return ticker_series, probabilistic_forecast, precision, model + print("model {} obtains MAPE: {:.2f}%".format(model_es,precision)) + + return ticker_series, historical_fcast_es, probabilistic_forecast, precision, model_es diff --git a/openbb_terminal/common/prediction_techniques/expo_view.py b/openbb_terminal/common/prediction_techniques/expo_view.py index 21be6e429b38..2bd163c82c5b 100644 --- a/openbb_terminal/common/prediction_techniques/expo_view.py +++ b/openbb_terminal/common/prediction_techniques/expo_view.py @@ -32,11 +32,13 @@ def display_expo_forecast( data: Union[pd.DataFrame, pd.Series], ticker_name: str, - n_predict: int, trend: str, seasonal: str, seasonal_periods: int, damped: str, + n_predict: int, + start_window: float, + forcast_horizon: int, export: str = "", ): """Display Probalistic Exponential Smoothing forecasting @@ -52,7 +54,14 @@ def display_expo_forecast( external_axes : Optional[List[plt.Axes]], optional External axes (2 axis is expected in the list), by default None """ - ticker_series, predicted_values, precision, _ = expo_model.get_expo_data(data, trend, seasonal, seasonal_periods, damped, n_predict) + ticker_series, historical_fcast_es, predicted_values, precision, _ = expo_model.get_expo_data(data, + trend, + seasonal, + seasonal_periods, + damped, + n_predict, + start_window, + forcast_horizon) # Plotting with Matplotlib external_axes = None @@ -67,8 +76,9 @@ def display_expo_forecast( #ax = fig.get_axes()[0] # fig gives list of axes (only one for this case) ticker_series.plot(label="Actual AdjClose", figure=fig) + historical_fcast_es.plot(label="Backtest 3-Days ahead forecast (Exp. Smoothing)", figure=fig) predicted_values.plot(label="Probabilistic Forecast", low_quantile=0.1, high_quantile=0.9, figure=fig) - ax.set_title(f"PES for ${ticker_name} for next [{n_predict}] days MAP={round(precision,2)}%") + ax.set_title(f"PES for ${ticker_name} for next [{n_predict}] days (Model MAPE={round(precision,2)}%)") ax.set_ylabel("Adj. Closing") ax.set_xlabel("Date") theme.style_primary_axis(ax) diff --git a/openbb_terminal/stocks/prediction_techniques/pred_controller.py b/openbb_terminal/stocks/prediction_techniques/pred_controller.py index c7dd04bfbd18..795b7a5f67c1 100644 --- a/openbb_terminal/stocks/prediction_techniques/pred_controller.py +++ b/openbb_terminal/stocks/prediction_techniques/pred_controller.py @@ -779,17 +779,24 @@ def call_expo(self, other_args: List[str]): action="store", dest="damped", default="F", - help="Seasonal periods: 4: Quarters, 5: Business Days [DEFAULT], 7: Weekly", + help="Dampening", + ) + parser.add_argument( + "-sw", + "--startwindow", + action="store", + dest="start_window", + default=0.65, + help="Start point for rolling training and forcast window. 0.0-1.0 : 0.65[DEFAULT]", + ) + parser.add_argument( + "-fh", + "--forcasthorizon", + action="store", + dest="forcast_horizon", + default=3, + help="Days/Points to forcast when training and performing historical back-testing", ) - # parser.add_argument( - # "-e", - # "--end", - # action="store", - # type=valid_date, - # dest="s_end_date", - # default=None, - # help="The end date (format YYYY-MM-DD) to select - Backtesting", - # ) ns_parser = parse_known_args_and_warn( parser, other_args, export_allowed=EXPORT_ONLY_FIGURES_ALLOWED @@ -807,7 +814,8 @@ def call_expo(self, other_args: List[str]): seasonal=ns_parser.seasonal, seasonal_periods=ns_parser.seasonal_periods, damped = ns_parser.damped, - #s_end_date=ns_parser.s_end_date, #TODO + start_window = ns_parser.start_window, + forcast_horizon = ns_parser.forcast_horizon, export=ns_parser.export, ) From 93c3c4fe82b1445e403c12e8ba597477835b9d21 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Thu, 19 May 2022 23:18:19 -0400 Subject: [PATCH 06/34] numeric values for forcasted days --- openbb_terminal/common/prediction_techniques/expo_model.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index 53455cf3cb2e..102b6e4b469f 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -108,4 +108,7 @@ def get_expo_data( precision = mape(val, probabilistic_forecast) print("model {} obtains MAPE: {:.2f}%".format(model_es,precision)) + numeric_forcastic = probabilistic_forecast.quantile_df()['AdjClose_0.5'].tail(n_predict) + print(numeric_forcastic) + return ticker_series, historical_fcast_es, probabilistic_forecast, precision, model_es From b6d7a877f94c402567937f532c4bd19c4edceb5d Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Fri, 20 May 2022 09:00:14 -0400 Subject: [PATCH 07/34] print pretty predictions --- openbb_terminal/common/prediction_techniques/expo_model.py | 3 --- openbb_terminal/common/prediction_techniques/expo_view.py | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index 102b6e4b469f..53455cf3cb2e 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -108,7 +108,4 @@ def get_expo_data( precision = mape(val, probabilistic_forecast) print("model {} obtains MAPE: {:.2f}%".format(model_es,precision)) - numeric_forcastic = probabilistic_forecast.quantile_df()['AdjClose_0.5'].tail(n_predict) - print(numeric_forcastic) - return ticker_series, historical_fcast_es, probabilistic_forecast, precision, model_es diff --git a/openbb_terminal/common/prediction_techniques/expo_view.py b/openbb_terminal/common/prediction_techniques/expo_view.py index 2bd163c82c5b..c4fb6243b029 100644 --- a/openbb_terminal/common/prediction_techniques/expo_view.py +++ b/openbb_terminal/common/prediction_techniques/expo_view.py @@ -85,5 +85,8 @@ def display_expo_forecast( if not external_axes: theme.visualize_output() + + numeric_forcastic = predicted_values.quantile_df()['AdjClose_0.5'].tail(n_predict) + print_pretty_prediction(numeric_forcastic, data['AdjClose'].iloc[-1]) export_data(export, os.path.dirname(os.path.abspath(__file__)), "expo") From 580cde902268c66c3f279b0585262b04e2174ef3 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Fri, 20 May 2022 09:19:20 -0400 Subject: [PATCH 08/34] formatting --- .../prediction_techniques/expo_model.py | 73 +++++++++++-------- .../common/prediction_techniques/expo_view.py | 52 ++++++++----- 2 files changed, 76 insertions(+), 49 deletions(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index 53455cf3cb2e..d36f4de0c051 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -17,27 +17,28 @@ TRENDS = ["N", "A", "M"] SEASONS = ["N", "A", "M"] -PERIODS = [4,5,7] +PERIODS = [4, 5, 7] DAMPED = ["T", "F"] logger = logging.getLogger(__name__) + @log_start_end(log=logger) def get_expo_data( data: Union[pd.Series, pd.DataFrame], trend: str = "A", seasonal: str = "A", seasonal_periods: int = None, - damped: str = "F", - n_predict: int=30, - start_window: float=0.65, - forcast_horizon: int=1 + damped: str = "F", + n_predict: int = 30, + start_window: float = 0.65, + forcast_horizon: int = 1, ) -> Tuple[List[float], List[float], Any, Any]: """Performs Probabalistic Exponential Smoothing forecasting - This is a wrapper around statsmodels Holt-Winters' Exponential Smoothing; + This is a wrapper around statsmodels Holt-Winters' Exponential Smoothing; we refer to this link for the original and more complete documentation of the parameters. - + https://unit8co.github.io/darts/generated_api/darts.models.forecasting.exponential_smoothing.html?highlight=exponential Parameters @@ -67,45 +68,57 @@ def get_expo_data( """ filler = MissingValuesFiller() - data['date'] = data.index # add temp column since we need to use index col for date - ticker_series = TimeSeries.from_dataframe(data, time_col='date', value_cols=['AdjClose'], freq='B', fill_missing_dates=True) - + data["date"] = data.index # add temp column since we need to use index col for date + ticker_series = TimeSeries.from_dataframe( + data, + time_col="date", + value_cols=["AdjClose"], + freq="B", + fill_missing_dates=True, + ) + ticker_series = filler.transform(ticker_series) ticker_series = ticker_series.astype(np.float32) train, val = ticker_series.split_before(0.85) - if trend == "M": trend = ModelMode.MULTIPLICATIVE elif trend == "N": trend = ModelMode.NONE - else: # Default - trend = ModelMode.ADDITIVE + else: # Default + trend = ModelMode.ADDITIVE if seasonal == "M": seasonal = SeasonalityMode.MULTIPLICATIVE elif seasonal == "N": seasonal = SeasonalityMode.NONE - else: # Default + else: # Default seasonal = SeasonalityMode.ADDITIVE - - if damped == "T": - damped = True - else: - damped = False - - model_es = ExponentialSmoothing(trend=trend, - seasonal=seasonal, - seasonal_periods=seasonal_periods, - damped=damped) - + + damped = True if damped == "T" else False + + # Model Init + model_es = ExponentialSmoothing( + trend=trend, seasonal=seasonal, seasonal_periods=seasonal_periods, damped=damped + ) + + # Training model based on historical backtesting historical_fcast_es = model_es.historical_forecasts( - ticker_series, start=start_window, forecast_horizon=forcast_horizon, verbose=True + ticker_series, + start=start_window, + forecast_horizon=forcast_horizon, + verbose=True, ) - # Show forcast over validation # and then +10 afterwards sampled 10 times per point + # Show forcast over validation # and then +n_predict afterwards sampled 10 times per point probabilistic_forecast = model_es.predict(n_predict, num_samples=10) precision = mape(val, probabilistic_forecast) - print("model {} obtains MAPE: {:.2f}%".format(model_es,precision)) - - return ticker_series, historical_fcast_es, probabilistic_forecast, precision, model_es + print("model {} obtains MAPE: {:.2f}%".format(model_es, precision)) + + return ( + ticker_series, + historical_fcast_es, + probabilistic_forecast, + precision, + model_es, + ) diff --git a/openbb_terminal/common/prediction_techniques/expo_view.py b/openbb_terminal/common/prediction_techniques/expo_view.py index c4fb6243b029..9029a8866525 100644 --- a/openbb_terminal/common/prediction_techniques/expo_view.py +++ b/openbb_terminal/common/prediction_techniques/expo_view.py @@ -22,7 +22,7 @@ from openbb_terminal.rich_config import console from openbb_terminal.common.prediction_techniques.pred_helper import ( print_pretty_prediction, - plot_data_predictions + plot_data_predictions, ) logger = logging.getLogger(__name__) @@ -54,19 +54,27 @@ def display_expo_forecast( external_axes : Optional[List[plt.Axes]], optional External axes (2 axis is expected in the list), by default None """ - ticker_series, historical_fcast_es, predicted_values, precision, _ = expo_model.get_expo_data(data, - trend, - seasonal, - seasonal_periods, - damped, - n_predict, - start_window, - forcast_horizon) - - # Plotting with Matplotlib + ( + ticker_series, + historical_fcast_es, + predicted_values, + precision, + _, + ) = expo_model.get_expo_data( + data, + trend, + seasonal, + seasonal_periods, + damped, + n_predict, + start_window, + forcast_horizon, + ) + + # Plotting with Matplotlib external_axes = None if not external_axes: - fig, ax = plt.subplots(figsize=plot_autoscale(), dpi=PLOT_DPI) + fig, ax = plt.subplots(figsize=plot_autoscale(), dpi=PLOT_DPI) else: if len(external_axes) != 1: logger.error("Expected list of one axis item.") @@ -74,11 +82,17 @@ def display_expo_forecast( return (ax,) = external_axes - #ax = fig.get_axes()[0] # fig gives list of axes (only one for this case) + # ax = fig.get_axes()[0] # fig gives list of axes (only one for this case) ticker_series.plot(label="Actual AdjClose", figure=fig) - historical_fcast_es.plot(label="Backtest 3-Days ahead forecast (Exp. Smoothing)", figure=fig) - predicted_values.plot(label="Probabilistic Forecast", low_quantile=0.1, high_quantile=0.9, figure=fig) - ax.set_title(f"PES for ${ticker_name} for next [{n_predict}] days (Model MAPE={round(precision,2)}%)") + historical_fcast_es.plot( + label="Backtest 3-Days ahead forecast (Exp. Smoothing)", figure=fig + ) + predicted_values.plot( + label="Probabilistic Forecast", low_quantile=0.1, high_quantile=0.9, figure=fig + ) + ax.set_title( + f"PES for ${ticker_name} for next [{n_predict}] days (Model MAPE={round(precision,2)}%)" + ) ax.set_ylabel("Adj. Closing") ax.set_xlabel("Date") theme.style_primary_axis(ax) @@ -86,7 +100,7 @@ def display_expo_forecast( if not external_axes: theme.visualize_output() - numeric_forcastic = predicted_values.quantile_df()['AdjClose_0.5'].tail(n_predict) - print_pretty_prediction(numeric_forcastic, data['AdjClose'].iloc[-1]) - + numeric_forcastic = predicted_values.quantile_df()["AdjClose_0.5"].tail(n_predict) + print_pretty_prediction(numeric_forcastic, data["AdjClose"].iloc[-1]) + export_data(export, os.path.dirname(os.path.abspath(__file__)), "expo") From 22b0b2a915fb482b4281cd003e4ff69c26161775 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Fri, 20 May 2022 10:45:00 -0400 Subject: [PATCH 09/34] code cleanup --- .../prediction_techniques/expo_model.py | 1 - .../common/prediction_techniques/expo_view.py | 6 +--- .../prediction_techniques/pred_controller.py | 28 ++----------------- 3 files changed, 3 insertions(+), 32 deletions(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index d36f4de0c051..ed7af626eccf 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -3,7 +3,6 @@ import logging from typing import Any, Tuple, Union, List -from matplotlib import ticker import numpy as np import pandas as pd diff --git a/openbb_terminal/common/prediction_techniques/expo_view.py b/openbb_terminal/common/prediction_techniques/expo_view.py index 9029a8866525..c2cb14787c2c 100644 --- a/openbb_terminal/common/prediction_techniques/expo_view.py +++ b/openbb_terminal/common/prediction_techniques/expo_view.py @@ -3,12 +3,10 @@ import logging import os -from typing import List, Optional, Union +from typing import List, Union import matplotlib.pyplot as plt -import numpy as np import pandas as pd -import seaborn as sns from openbb_terminal.config_terminal import theme from openbb_terminal.common.prediction_techniques import expo_model @@ -16,13 +14,11 @@ from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import ( export_data, - get_next_stock_market_days, plot_autoscale, ) from openbb_terminal.rich_config import console from openbb_terminal.common.prediction_techniques.pred_helper import ( print_pretty_prediction, - plot_data_predictions, ) logger = logging.getLogger(__name__) diff --git a/openbb_terminal/stocks/prediction_techniques/pred_controller.py b/openbb_terminal/stocks/prediction_techniques/pred_controller.py index 795b7a5f67c1..542dea6b8783 100644 --- a/openbb_terminal/stocks/prediction_techniques/pred_controller.py +++ b/openbb_terminal/stocks/prediction_techniques/pred_controller.py @@ -801,7 +801,7 @@ def call_expo(self, other_args: List[str]): ns_parser = parse_known_args_and_warn( parser, other_args, export_allowed=EXPORT_ONLY_FIGURES_ALLOWED ) - + if ns_parser: if self.target != "AdjClose": console.print("Expo Prediction designed for AdjClose prices\n") @@ -817,28 +817,4 @@ def call_expo(self, other_args: List[str]): start_window = ns_parser.start_window, forcast_horizon = ns_parser.forcast_horizon, export=ns_parser.export, - ) - - - # ns_parser = parse_known_args_and_warn( - # parser, other_args, export_allowed=EXPORT_ONLY_FIGURES_ALLOWED - # ) - # if ns_parser: - - # if ns_parser.s_end_date: - - # if ns_parser.s_end_date < self.stock.index[0]: - # console.print( - # "Backtesting not allowed, since End Date is older than Start Date of historical data\n" - # ) - - # if ( - # ns_parser.s_end_date - # < get_next_stock_market_days( - # last_stock_day=self.stock.index[0], - # n_next_days=5 + ns_parser.n_days, - # )[-1] - # ): - # console.print( - # "Backtesting not allowed, since End Date is too close to Start Date to train model\n" - # ) + ) \ No newline at end of file From ddc88cf3a0c265c3bd2b1fdef924cc27772e46d6 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Fri, 20 May 2022 14:27:17 -0400 Subject: [PATCH 10/34] doc strings fix --- .../stocks/prediction_techniques/pred_controller.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openbb_terminal/stocks/prediction_techniques/pred_controller.py b/openbb_terminal/stocks/prediction_techniques/pred_controller.py index 542dea6b8783..3210180cb086 100644 --- a/openbb_terminal/stocks/prediction_techniques/pred_controller.py +++ b/openbb_terminal/stocks/prediction_techniques/pred_controller.py @@ -753,7 +753,7 @@ def call_expo(self, other_args: List[str]): dest="trend", choices=expo_model.TRENDS, default="A", - help="Trend: N: None, A: Additive[DEFAULT], M: Multiplicative.", + help="Trend: N: None, A: Additive, M: Multiplicative.", ) parser.add_argument( "-s", @@ -762,7 +762,7 @@ def call_expo(self, other_args: List[str]): dest="seasonal", choices=expo_model.SEASONS, default="A", - help="Seasonality: N: None, A: Additive[DEFAULT], M: Multiplicative.", + help="Seasonality: N: None, A: Additive, M: Multiplicative.", ) parser.add_argument( "-p", @@ -771,7 +771,7 @@ def call_expo(self, other_args: List[str]): dest="seasonal_periods", type=check_positive, default=5, - help="Seasonal periods: 4: Quarters, 5: Business Days [DEFAULT], 7: Weekly", + help="Seasonal periods: 4: Quarters, 5: Business Days, 7: Weekly", ) parser.add_argument( "-dp", @@ -787,7 +787,7 @@ def call_expo(self, other_args: List[str]): action="store", dest="start_window", default=0.65, - help="Start point for rolling training and forcast window. 0.0-1.0 : 0.65[DEFAULT]", + help="Start point for rolling training and forcast window. 0.0-1.0", ) parser.add_argument( "-fh", From 0ef0ba101d2920f8396c52856bedba2889972fa8 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Fri, 20 May 2022 14:28:42 -0400 Subject: [PATCH 11/34] more docs --- openbb_terminal/common/prediction_techniques/expo_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index ed7af626eccf..0eba423fa1f9 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -1,4 +1,4 @@ -"""Exponential Probablistic Model""" +""" Probablistic Probablistic Smoothing Model""" __docformat__ = "numpy" import logging From 3ebbb2a9dfde2a164c55677bc0e6697cd6033157 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Fri, 20 May 2022 15:37:36 -0400 Subject: [PATCH 12/34] quick fix --- openbb_terminal/common/prediction_techniques/expo_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index 0eba423fa1f9..c1b6cbf86245 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -31,7 +31,7 @@ def get_expo_data( damped: str = "F", n_predict: int = 30, start_window: float = 0.65, - forcast_horizon: int = 1, + forcast_horizon: int = 3, ) -> Tuple[List[float], List[float], Any, Any]: """Performs Probabalistic Exponential Smoothing forecasting From 3493af680e01140c197df8476fe6aed1724d5056 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Fri, 20 May 2022 22:11:10 -0400 Subject: [PATCH 13/34] refactoring --- .../prediction_techniques/expo_model.py | 12 +++++++++-- .../common/prediction_techniques/expo_view.py | 20 ++++++++++++++++--- .../prediction_techniques/pred_controller.py | 12 +++++------ 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index c1b6cbf86245..6f435086c772 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -13,6 +13,8 @@ from darts.metrics import mape from openbb_terminal.decorators import log_start_end +from openbb_terminal.rich_config import console + TRENDS = ["N", "A", "M"] SEASONS = ["N", "A", "M"] @@ -53,8 +55,14 @@ def get_expo_data( seasonal_periods: int Number of seasonal periods in a year If not set, inferred from frequency of the series. + damped: str + Dampen the function n_predict: int Number of days to forecast + start_window: float + Size of sliding window from start of timeseries and onwards + forcast_horizon: int + Number of days to forcast when backtesting and retraining historical Returns ------- @@ -111,8 +119,8 @@ def get_expo_data( # Show forcast over validation # and then +n_predict afterwards sampled 10 times per point probabilistic_forecast = model_es.predict(n_predict, num_samples=10) - precision = mape(val, probabilistic_forecast) - print("model {} obtains MAPE: {:.2f}%".format(model_es, precision)) + precision = mape(val, probabilistic_forecast) # mape = mean average precision error + console.print(f"model {model_es} obtains MAPE: {precision:.2f}% \n") # TODO return ( ticker_series, diff --git a/openbb_terminal/common/prediction_techniques/expo_view.py b/openbb_terminal/common/prediction_techniques/expo_view.py index c2cb14787c2c..00c046d71f4b 100644 --- a/openbb_terminal/common/prediction_techniques/expo_view.py +++ b/openbb_terminal/common/prediction_techniques/expo_view.py @@ -23,7 +23,6 @@ logger = logging.getLogger(__name__) - @log_start_end(log=logger) def display_expo_forecast( data: Union[pd.DataFrame, pd.Series], @@ -37,14 +36,29 @@ def display_expo_forecast( forcast_horizon: int, export: str = "", ): - """Display Probalistic Exponential Smoothing forecasting + """Display Probalistic Exponential Smoothing forecast Parameters ---------- data : Union[pd.Series, np.array] Data to forecast - n_predict : int + trend: str + Trend component. One of [N, A, M] + Defaults to ADDITIVE. + seasonal: str + Seasonal component. One of [N, A, M] + Defaults to ADDITIVE. + seasonal_periods: int + Number of seasonal periods in a year + If not set, inferred from frequency of the series. + damped: str + Dampen the function + n_predict: int Number of days to forecast + start_window: float + Size of sliding window from start of timeseries and onwards + forcast_horizon: int + Number of days to forcast when backtesting and retraining historical export: str Format to export data external_axes : Optional[List[plt.Axes]], optional diff --git a/openbb_terminal/stocks/prediction_techniques/pred_controller.py b/openbb_terminal/stocks/prediction_techniques/pred_controller.py index 3210180cb086..65bcbe20da69 100644 --- a/openbb_terminal/stocks/prediction_techniques/pred_controller.py +++ b/openbb_terminal/stocks/prediction_techniques/pred_controller.py @@ -738,8 +738,8 @@ def call_expo(self, other_args: List[str]): """, ) parser.add_argument( - "-d", - "--days", + "-n", + "--n_days", action="store", dest="n_days", type=check_positive, @@ -774,7 +774,7 @@ def call_expo(self, other_args: List[str]): help="Seasonal periods: 4: Quarters, 5: Business Days, 7: Weekly", ) parser.add_argument( - "-dp", + "-d", "--damped", action="store", dest="damped", @@ -782,15 +782,15 @@ def call_expo(self, other_args: List[str]): help="Dampening", ) parser.add_argument( - "-sw", - "--startwindow", + "-w", + "--window", action="store", dest="start_window", default=0.65, help="Start point for rolling training and forcast window. 0.0-1.0", ) parser.add_argument( - "-fh", + "-f", "--forcasthorizon", action="store", dest="forcast_horizon", From 0fc8e5e218aee5da309fdc065b3d7b1d6a7b2eb5 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Fri, 20 May 2022 22:14:51 -0400 Subject: [PATCH 14/34] poetry updates --- poetry.lock | 567 +++++++++++++++++++++++++++++++++++++++++++++++-- pyproject.toml | 2 + 2 files changed, 556 insertions(+), 13 deletions(-) diff --git a/poetry.lock b/poetry.lock index 0b417bc41de2..962d171f9bd1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3,7 +3,7 @@ name = "absl-py" version = "1.0.0" description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." category = "main" -optional = true +optional = false python-versions = ">=3.6" [package.dependencies] @@ -459,7 +459,7 @@ name = "cachetools" version = "5.0.0" description = "Extensible memoizing collections and decorators" category = "main" -optional = true +optional = false python-versions = "~=3.7" [[package]] @@ -511,6 +511,24 @@ python-versions = ">=3.6" [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} +[[package]] +name = "cmdstanpy" +version = "0.9.68" +description = "Python interface to CmdStan" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +numpy = ">=1.15" +pandas = "*" +ujson = "*" + +[package.extras] +all = ["tqdm"] +docs = ["sphinx", "sphinx-gallery", "sphinx-rtd-theme", "numpydoc", "matplotlib"] +tests = ["flake8", "pylint", "pytest", "pytest-cov", "testfixtures", "tqdm"] + [[package]] name = "codespell" version = "2.1.0" @@ -630,6 +648,37 @@ category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +[[package]] +name = "darts" +version = "0.19.0" +description = "A python library for easy manipulation and forecasting of time series." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +holidays = ">=0.11.1" +ipython = ">=7.0.0" +joblib = ">=0.16.0" +lightgbm = ">=2.2.3" +matplotlib = ">=3.3.0" +nfoursid = ">=1.0.0" +numpy = ">=1.19.0" +pandas = ">=1.0.5" +pmdarima = ">=1.8.0" +prophet = ">=1.0.0" +pystan = ">=2.19.1.1,<3.0.0.0" +pytorch-lightning = ">=1.5.0" +requests = ">=2.22.0" +scikit-learn = ">=1.0.1" +scipy = ">=1.3.2" +statsforecast = ">=0.5.2" +statsmodels = ">=0.13.0" +tbats = ">=1.1.0" +torch = ">=1.8.0" +tqdm = ">=4.60.0" +xarray = ">=0.17.0" + [[package]] name = "dateparser" version = "1.1.1" @@ -808,6 +857,14 @@ category = "main" optional = false python-versions = ">=3.6" +[[package]] +name = "ephem" +version = "4.1.3" +description = "Compute positions of the planets and stars" +category = "main" +optional = false +python-versions = "*" + [[package]] name = "et-xmlfile" version = "1.1.0" @@ -1061,6 +1118,41 @@ category = "main" optional = false python-versions = ">=3.7" +[[package]] +name = "fsspec" +version = "2022.5.0" +description = "File-system specification" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +aiohttp = {version = "*", optional = true, markers = "extra == \"http\""} +requests = {version = "*", optional = true, markers = "extra == \"http\""} + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +dropbox = ["dropboxdrivefs", "requests", "dropbox"] +entrypoints = ["importlib-metadata"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["requests", "aiohttp"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +tqdm = ["tqdm"] + [[package]] name = "fundamentalanalysis" version = "0.2.14" @@ -1112,7 +1204,7 @@ name = "google-auth" version = "2.6.6" description = "Google Authentication Library" category = "main" -optional = true +optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*" [package.dependencies] @@ -1131,7 +1223,7 @@ name = "google-auth-oauthlib" version = "0.4.6" description = "Google Authentication Library" category = "main" -optional = true +optional = false python-versions = ">=3.6" [package.dependencies] @@ -1768,6 +1860,22 @@ category = "main" optional = true python-versions = "*" +[[package]] +name = "lightgbm" +version = "3.3.2" +description = "LightGBM Python Package" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +numpy = "*" +scikit-learn = "!=0.22.0" +scipy = "*" + +[package.extras] +dask = ["dask[array] (>=2.0.0)", "dask[dataframe] (>=2.0.0)", "dask[distributed] (>=2.0.0)", "pandas"] + [[package]] name = "linearmodels" version = "4.26" @@ -1789,6 +1897,27 @@ scipy = ">=1.2" setuptools-scm = ">=6.4.2,<7.0.0" statsmodels = ">=0.11" +[[package]] +name = "llvmlite" +version = "0.38.1" +description = "lightweight wrapper around basic LLVM functionality" +category = "main" +optional = false +python-versions = ">=3.7,<3.11" + +[[package]] +name = "lunarcalendar" +version = "0.0.9" +description = "A lunar calendar converter, including a number of lunar and solar holidays, mainly from China." +category = "main" +optional = false +python-versions = ">=2.7, <4" + +[package.dependencies] +ephem = ">=3.7.5.3" +python-dateutil = ">=2.6.1" +pytz = "*" + [[package]] name = "lxml" version = "4.8.0" @@ -1819,7 +1948,7 @@ name = "markdown" version = "3.3.6" description = "Python implementation of Markdown." category = "main" -optional = true +optional = false python-versions = ">=3.6" [package.dependencies] @@ -2132,6 +2261,19 @@ doc = ["sphinx (>=4.5)", "pydata-sphinx-theme (>=0.8.1)", "sphinx-gallery (>=0.1 extra = ["lxml (>=4.6)", "pygraphviz (>=1.9)", "pydot (>=1.4.2)", "sympy (>=1.10)"] test = ["pytest (>=7.1)", "pytest-cov (>=3.0)", "codecov (>=2.1)"] +[[package]] +name = "nfoursid" +version = "1.0.0" +description = "Implementation of N4SID, Kalman filtering and state-space models" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +matplotlib = ">=3.3" +numpy = ">=1.19" +pandas = ">=1.1" + [[package]] name = "nodeenv" version = "1.6.0" @@ -2184,6 +2326,18 @@ jupyter-server = ">=1.8,<2.0" [package.extras] test = ["pytest", "pytest-tornasync", "pytest-console-scripts"] +[[package]] +name = "numba" +version = "0.55.1" +description = "compiling Python code using LLVM" +category = "main" +optional = false +python-versions = ">=3.7,<3.11" + +[package.dependencies] +llvmlite = ">=0.38.0rc1,<0.39" +numpy = ">=1.18,<1.22" + [[package]] name = "numpy" version = "1.21.2" @@ -2607,6 +2761,28 @@ category = "main" optional = false python-versions = ">= 3.5" +[[package]] +name = "prophet" +version = "1.0.1" +description = "Automatic Forecasting Procedure" +category = "main" +optional = false +python-versions = ">=3" + +[package.dependencies] +cmdstanpy = "0.9.68" +convertdate = ">=2.1.2" +Cython = ">=0.22" +holidays = ">=0.10.2" +LunarCalendar = ">=0.0.9" +matplotlib = ">=2.0.0" +numpy = ">=1.15.4" +pandas = ">=1.0.4" +pystan = ">=2.19.1.1,<2.20.0.0" +python-dateutil = ">=2.8.0" +setuptools-git = ">=1.2" +tqdm = ">=4.36.1" + [[package]] name = "protobuf" version = "3.20.1" @@ -2683,7 +2859,7 @@ name = "pyasn1" version = "0.4.8" description = "ASN.1 types and codecs" category = "main" -optional = true +optional = false python-versions = "*" [[package]] @@ -2691,7 +2867,7 @@ name = "pyasn1-modules" version = "0.2.8" description = "A collection of ASN.1-based protocols modules." category = "main" -optional = true +optional = false python-versions = "*" [package.dependencies] @@ -2739,6 +2915,14 @@ typing-extensions = ">=3.7.4.3" dotenv = ["python-dotenv (>=0.10.4)"] email = ["email-validator (>=1.0.3)"] +[[package]] +name = "pydeprecate" +version = "0.3.2" +description = "Deprecation tooling" +category = "main" +optional = false +python-versions = ">=3.6" + [[package]] name = "pyerfa" version = "2.0.0.1" @@ -3031,6 +3215,18 @@ category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +[[package]] +name = "pystan" +version = "2.19.1.1" +description = "Python interface to Stan, a package for Bayesian inference" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +Cython = ">=0.22,<0.25.1 || >0.25.1" +numpy = ">=1.7" + [[package]] name = "pytelegrambotapi" version = "4.5.0" @@ -3157,6 +3353,36 @@ python-versions = ">=3.5" [package.extras] cli = ["click (>=5.0)"] +[[package]] +name = "pytorch-lightning" +version = "1.6.3" +description = "PyTorch Lightning is the lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplate." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +fsspec = {version = ">=2021.05.0,<2021.06.0 || >2021.06.0", extras = ["http"]} +numpy = ">=1.17.2" +packaging = ">=17.0" +pyDeprecate = ">=0.3.1,<0.4.0" +PyYAML = ">=5.4" +tensorboard = ">=2.2.0" +torch = ">=1.8" +torchmetrics = ">=0.4.1" +tqdm = ">=4.57.0" +typing-extensions = ">=4.0.0" + +[package.extras] +all = ["matplotlib (>3.1)", "horovod (>=0.21.2,!=0.24.0)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)", "neptune-client (>=0.10.0)", "comet-ml (>=3.1.12)", "mlflow (>=1.0.0)", "test-tube (>=0.7.5)", "wandb (>=0.8.21)", "coverage (>5.2.0,<6.3)", "codecov (>=2.1)", "pytest (>=6.0)", "pytest-rerunfailures (>=10.2)", "twine (==3.2)", "mypy (>=0.920)", "flake8 (>=3.9.2)", "pre-commit (>=1.0)", "pytest-forked", "sklearn", "jsonargparse", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "pandas", "torchvision (>=0.9)", "gym[classic_control] (>=0.17.0)", "ipython"] +cpu = ["matplotlib (>3.1)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)", "neptune-client (>=0.10.0)", "comet-ml (>=3.1.12)", "mlflow (>=1.0.0)", "test-tube (>=0.7.5)", "wandb (>=0.8.21)", "coverage (>5.2.0,<6.3)", "codecov (>=2.1)", "pytest (>=6.0)", "pytest-rerunfailures (>=10.2)", "twine (==3.2)", "mypy (>=0.920)", "flake8 (>=3.9.2)", "pre-commit (>=1.0)", "pytest-forked", "sklearn", "jsonargparse", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "pandas", "torchvision (>=0.9)", "gym[classic_control] (>=0.17.0)", "ipython"] +cpu-extra = ["matplotlib (>3.1)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)"] +dev = ["matplotlib (>3.1)", "horovod (>=0.21.2,!=0.24.0)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)", "neptune-client (>=0.10.0)", "comet-ml (>=3.1.12)", "mlflow (>=1.0.0)", "test-tube (>=0.7.5)", "wandb (>=0.8.21)", "coverage (>5.2.0,<6.3)", "codecov (>=2.1)", "pytest (>=6.0)", "pytest-rerunfailures (>=10.2)", "twine (==3.2)", "mypy (>=0.920)", "flake8 (>=3.9.2)", "pre-commit (>=1.0)", "pytest-forked", "sklearn", "jsonargparse", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "pandas"] +examples = ["torchvision (>=0.9)", "gym[classic_control] (>=0.17.0)", "ipython"] +extra = ["matplotlib (>3.1)", "horovod (>=0.21.2,!=0.24.0)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)"] +loggers = ["neptune-client (>=0.10.0)", "comet-ml (>=3.1.12)", "mlflow (>=1.0.0)", "test-tube (>=0.7.5)", "wandb (>=0.8.21)"] +test = ["coverage (>5.2.0,<6.3)", "codecov (>=2.1)", "pytest (>=6.0)", "pytest-rerunfailures (>=10.2)", "twine (==3.2)", "mypy (>=0.920)", "flake8 (>=3.9.2)", "pre-commit (>=1.0)", "pytest-forked", "sklearn", "jsonargparse", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "pandas"] + [[package]] name = "pytrends" version = "4.8.0" @@ -3432,7 +3658,7 @@ name = "rsa" version = "4.8" description = "Pure-Python RSA implementation" category = "main" -optional = true +optional = false python-versions = ">=3.6,<4" [package.dependencies] @@ -3560,6 +3786,14 @@ beartype = ">=0.7.1,<0.8.0" requests = ">=2.26.0,<3.0.0" websocket-client = ">=1.1.0,<2.0.0" +[[package]] +name = "setuptools-git" +version = "1.2" +description = "Setuptools revision control system plugin for Git" +category = "main" +optional = false +python-versions = "*" + [[package]] name = "setuptools-scm" version = "6.4.2" @@ -3819,6 +4053,24 @@ anyio = ">=3.0.0,<4" [package.extras] full = ["itsdangerous", "jinja2", "python-multipart", "pyyaml", "requests"] +[[package]] +name = "statsforecast" +version = "0.5.5" +description = "Time series forecasting suite using statistical models" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +numba = "*" +numpy = "*" +pandas = "*" +scipy = "*" +statsmodels = "*" + +[package.extras] +ray = ["ray"] + [[package]] name = "statsmodels" version = "0.13.2" @@ -3861,6 +4113,23 @@ python-versions = "*" [package.extras] widechars = ["wcwidth"] +[[package]] +name = "tbats" +version = "1.1.0" +description = "BATS and TBATS for time series forecasting" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +numpy = "*" +pmdarima = "*" +scikit-learn = "*" +scipy = "*" + +[package.extras] +dev = ["pip-tools", "rpy2"] + [[package]] name = "temporal-cache" version = "0.1.4" @@ -3892,7 +4161,7 @@ name = "tensorboard" version = "2.8.0" description = "TensorBoard lets you watch Tensors Flow" category = "main" -optional = true +optional = false python-versions = ">=3.6" [package.dependencies] @@ -3913,7 +4182,7 @@ name = "tensorboard-data-server" version = "0.6.1" description = "Fast data loading for TensorBoard" category = "main" -optional = true +optional = false python-versions = ">=3.6" [[package]] @@ -3921,7 +4190,7 @@ name = "tensorboard-plugin-wit" version = "1.8.1" description = "What-If Tool TensorBoard plugin." category = "main" -optional = true +optional = false python-versions = "*" [[package]] @@ -4072,6 +4341,41 @@ category = "main" optional = false python-versions = ">=3.5" +[[package]] +name = "torch" +version = "1.11.0" +description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" +category = "main" +optional = false +python-versions = ">=3.7.0" + +[package.dependencies] +typing-extensions = "*" + +[[package]] +name = "torchmetrics" +version = "0.8.2" +description = "PyTorch native Metrics" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +numpy = ">=1.17.2" +packaging = "*" +pyDeprecate = ">=0.3.0,<0.4.0" +torch = ">=1.3.1" + +[package.extras] +all = ["sacrebleu (>=2.0.0)", "check-manifest", "cloudpickle (>=1.3)", "rouge-score (>=0.0.4)", "fire", "codecov (>=2.1)", "scikit-image (>0.17.1)", "pytest-doctestplus (>=0.9.0)", "mypy (>=0.790)", "transformers (>=4.0)", "requests", "pypesq", "scikit-learn (>=0.24)", "mir-eval (>=0.6)", "jiwer (>=2.3.0)", "fast-bss-eval (>=0.1.0)", "bert-score (==0.3.10)", "psutil", "pre-commit (>=1.0)", "regex (>=2021.9.24)", "nltk (>=3.6)", "tqdm (>=4.41.0)", "pystoi", "pesq (>=0.0.3)", "torchvision (>=0.8)", "nbsphinx (>=0.8)", "sphinxcontrib-fulltoc (>=1.0)", "sphinx-paramlinks (>=0.5.1)", "sphinx-copybutton (>=0.3)", "sphinx-autodoc-typehints (>=1.0)", "sphinxcontrib-mockautodoc", "myst-parser", "sphinx (>=4.0)", "pandoc (>=1.0)", "docutils (>=0.16)", "sphinx-togglebutton (>=0.2)", "torch-fidelity", "scipy", "lpips", "torchvision", "pytorch-lightning (>=1.5)", "twine (>=3.2)", "torch-complex", "coverage (>5.2)", "pytest-cov (>2.10)", "phmdoctest (>=1.1.1)", "pytorch-msssim", "pytest (>=6.0.0,<7.0.0)"] +audio = ["pystoi", "pesq (>=0.0.3)"] +detection = ["torchvision (>=0.8)"] +docs = ["nbsphinx (>=0.8)", "sphinxcontrib-fulltoc (>=1.0)", "sphinx-paramlinks (>=0.5.1)", "sphinx-copybutton (>=0.3)", "sphinx-autodoc-typehints (>=1.0)", "sphinxcontrib-mockautodoc", "myst-parser", "sphinx (>=4.0)", "pandoc (>=1.0)", "docutils (>=0.16)", "sphinx-togglebutton (>=0.2)"] +image = ["torch-fidelity", "scipy", "lpips", "torchvision"] +integrate = ["pytorch-lightning (>=1.5)"] +test = ["twine (>=3.2)", "torch-complex", "coverage (>5.2)", "pytest-cov (>2.10)", "phmdoctest (>=1.1.1)", "pytorch-msssim", "pytest (>=6.0.0,<7.0.0)", "sacrebleu (>=2.0.0)", "check-manifest", "cloudpickle (>=1.3)", "rouge-score (>=0.0.4)", "fire", "codecov (>=2.1)", "scikit-image (>0.17.1)", "pytest-doctestplus (>=0.9.0)", "mypy (>=0.790)", "transformers (>=4.0)", "requests", "pypesq", "scikit-learn (>=0.24)", "mir-eval (>=0.6)", "jiwer (>=2.3.0)", "fast-bss-eval (>=0.1.0)", "bert-score (==0.3.10)", "psutil", "pre-commit (>=1.0)"] +text = ["regex (>=2021.9.24)", "nltk (>=3.6)", "tqdm (>=4.41.0)"] + [[package]] name = "tornado" version = "6.1" @@ -4460,7 +4764,7 @@ name = "werkzeug" version = "2.1.1" description = "The comprehensive WSGI web application library." category = "main" -optional = true +optional = false python-versions = ">=3.7" [package.extras] @@ -4496,6 +4800,27 @@ python-versions = ">=3.7.0" [package.dependencies] h11 = ">=0.9.0,<1" +[[package]] +name = "xarray" +version = "2022.3.0" +description = "N-D labeled arrays and datasets in Python" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +numpy = ">=1.18" +packaging = ">=20.0" +pandas = ">=1.1" + +[package.extras] +accel = ["scipy", "bottleneck", "numbagg"] +complete = ["netcdf4", "h5netcdf", "scipy", "pydap", "zarr", "fsspec", "cftime", "rasterio", "cfgrib", "pooch", "bottleneck", "numbagg", "dask", "matplotlib", "seaborn", "nc-time-axis"] +docs = ["netcdf4", "h5netcdf", "scipy", "pydap", "zarr", "fsspec", "cftime", "rasterio", "cfgrib", "pooch", "bottleneck", "numbagg", "dask", "matplotlib", "seaborn", "nc-time-axis", "sphinx-autosummary-accessors", "sphinx-rtd-theme", "ipython", "ipykernel", "jupyter-client", "nbsphinx", "scanpydoc"] +io = ["netcdf4", "h5netcdf", "scipy", "pydap", "zarr", "fsspec", "cftime", "rasterio", "cfgrib", "pooch"] +parallel = ["dask"] +viz = ["matplotlib", "seaborn", "nc-time-axis"] + [[package]] name = "xlsxwriter" version = "3.0.3" @@ -4565,7 +4890,7 @@ prediction = ["tensorflow"] [metadata] lock-version = "1.1" python-versions = "^3.8,<3.10" -content-hash = "00f97c4c48a0181981e02ef5002d7f4f97ee8d81c02d4b6ede9918dc29b849fd" +content-hash = "28eaef5ef9b103dfcb44b7bc084027cb3f32714ade85130ef56b619a52fd5ea2" [metadata.files] absl-py = [ @@ -4947,6 +5272,10 @@ click = [ {file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"}, {file = "click-8.0.1.tar.gz", hash = "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"}, ] +cmdstanpy = [ + {file = "cmdstanpy-0.9.68-py3-none-any.whl", hash = "sha256:8b0862c5491283c9e5ec6c7256dfcd835b9ef2319e38339ac640aa0156cc34c9"}, + {file = "cmdstanpy-0.9.68.tar.gz", hash = "sha256:9e935be976fda3ee738b19b8386b38617f78d9dfef51643d1ba5cb9740616b59"}, +] codespell = [ {file = "codespell-2.1.0-py3-none-any.whl", hash = "sha256:b864c7d917316316ac24272ee992d7937c3519be4569209c5b60035ac5d569b5"}, {file = "codespell-2.1.0.tar.gz", hash = "sha256:19d3fe5644fef3425777e66f225a8c82d39059dcfe9edb3349a8a2cf48383ee5"}, @@ -5089,6 +5418,10 @@ cython = [ {file = "Cython-0.29.28-py2.py3-none-any.whl", hash = "sha256:26d8d0ededca42be50e0ac377c08408e18802b1391caa3aea045a72c1bff47ac"}, {file = "Cython-0.29.28.tar.gz", hash = "sha256:d6fac2342802c30e51426828fe084ff4deb1b3387367cf98976bb2e64b6f8e45"}, ] +darts = [ + {file = "darts-0.19.0-py3-none-any.whl", hash = "sha256:8e9929ba50ac4a547cf8d2fef6faf31a1212e5d23d67babe8e8a9a79023f3966"}, + {file = "darts-0.19.0.tar.gz", hash = "sha256:f91d11b3140f04163f4c7335843d5b418ae6c19fa9e8deb0100f48dfaae48ad6"}, +] dateparser = [ {file = "dateparser-1.1.1-py2.py3-none-any.whl", hash = "sha256:9600874312ff28a41f96ec7ccdc73be1d1c44435719da47fea3339d55ff5a628"}, {file = "dateparser-1.1.1.tar.gz", hash = "sha256:038196b1f12c7397e38aad3d61588833257f6f552baa63a1499e6987fa8d42d9"}, @@ -5183,6 +5516,64 @@ entrypoints = [ {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, ] +ephem = [ + {file = "ephem-4.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0dc6e240cacd65820ec39687233d7de1cfd1ff3bf83fd62337831c201cd80d47"}, + {file = "ephem-4.1.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf65bfd4753f2aacf5caa1c5b8bcba276b03cb59f13e9f2d9850c93efaf47fa7"}, + {file = "ephem-4.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b704b2a53a216903bd852aa8c91ffeaa2cd854632d7f4bdd49b52f81b3508906"}, + {file = "ephem-4.1.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15172e06381dd49ebbc9bc0987c6fa1f0a36eaac082d28d3a63dd53c5f208d54"}, + {file = "ephem-4.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bba82fe6eb26f69992aab20b410079ea976c926cc27b8708695e2932a152e6d3"}, + {file = "ephem-4.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f00626299ba57ca7601095b24f1ca14f13fed4fed96f7bebeb919db836ebe600"}, + {file = "ephem-4.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1cb62859e0b8ea9c4285572a457fdfeffd16345721e97e3320af6b076d0efe32"}, + {file = "ephem-4.1.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4b0293f478670ba42980b1e2b5d29cc7abea6ac89cfe86467732a988d7a8349b"}, + {file = "ephem-4.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ad727401c249a51d168c8eb21fe689a4a48aff9bd73b30be9b50d96de8b1936d"}, + {file = "ephem-4.1.3-cp310-cp310-win32.whl", hash = "sha256:785867b1687332690f457e55b5a7adeb1c6dc4418283cb8821f3099d042916dc"}, + {file = "ephem-4.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:f0bf84810c9a81a23e5640373f3a5028b75a5e3f3c4834de1488664df4bde5f5"}, + {file = "ephem-4.1.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:beabe324957356b1b456301e5e1f7819b20ddf4e60dbf8024d28a1fe75f81508"}, + {file = "ephem-4.1.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5035680a51ba2531ef6b9c9d35db17f692d0a752cb9ed2d36c6ae2df41db9207"}, + {file = "ephem-4.1.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63ab03db1050c6f8b8a358c4452f667f7c04719f07ad3583368c80871cbf6fe1"}, + {file = "ephem-4.1.3-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f42e86df0cae3ca8e1c7c40e9b68da4c6472b22b8e5c8093e7e551077798b17"}, + {file = "ephem-4.1.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4adf44b083367f60aeedb2693aff0598b307321b8f3b20f1e6d7022d0f517a86"}, + {file = "ephem-4.1.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:38fb1411e5d9e212b10b952bd3c0bba6c1e1b424d2c22507623cafd1ad5d1678"}, + {file = "ephem-4.1.3-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:097c6e89ebc27fabc805e76b4e35282c71772bc97884597ffffcdb41c66642d0"}, + {file = "ephem-4.1.3-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:36196e8ee79f770493f3aaed4c7ed6d839950371a9199e90cd165d207c252731"}, + {file = "ephem-4.1.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:4b442afd12eaa44e0b48c1a38b36da52e788fb12ae641fe766afcd63c432944a"}, + {file = "ephem-4.1.3-cp36-cp36m-win32.whl", hash = "sha256:5ab539c12c96397047a64568152393a7b1ef8257d60874826c07e97d71d10366"}, + {file = "ephem-4.1.3-cp36-cp36m-win_amd64.whl", hash = "sha256:c7120cc6044772d7c8d5d199c95aad6ac0d77fa193d7472c36c5d424471d6ff1"}, + {file = "ephem-4.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6981fcea704bb5a4748bcc081708e35be3a001759ca2bfda4415452cb03796da"}, + {file = "ephem-4.1.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b332fdb1e5af07a4389135660baee89de8093e6d527155cfc5c79a60081102d"}, + {file = "ephem-4.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a76d5328b41f1f44627027adb90a5a094d5d734df2ce8d572a3bcc08662ec27c"}, + {file = "ephem-4.1.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7f93b3b4fb04d8bfe8da8e1610d4a2a0e55d5d6ebc75f570cbe8d0f2af16c8cd"}, + {file = "ephem-4.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9cae55cd50b8a996fc25c2c24ed9755d4ddf5c6adc4215b2887b146db2c83334"}, + {file = "ephem-4.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:11cfd78f79dbeccb7173cb7c56bc2ae05ecaab06f3eaa56856f823ceac6fbbb1"}, + {file = "ephem-4.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:24b6935cfacc45edd341fea9d91d23d6308d7170d89c14208a8092e2118124f3"}, + {file = "ephem-4.1.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:8119a645394d8ba70db330fcd2f21f7c33fd11268792fb58a44a358f9a964741"}, + {file = "ephem-4.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:451ebe0d54a266aacafdfda5ed86e77e94a3fd4d4ebe98cb30c0b8cad3f10119"}, + {file = "ephem-4.1.3-cp37-cp37m-win32.whl", hash = "sha256:fbf558b4d70991f2a38c80d30b2a0209d0d0b02eed6b1522668f3206e224959a"}, + {file = "ephem-4.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:75f46b2356ebaaaf6ffcadd3f91872429397090573313207446ac759a2b6b3f4"}, + {file = "ephem-4.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e5773f39c15c3c5787279a6bccb329366ae61157057aab1d16e4184bb9c03510"}, + {file = "ephem-4.1.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56d46e37e354b0ff53aa7db6348ffc052b39d1de10958c454d2209f9780f854c"}, + {file = "ephem-4.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:930ea6dd158630dead65c5188114c1d9dd50bf751548030c9b1ec87c275aac4e"}, + {file = "ephem-4.1.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2e7d52a5cf35c76c2ab5786f4d2001fc8a594c8ac4b343b3be769f4e39fdcb6"}, + {file = "ephem-4.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e2de3580e5da21c35842dc904d7dd9469f46d6fd90c7c1159081407c1f7d302"}, + {file = "ephem-4.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1a2acf37062f16e7d2004734f2a2ebe9913bc6438ef906cf15c775c170371de1"}, + {file = "ephem-4.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:095df8ebce8f1d4f9fbcc03f986ff03d17d7d2e092a348bcf70d3c786665f26d"}, + {file = "ephem-4.1.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:716389d59e61199d90d1ab798c920210df3a91786dfe8120bd1e8f1cb94ed58d"}, + {file = "ephem-4.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:59af6692282d333011f358dba0aa485f911551a29862e7814f985100cb458f97"}, + {file = "ephem-4.1.3-cp38-cp38-win32.whl", hash = "sha256:a0c30759ce9d9aeb0ae9895d559cb70dfe2468441976ae2f969a55109991b635"}, + {file = "ephem-4.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:66b6372ecf711eaec600a665b77c63c7ea405f07c3d17dcb1909837ce38dc697"}, + {file = "ephem-4.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7cacb482b8332cdb2203ee6c08967d2904f0c15d7a3650c8f5fa21345a9e5d50"}, + {file = "ephem-4.1.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:16523b385eaa30dd22b1168934eb0018d7e375a77103ef5897ac6e28b9757de5"}, + {file = "ephem-4.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12ea07382e6b83d3523031c11bb09b2295efe22baa6720d21330a1abf84f15b9"}, + {file = "ephem-4.1.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b6d850458884baaa8b388c7b16e800b4442e0c5e1c12f70b7e7eb8585e320611"}, + {file = "ephem-4.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cec1d0b09b201f1ae066703baf7da69eb92bbef40d031e90a4f8b854e25b15d"}, + {file = "ephem-4.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:14e92281fe852daad9c01b573f09f56a1f2c121172b16028fab8d8790b322fb3"}, + {file = "ephem-4.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d360b3b06ed691fee6047969391675c994e5f73e64a594a6c493f62e3d98886b"}, + {file = "ephem-4.1.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:c43a4a4b18819c8980e3b0a38754abb16bd6aac7ef2426a489ccd4661a5b0918"}, + {file = "ephem-4.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bc3cec17e6dab785c4a8bf3d2b166960009a76f8cba2b85afe97ca9b0e406812"}, + {file = "ephem-4.1.3-cp39-cp39-win32.whl", hash = "sha256:4404f7c3f9684ede423e22774c28bd105e58c2d11b497ce4a38b33d9173c3c2a"}, + {file = "ephem-4.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:998088155eb9262988eea18d31d3e35a4f15b2691f26c8b1c01fae11f7bbd5e0"}, + {file = "ephem-4.1.3.tar.gz", hash = "sha256:7fa18685981ba528edd504052a9d5212a09aa5bf15c11a734edc6a86e8a8b56a"}, +] et-xmlfile = [ {file = "et_xmlfile-1.1.0-py3-none-any.whl", hash = "sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"}, {file = "et_xmlfile-1.1.0.tar.gz", hash = "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"}, @@ -5328,6 +5719,10 @@ frozenlist = [ {file = "frozenlist-1.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:772965f773757a6026dea111a15e6e2678fbd6216180f82a48a40b27de1ee2ab"}, {file = "frozenlist-1.3.0.tar.gz", hash = "sha256:ce6f2ba0edb7b0c1d8976565298ad2deba6f8064d2bebb6ffce2ca896eb35b0b"}, ] +fsspec = [ + {file = "fsspec-2022.5.0-py3-none-any.whl", hash = "sha256:2c198c50eb541a80bbd03540b07602c4a957366f3fb416a1f270d34bd4ff0926"}, + {file = "fsspec-2022.5.0.tar.gz", hash = "sha256:7a5459c75c44e760fbe6a3ccb1f37e81e023cde7da8ba20401258d877ec483b4"}, +] fundamentalanalysis = [ {file = "fundamentalanalysis-0.2.14-py3-none-any.whl", hash = "sha256:eda7920cb3b2f76b197cfe0a47e3936e6b4e65273a3852039cd3e5edd1bb06cc"}, {file = "fundamentalanalysis-0.2.14.tar.gz", hash = "sha256:bc3ee7948f7de817e195b2ac6d34dc6ba9c5f4780c9d29b7768c2790e67ab4a4"}, @@ -5691,6 +6086,13 @@ libclang = [ {file = "libclang-11.1.0-py2.py3-none-manylinux2014_aarch64.whl", hash = "sha256:39d07c8965a3c963fb2686496339b6dbacf42acbd32e4bc7361373a45e98cebe"}, {file = "libclang-11.1.0-py2.py3-none-win_amd64.whl", hash = "sha256:8cb0082a30b9e1e615d7f4211b0c428b607a9bd1e43ddc6c0cabdd9ea5b244bf"}, ] +lightgbm = [ + {file = "lightgbm-3.3.2-py3-none-macosx_10_14_x86_64.macosx_10_15_x86_64.macosx_11_0_x86_64.whl", hash = "sha256:2e94bd1b3ab29d173102c9c1d80db2e27ad7e43b8ff5a74c5cb7984b37d19f45"}, + {file = "lightgbm-3.3.2-py3-none-manylinux1_x86_64.whl", hash = "sha256:f4cba3b4f29336ad7e801cb32d9b948ea4cc5300dda650b78bcdfe36b3e2c4b2"}, + {file = "lightgbm-3.3.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8e788c56853316fc5d35db726d81bd002c721038c856853952287f68082e0158"}, + {file = "lightgbm-3.3.2-py3-none-win_amd64.whl", hash = "sha256:e4f1529cad416066964f9af0efad208787861e9f2181b7f9ee7fc9bacc082d4f"}, + {file = "lightgbm-3.3.2.tar.gz", hash = "sha256:5d25d16e77c844c297ece2044df57651139bc3c8ad8c4108916374267ac68b64"}, +] linearmodels = [ {file = "linearmodels-4.26-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9511653d58a213ad611680b826e7dcdfc03131b5db722390aa9fb50b0395b3af"}, {file = "linearmodels-4.26-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52ac13bfa5765155a03f3bbc9bd68f8f9991ed58a75a53951a8767df87906b2c"}, @@ -5711,6 +6113,40 @@ linearmodels = [ {file = "linearmodels-4.26-cp39-cp39-win_amd64.whl", hash = "sha256:2a00b73dabde87949bc221c5f080371ada62604976fa119381d542cbf6bb83ee"}, {file = "linearmodels-4.26.tar.gz", hash = "sha256:687194fc9a51d9119c32a94b5a1061dfc13398eac3d25e086bd06f80d8fda76b"}, ] +llvmlite = [ + {file = "llvmlite-0.38.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7dd2bd1d6406e7789273e3f8a304ed5d9adcfaa5768052fca7dc233a857be98"}, + {file = "llvmlite-0.38.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7a5e0ed215a576f0f872f47a70b8cb49864e0aefc8586aff5ce83e3bff47bc23"}, + {file = "llvmlite-0.38.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:633c9026eb43b9903cc4ffbc1c7d5293b2e3ad95d06fa9eab0f6ce6ff6ea15b3"}, + {file = "llvmlite-0.38.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b98da8436dbc29013ea301f1fdb0d596ab53bf0ab65c976d96d00bb6faa0b479"}, + {file = "llvmlite-0.38.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0adce1793d66d009c554809f27baeb6258bf13f6fbaa12eff7443500caec25"}, + {file = "llvmlite-0.38.1-cp310-cp310-win32.whl", hash = "sha256:8c64c90a8b0b7b7e1ed1912ba82c1a3f43cf25affbe06aa3c56c84050edee8ac"}, + {file = "llvmlite-0.38.1-cp310-cp310-win_amd64.whl", hash = "sha256:ab070266f0f51304789a6c20d4be91a9e69683ad9bd4861eb89980e8eb613b3a"}, + {file = "llvmlite-0.38.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ed7528b8b85de930b76407e44b080e4f376b7a007c2879749599ff8e2fe32753"}, + {file = "llvmlite-0.38.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7db018da2863034ad9c73c946625637f3a89635bc70576068bab4bd085eea90d"}, + {file = "llvmlite-0.38.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c1e5805c92e049b4956ed01204c6647de6160ab9aefb0d67ea83ca02a1d889a"}, + {file = "llvmlite-0.38.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5559e46c79b4017c3c25edc3b9512d11adc3689b9046120c685b0905c08d48a5"}, + {file = "llvmlite-0.38.1-cp37-cp37m-win32.whl", hash = "sha256:ef9aa574eff2e15f8c47b255da0db5dab326dc7f76384c307ae35490e2d2489a"}, + {file = "llvmlite-0.38.1-cp37-cp37m-win_amd64.whl", hash = "sha256:84d5a0163c172db2b2ae561d2fc0866fbd9f716cf13f92c0d41ca4338e682672"}, + {file = "llvmlite-0.38.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a263252a68d85450110ec1f2b406c0414e49b04a4d216d31c0515ea1d59c3882"}, + {file = "llvmlite-0.38.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de8bd61480173930f2a029673e7cd0738fbbb5171dfe490340839ad7301d4cf0"}, + {file = "llvmlite-0.38.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fbfbe546394c39db39a6898a51972aa131c8d6b0628517728b350552f58bdc19"}, + {file = "llvmlite-0.38.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c4f26c6c370e134a909ac555a671fa1376e74c69af0208f25c0979472577a9d"}, + {file = "llvmlite-0.38.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f95f455697c44d7c04ef95fdfce04629f48df08a832d0a0d9eb2363186dbb969"}, + {file = "llvmlite-0.38.1-cp38-cp38-win32.whl", hash = "sha256:41e638a71c85a9a4a33f279c4cd812bc2f84122505b1f6ab8984ec7debb8548b"}, + {file = "llvmlite-0.38.1-cp38-cp38-win_amd64.whl", hash = "sha256:5c07d63df4578f31b39b764d3b4291f70157af7f42e171a8884ae7aaf989d1f7"}, + {file = "llvmlite-0.38.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4e11bd9929dcbd55d5eb5cd7b08bf71b0097ea48cc192b69d102a90dd6e9816f"}, + {file = "llvmlite-0.38.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:edfa2c761cfa56cf76e783290d82e117f829bb691d8d90aa375505204888abac"}, + {file = "llvmlite-0.38.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e609f7312a439b53b6f622d99180c3ff6a3e1e4ceca4d18aca1c5b46f4e3664"}, + {file = "llvmlite-0.38.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f53c3448410cc84d0e1af84dbc0d60ad32779853d40bcc8b1ee3c67ebbe94b1"}, + {file = "llvmlite-0.38.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c8fac4edbadefa4dddf5dc6cca76bc2ae81df211dcd16a6638d60cc41249e56"}, + {file = "llvmlite-0.38.1-cp39-cp39-win32.whl", hash = "sha256:3d76c0fa42390bef56979ed213fbf0150c3fef36f5ea68d3d780d5d725da8c01"}, + {file = "llvmlite-0.38.1-cp39-cp39-win_amd64.whl", hash = "sha256:66462d768c30d5f648ca3361d657b434efa8b09f6cf04d6b6eae66e62e993644"}, + {file = "llvmlite-0.38.1.tar.gz", hash = "sha256:0622a86301fcf81cc50d7ed5b4bebe992c030580d413a8443b328ed4f4d82561"}, +] +lunarcalendar = [ + {file = "LunarCalendar-0.0.9-py2.py3-none-any.whl", hash = "sha256:5ef25883d73898b37edb54da9e0f04215aaa68b897fd12e9d4b79756ff91c8cb"}, + {file = "LunarCalendar-0.0.9.tar.gz", hash = "sha256:681142f22fc353c3abca4b25699e3d1aa7083ad1c268dce36ba297eca04bed5a"}, +] lxml = [ {file = "lxml-4.8.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:e1ab2fac607842ac36864e358c42feb0960ae62c34aa4caaf12ada0a1fb5d99b"}, {file = "lxml-4.8.0-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28d1af847786f68bec57961f31221125c29d6f52d9187c01cd34dc14e2b29430"}, @@ -6015,6 +6451,10 @@ networkx = [ {file = "networkx-2.8-py3-none-any.whl", hash = "sha256:1a1e8fe052cc1b4e0339b998f6795099562a264a13a5af7a32cad45ab9d4e126"}, {file = "networkx-2.8.tar.gz", hash = "sha256:4a52cf66aed221955420e11b3e2e05ca44196b4829aab9576d4d439212b0a14f"}, ] +nfoursid = [ + {file = "nfoursid-1.0.0-py3-none-any.whl", hash = "sha256:5714b25a978b4505b818ec79e1e69aa3c41664f4687e176ae49ae125771eabf0"}, + {file = "nfoursid-1.0.0.tar.gz", hash = "sha256:9dc20edeaf0203ebbff9ef6ccad6ff125d9ab73d6c1ab48934fdb24b37f5f097"}, +] nodeenv = [ {file = "nodeenv-1.6.0-py2.py3-none-any.whl", hash = "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7"}, {file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"}, @@ -6027,6 +6467,33 @@ notebook-shim = [ {file = "notebook_shim-0.1.0-py3-none-any.whl", hash = "sha256:02432d55a01139ac16e2100888aa2b56c614720cec73a27e71f40a5387e45324"}, {file = "notebook_shim-0.1.0.tar.gz", hash = "sha256:7897e47a36d92248925a2143e3596f19c60597708f7bef50d81fcd31d7263e85"}, ] +numba = [ + {file = "numba-0.55.1-1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:be56fb78303973e6c19c7c2759996a5863bac69ca87570543d9f18f2f287a441"}, + {file = "numba-0.55.1-1-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:ee71407be9cba09b4f68afa668317e97d66d5f83c37ab4caa20d8abcf5fad32b"}, + {file = "numba-0.55.1-1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:39a109efc317e8eb786feff0a29476036971ce08e3280be8153c3b6c1ccba415"}, + {file = "numba-0.55.1-1-cp37-cp37m-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0dc8294b2b6b2dbe3a709787bbb1e6f9dcef62197429de8daaa714d77052eefe"}, + {file = "numba-0.55.1-1-cp37-cp37m-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:bcd5e09dba5e19ff7a1b9716a1ce58f0931cec09515683011e57415c6a33ac3d"}, + {file = "numba-0.55.1-1-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:64209d71b1e33415d5b1b177ed218d679062f844667dd279ee9094c4e3e2babc"}, + {file = "numba-0.55.1-1-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ff5ed5c7665f8a5405af53332d224caca68358909abde9ca8dfef3495cdea789"}, + {file = "numba-0.55.1-1-cp38-cp38-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:d80afc5618e66af2d101eff0e6214acb865136ae886d8b01414ca3dedd9166d6"}, + {file = "numba-0.55.1-1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6d0042371880fa56ed58be27502b11a08bff0b6335f0ebde82af1a7aef5e1287"}, + {file = "numba-0.55.1-1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4a5cb8930e729aeed96809524ca4df41b6f2432b379f220014ef4fdff21dbfe6"}, + {file = "numba-0.55.1-1-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:fee529ddc9c0584b932f7885735162e52344eded8c01c78c17e2768aa6787780"}, + {file = "numba-0.55.1-1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:230e542649c7087454bc851d2e22b5e15694b6cf0549a27234d1baea6c2e0a87"}, + {file = "numba-0.55.1-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:adc88fe64f5235c8b1e7230ae29476a08ffb61a65e9f79f745bd357f215e2d52"}, + {file = "numba-0.55.1-cp310-cp310-win32.whl", hash = "sha256:a5af7f1d30f56029d1b9ea288372f924f9dcb322f0e6358f6d5203b20eb6f7a0"}, + {file = "numba-0.55.1-cp310-cp310-win_amd64.whl", hash = "sha256:71815c501b2f6309c432e98ff93a582a9bfb61da943e0cb9a52595fadbb1131d"}, + {file = "numba-0.55.1-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:53909143917ea4962cfbfae7038ac882987ff54cb2c408538ce71f83b356f106"}, + {file = "numba-0.55.1-cp37-cp37m-win32.whl", hash = "sha256:cddc13939e2b27782258826686800ae9c2e90b35c36ef1ab5ccfae7cedca0516"}, + {file = "numba-0.55.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ac6ae19ff5093a42bf8b365550322a2e39650d608daa379dff71571272d88d93"}, + {file = "numba-0.55.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:77187ed09e6b25ae24b840e1acc4b5f9886b551cdc5f919ddad8e5933a6027d5"}, + {file = "numba-0.55.1-cp38-cp38-win32.whl", hash = "sha256:53ee562b873e00eaa26390690ac5d36b706782d429e5a18b255161f607f13c17"}, + {file = "numba-0.55.1-cp38-cp38-win_amd64.whl", hash = "sha256:02fb0ecd218ab1e1171cbaee11235a3a1f7dcf79dee3fa786243a2a6411f2fea"}, + {file = "numba-0.55.1-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:6aa8f18a003a0e4876826fe080e6038fc6da083899873b77172ec29c32e49b56"}, + {file = "numba-0.55.1-cp39-cp39-win32.whl", hash = "sha256:d5ee721ce884f8313802295633fdd3e7c83541e0917bafea2bdfed6aabab93bf"}, + {file = "numba-0.55.1-cp39-cp39-win_amd64.whl", hash = "sha256:b72350160eb9a73a36aa17d808f954353a263a0295d495497c87439d79bdaec7"}, + {file = "numba-0.55.1.tar.gz", hash = "sha256:03e9069a2666d1c84f93b00dbd716fb8fedde8bb2c6efafa2f04842a46442ea3"}, +] numpy = [ {file = "numpy-1.21.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52a664323273c08f3b473548bf87c8145b7513afd63e4ebba8496ecd3853df13"}, {file = "numpy-1.21.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a7b9db0a2941434cd930dacaafe0fc9da8f3d6157f9d12f761bbde93f46218"}, @@ -6270,6 +6737,9 @@ property-cached = [ {file = "property-cached-1.6.4.zip", hash = "sha256:3e9c4ef1ed3653909147510481d7df62a3cfb483461a6986a6f1dcd09b2ebb73"}, {file = "property_cached-1.6.4-py2.py3-none-any.whl", hash = "sha256:135fc059ec969c1646424a0db15e7fbe1b5f8c36c0006d0b3c91ba568c11e7d8"}, ] +prophet = [ + {file = "prophet-1.0.1.tar.gz", hash = "sha256:3e682e8ea6e1ee26a92cf289f207d539f30e44879126c128ff8f4e360eb25a8b"}, +] protobuf = [ {file = "protobuf-3.20.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3cc797c9d15d7689ed507b165cd05913acb992d78b379f6014e013f9ecb20996"}, {file = "protobuf-3.20.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:ff8d8fa42675249bb456f5db06c00de6c2f4c27a065955917b28c4f15978b9c3"}, @@ -6415,6 +6885,10 @@ pydantic = [ {file = "pydantic-1.8.2-py3-none-any.whl", hash = "sha256:fec866a0b59f372b7e776f2d7308511784dace622e0992a0b59ea3ccee0ae833"}, {file = "pydantic-1.8.2.tar.gz", hash = "sha256:26464e57ccaafe72b7ad156fdaa4e9b9ef051f69e175dbbb463283000c05ab7b"}, ] +pydeprecate = [ + {file = "pyDeprecate-0.3.2-py3-none-any.whl", hash = "sha256:ed86b68ed837e6465245904a3de2f59bf9eef78ac7a2502ee280533d04802457"}, + {file = "pyDeprecate-0.3.2.tar.gz", hash = "sha256:d481116cc5d7f6c473e7c4be820efdd9b90a16b594b350276e9e66a6cb5bdd29"}, +] pyerfa = [ {file = "pyerfa-2.0.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:278832de7803f2fb0ef4b14263200f98dfdb3eaa78dc63835d93796fd8fc42c6"}, {file = "pyerfa-2.0.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:629248cebc8626a52e80f69d4e2f30cc6e751f57803f5ba7ec99edd09785d181"}, @@ -6632,6 +7106,28 @@ pysocks = [ {file = "PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5"}, {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"}, ] +pystan = [ + {file = "pystan-2.19.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:4a0820df5fcd13c7a4cae75d59809adee72d1135a604dc2b5f068d4ac8ca349e"}, + {file = "pystan-2.19.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:2baa4106ddc7fb90712bd0e5ab8693ce130b001c6166839247511326edc6d0ba"}, + {file = "pystan-2.19.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:6c4bbbb0a59144135d9821f2b9c308bfdf70aa61befdc7dc435f4c86bfb4457e"}, + {file = "pystan-2.19.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:1127522641533a6ccb7684d4008d06c092cbe6f3ee7d44679a87937ee39093ab"}, + {file = "pystan-2.19.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:43fdd98561f0cba0637f1fa343ed7d5adc885d04a655ab6302dbfd08f016105d"}, + {file = "pystan-2.19.1.1-cp35-cp35m-win32.whl", hash = "sha256:e6580cec2f5ed1bdb44eab83d54fe87b11e673ed65d6c2064d8d9f76265ce049"}, + {file = "pystan-2.19.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:c87bd98db2b5c67fa08177de04c98b46d1fcd68ae53dbe55ffc5187868068002"}, + {file = "pystan-2.19.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:e9fbbf10dfc0ef8e7343ee4a3e17fd5c214fb12fc42615673e14908949b410e4"}, + {file = "pystan-2.19.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5020ac3ca3a840f428f090fc5fe75412e2a7948ac7e3de59f4bbfd7a4539c0ef"}, + {file = "pystan-2.19.1.1-cp36-cp36m-win32.whl", hash = "sha256:61340356889547e29e2e6db7ef28f821b91e73fee80a888e81a794a24a249987"}, + {file = "pystan-2.19.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:bc1193f52bc6c6419dd753bcb0b6958b24fe588dc3da3c7f70bd23dcbda6ec2a"}, + {file = "pystan-2.19.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:5b67008f5780c7cf0f3fbad5bc54bc9919efc9655d63e0314dc013e85c7a0f14"}, + {file = "pystan-2.19.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:2b44502aaa8866e0bcc81df1537e7e08b74aaf4cc9d4bf43e7c8b168f3568ca6"}, + {file = "pystan-2.19.1.1-cp37-cp37m-win32.whl", hash = "sha256:b2ef9031dfbd65757828e2441cb9a76c9217fb5bb93817fee2550722e7a785b3"}, + {file = "pystan-2.19.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:3622520b2e55d2ce70a3027d9910b6197a8bc2ef59e01967be9c4e607a48a9c1"}, + {file = "pystan-2.19.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:837a62976b32e4fd2bd48fee3b419c651e19747280e440d5934bea3822b22115"}, + {file = "pystan-2.19.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:e8e0924c318a0ea67260167a74f040078a4ce0d3fd4a7d566aa76f7752a85fab"}, + {file = "pystan-2.19.1.1-cp38-cp38-win32.whl", hash = "sha256:f16c399da3d9d72e9661b131c23d51a59c789416598885714813fcb552234c83"}, + {file = "pystan-2.19.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:9d8c2ae05d1dca854a55b2ae9276af5866e473fb8264d03d5267abadb3c602da"}, + {file = "pystan-2.19.1.1.tar.gz", hash = "sha256:fa8bad8dbc0da22bbe6f36af56c9abbfcf10f92df8ce627d59a36bd8d25eb038"}, +] pytelegrambotapi = [ {file = "pyTelegramBotAPI-4.5.0.tar.gz", hash = "sha256:2689db6f6e8c6cafcb2b3b45901ec895a1d09bdf033d89f89582b88a40cfa5a1"}, ] @@ -6668,6 +7164,10 @@ python-dotenv = [ {file = "python-dotenv-0.19.2.tar.gz", hash = "sha256:a5de49a31e953b45ff2d2fd434bbc2670e8db5273606c1e737cc6b93eff3655f"}, {file = "python_dotenv-0.19.2-py2.py3-none-any.whl", hash = "sha256:32b2bdc1873fd3a3c346da1c6db83d0053c3c62f28f1f38516070c4c8971b1d3"}, ] +pytorch-lightning = [ + {file = "pytorch-lightning-1.6.3.tar.gz", hash = "sha256:beb1f36a6dae91f5fef0959a04af1092dff4f3f4d99c20f0e033f84e615903e3"}, + {file = "pytorch_lightning-1.6.3-py3-none-any.whl", hash = "sha256:5419adaee5bb8057b1dad69d2cbb79f823f54a94bb67cb47fe75cdf8c1bc5616"}, +] pytrends = [ {file = "pytrends-4.8.0-py2-none-any.whl", hash = "sha256:31a76cf560a23a9eb691a9a83a3306bbe555ed1665122a5756e789829f56a0ef"}, {file = "pytrends-4.8.0.tar.gz", hash = "sha256:04b7b33eb6dfc120aa89cb4640688a8b633337276b6ddcea44ff0c7f6b6243d2"}, @@ -7114,6 +7614,10 @@ sentiment-investor = [ {file = "sentiment-investor-2.1.0.tar.gz", hash = "sha256:1b1969058ed540ef7059a54c146bc7b1e424b55c405607d4b407d476e562504e"}, {file = "sentiment_investor-2.1.0-py3-none-any.whl", hash = "sha256:133f3086cc583a475bccd5e1b873d1751bb46633fad675df9c24604ed8377b6d"}, ] +setuptools-git = [ + {file = "setuptools-git-1.2.tar.gz", hash = "sha256:ff64136da01aabba76ae88b050e7197918d8b2139ccbf6144e14d472b9c40445"}, + {file = "setuptools_git-1.2-py2.py3-none-any.whl", hash = "sha256:e7764dccce7d97b4b5a330d7b966aac6f9ac026385743fd6cedad553f2494cfa"}, +] setuptools-scm = [ {file = "setuptools_scm-6.4.2-py3-none-any.whl", hash = "sha256:acea13255093849de7ccb11af9e1fb8bde7067783450cee9ef7a93139bddf6d4"}, {file = "setuptools_scm-6.4.2.tar.gz", hash = "sha256:6833ac65c6ed9711a4d5d2266f8024cfa07c533a0e55f4c12f6eff280a5a9e30"}, @@ -7197,6 +7701,10 @@ starlette = [ {file = "starlette-0.17.1-py3-none-any.whl", hash = "sha256:26a18cbda5e6b651c964c12c88b36d9898481cd428ed6e063f5f29c418f73050"}, {file = "starlette-0.17.1.tar.gz", hash = "sha256:57eab3cc975a28af62f6faec94d355a410634940f10b30d68d31cb5ec1b44ae8"}, ] +statsforecast = [ + {file = "statsforecast-0.5.5-py3-none-any.whl", hash = "sha256:f04affa6fcae9d9fae0be74f19bef043c18d80483060971c72975c9bfcdbd63d"}, + {file = "statsforecast-0.5.5.tar.gz", hash = "sha256:6a81ae36568f12aa64f862bdff5518da43e1a1fc14ced9b5d6917259fa9a362f"}, +] statsmodels = [ {file = "statsmodels-0.13.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3e7ca5b7e678c0bb7a24f5c735d58ac104a50eb61b17c484cce0e221a095560f"}, {file = "statsmodels-0.13.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:066a75d5585378b2df972f81a90b9a3da5e567b7d4833300c1597438c1a35e29"}, @@ -7230,6 +7738,10 @@ tabulate = [ {file = "tabulate-0.8.9-py3-none-any.whl", hash = "sha256:d7c013fe7abbc5e491394e10fa845f8f32fe54f8dc60c6622c6cf482d25d47e4"}, {file = "tabulate-0.8.9.tar.gz", hash = "sha256:eb1d13f25760052e8931f2ef80aaf6045a6cceb47514db8beab24cded16f13a7"}, ] +tbats = [ + {file = "tbats-1.1.0-py3-none-any.whl", hash = "sha256:dfda4a68e0642558679f46e3cbb7c14df08760d009f709d9d9dff6bb35b33191"}, + {file = "tbats-1.1.0.tar.gz", hash = "sha256:5641d7f25cc6ca6487194a7eb2116526fd3022f323eac1269e14cf019cdebc6f"}, +] temporal-cache = [ {file = "temporal-cache-0.1.4.tar.gz", hash = "sha256:b6dd850359c46bd4a5c59fc3b953f8924e429b1179a351b3508d07c214738b50"}, {file = "temporal_cache-0.1.4-py2.py3-none-any.whl", hash = "sha256:8d9a83bc247b8e1fc51bcbae0fe650ae510fa67818a19a688f93ae27a9298e7d"}, @@ -7323,6 +7835,31 @@ toolz = [ {file = "toolz-0.11.2-py3-none-any.whl", hash = "sha256:a5700ce83414c64514d82d60bcda8aabfde092d1c1a8663f9200c07fdcc6da8f"}, {file = "toolz-0.11.2.tar.gz", hash = "sha256:6b312d5e15138552f1bda8a4e66c30e236c831b612b2bf0005f8a1df10a4bc33"}, ] +torch = [ + {file = "torch-1.11.0-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:62052b50fffc29ca7afc0c04ef8206b6f1ca9d10629cb543077e12967e8d0398"}, + {file = "torch-1.11.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:866bfba29ac98dec35d893d8e17eaec149d0ac7a53be7baae5c98069897db667"}, + {file = "torch-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:951640fb8db308a59d9b510e7d1ad910aff92913323bbe4bc75435347ddd346d"}, + {file = "torch-1.11.0-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:5d77b5ece78fdafa5c7f42995ff9474399d22571cd6b2de21a5d666306a2ff8c"}, + {file = "torch-1.11.0-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:b5a38682769b544c875ecc34bcb81fbad5c922139b61319aacffcfd8a32f528c"}, + {file = "torch-1.11.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:f82d77695a60626f2b7382d85bc566de8a6b3e50d32080755abc040db802e419"}, + {file = "torch-1.11.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b96654d42566080a134e784705f33f8536b3b95b5dcde357ed7879b1692a5f78"}, + {file = "torch-1.11.0-cp37-cp37m-win_amd64.whl", hash = "sha256:8ee7c2e8d7f7020d5bfbc1bb91b9591044c26bbd0cee5e4f694cfd7ed8649260"}, + {file = "torch-1.11.0-cp37-none-macosx_10_9_x86_64.whl", hash = "sha256:6860b1d1bf0bb0b67a6bd47f85a0e4c825b518eea13b5d6101999dbbcbd5bc0c"}, + {file = "torch-1.11.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:4322aa29f50da7f404db06cdf30896ea67b09f673af4a985afc7162bc897864d"}, + {file = "torch-1.11.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:e4d2e0ddd652f30e94cff750220324ec45705d4ecc69658f773b3cb1c7a28dd0"}, + {file = "torch-1.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:34ce5ea4d8d85da32cdbadb50d4585106901e9f8a3527991daa70c13a09de1f7"}, + {file = "torch-1.11.0-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:0ccc85cd06227a3edf809e2c795fd5762c3d4e8a38b5c9f744c6e7cf841361bb"}, + {file = "torch-1.11.0-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:c1554e49d74f1b2c3e7202d77056ba2dd7465437585bac64062b580f714a44e9"}, + {file = "torch-1.11.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:58c7814502b1c129a650d7092033bbb0bbd64faf1a7941631aaa1aeaddc37570"}, + {file = "torch-1.11.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:831cf588f01dda9409e75576741d2823453990dee2983d670f2584b37a01adf7"}, + {file = "torch-1.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:44a1d02fd20f827f0f36dc26fdcfc45e793806a6ad52769a22260655a77a4369"}, + {file = "torch-1.11.0-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:50fd9bf85c578c871c28f1cb0ace9dfc6024401c7f399b174fb0f370899f4454"}, + {file = "torch-1.11.0-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:0e48af66ad755f0f9c5f2664028a414f57c49d6adc37e77e06fe0004da4edb61"}, +] +torchmetrics = [ + {file = "torchmetrics-0.8.2-py3-none-any.whl", hash = "sha256:19e4ed0305b8c02fd5765a9ff9360c9c622842c2b3491e497ddbf2aec7ce9c5a"}, + {file = "torchmetrics-0.8.2.tar.gz", hash = "sha256:8cec51df230838b07e1bffe407fd98c25b8e1cdf820525a4ba6ef7f7e5ac4d89"}, +] tornado = [ {file = "tornado-6.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32"}, {file = "tornado-6.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c"}, @@ -7665,6 +8202,10 @@ wsproto = [ {file = "wsproto-1.1.0-py3-none-any.whl", hash = "sha256:2218cb57952d90b9fca325c0dcfb08c3bda93e8fd8070b0a17f048e2e47a521b"}, {file = "wsproto-1.1.0.tar.gz", hash = "sha256:a2e56bfd5c7cd83c1369d83b5feccd6d37798b74872866e62616e0ecf111bda8"}, ] +xarray = [ + {file = "xarray-2022.3.0-py3-none-any.whl", hash = "sha256:560f36eaabe7a989d5583d37ec753dd737357aa6a6453e55c80bb4f92291a69e"}, + {file = "xarray-2022.3.0.tar.gz", hash = "sha256:398344bf7d170477aaceff70210e11ebd69af6b156fe13978054d25c48729440"}, +] xlsxwriter = [ {file = "XlsxWriter-3.0.3-py3-none-any.whl", hash = "sha256:df0aefe5137478d206847eccf9f114715e42aaea077e6a48d0e8a2152e983010"}, {file = "XlsxWriter-3.0.3.tar.gz", hash = "sha256:e89f4a1d2fa2c9ea15cde77de95cd3fd8b0345d0efb3964623f395c8c4988b7f"}, diff --git a/pyproject.toml b/pyproject.toml index 208ad534ea43..17d5dde217ff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -102,6 +102,8 @@ click = "8.0.1" # Remove pinned version when Black supports 8.1 kaleido = {version = "<=0.2.1", optional = true, extras = ["bots"]} Riskfolio-Lib = "^3.1.1" fundamentalanalysis = "^0.2.14" +torch = {version = "^1.11.0", extras = ["prediction"]} +darts = {version = "^0.19.0", extras = ["prediction"]} [tool.poetry.dev-dependencies] From d93c717c5cca6b02902b56876a0625688cb3647a Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Fri, 20 May 2022 22:18:55 -0400 Subject: [PATCH 15/34] typo --- openbb_terminal/common/prediction_techniques/expo_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index 6f435086c772..f6b5ad31a1f5 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -1,4 +1,4 @@ -""" Probablistic Probablistic Smoothing Model""" +""" Probablistic Exponential Smoothing Model""" __docformat__ = "numpy" import logging From a4f1834f6963b66c52fe43c649158d906637a4d5 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Fri, 20 May 2022 22:48:32 -0400 Subject: [PATCH 16/34] test script update --- scripts/test_stocks_pred.openbb | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/test_stocks_pred.openbb b/scripts/test_stocks_pred.openbb index d2a52ee3e944..b4f3afe57832 100644 --- a/scripts/test_stocks_pred.openbb +++ b/scripts/test_stocks_pred.openbb @@ -11,4 +11,5 @@ rnn lstm conv1d mc +expo exit \ No newline at end of file From bf25431dede525425ae1b855541a605932a473f8 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Fri, 20 May 2022 23:24:54 -0400 Subject: [PATCH 17/34] update requirements.txt --- requirements-full.txt | 37 ++++++++++++++++++++++-------- requirements.txt | 53 ++++++++++++++++++++++++++++++++++--------- 2 files changed, 70 insertions(+), 20 deletions(-) diff --git a/requirements-full.txt b/requirements-full.txt index fa53d5ed2e28..275346acac7e 100644 --- a/requirements-full.txt +++ b/requirements-full.txt @@ -1,5 +1,5 @@ absl-py==1.0.0; python_version >= "3.6" -aiohttp==3.8.1; python_version >= "3.6" +aiohttp==3.8.1; python_version >= "3.7" aiosignal==1.2.0; python_version >= "3.6" alabaster==0.7.12; python_version >= "3.6" alpha-vantage==2.3.1 @@ -35,8 +35,9 @@ cffi==1.15.0; python_version >= "3.7" cfgv==3.3.1; python_full_version >= "3.6.1" and python_version >= "3.7" charset-normalizer==2.0.12; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4.0" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") click==8.0.1; python_version >= "3.6" +cmdstanpy==0.9.68; python_version >= "3.7" codespell==2.1.0; python_version >= "3.5" -colorama==0.4.4; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and platform_system == "Windows" and python_version >= "3.8" and (python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.5.0") and sys_platform == "win32" and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.5.0") and (python_version >= "3.6" and python_full_version < "3.0.0" and platform_system == "Windows" or python_full_version >= "3.5.0" and platform_system == "Windows" and python_version >= "3.6") and (python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.5.0") +colorama==0.4.4; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and platform_system == "Windows" and python_version >= "3.8" and (python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.5.0") and sys_platform == "win32" and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.5.0") and (python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.5.0") commonmark==0.9.1; python_full_version >= "3.6.2" and python_full_version < "4.0.0" convertdate==2.4.0; python_version >= "3.7" and python_version < "4" coverage==6.3.2; python_version >= "3.7" @@ -45,6 +46,7 @@ cssselect==1.1.0; python_version >= "2.7" and python_full_version < "3.0.0" or p cvxpy==1.2.0; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.7" cycler==0.11.0; python_version >= "3.7" cython==0.29.28; python_version >= "3.8" and python_full_version < "3.0.0" and sys_platform == "darwin" or python_full_version >= "3.3.0" and sys_platform == "darwin" and python_version >= "3.8" +darts==0.19.0; python_version >= "3.7" dateparser==1.1.1; python_version >= "3.5" datetime==4.4; python_version >= "3.5" debugpy==1.6.0; python_version >= "3.7" @@ -59,6 +61,7 @@ dnspython==2.2.1; python_version >= "3.6" and python_version < "4.0" docutils==0.16; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" ecos==2.0.10; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.7" entrypoints==0.4; python_full_version >= "3.7.0" and python_version >= "3.7" +ephem==4.1.3; python_version >= "3.7" and python_version < "4" et-xmlfile==1.1.0; python_version >= "3.6" exchange-calendars==3.6.1; python_version >= "3.7" and python_full_version >= "3.7.0" executing==0.8.3; python_full_version >= "3.6.2" and python_version >= "3.8" @@ -77,6 +80,7 @@ fred==3.1 fredapi==0.4.3 frozendict==2.3.2; python_version >= "3.6" frozenlist==1.3.0; python_version >= "3.7" +fsspec==2022.5.0; python_version >= "3.7" fundamentalanalysis==0.2.14 future==0.18.2; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" gast==0.5.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" @@ -88,7 +92,7 @@ google-pasta==0.2.0 grpcio==1.45.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.6" h11==0.13.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" h5py==3.6.0; python_version >= "3.7" -hijri-converter==2.2.3; python_version >= "3.6" +hijri-converter==2.2.3; python_version >= "3.7" holidays==0.11.3.1; python_version >= "3.6" identify==2.4.12; python_version >= "3.7" idna==3.3; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") @@ -125,7 +129,10 @@ kiwisolver==1.4.2; python_version >= "3.7" korean-lunar-calendar==0.2.1; python_version >= "3.7" and python_full_version >= "3.7.0" lazy-object-proxy==1.7.1; python_version >= "3.6" and python_full_version >= "3.6.2" libclang==11.1.0 +lightgbm==3.3.2; python_version >= "3.7" linearmodels==4.26; python_version >= "3.8" +llvmlite==0.38.1; python_version >= "3.7" and python_version < "3.11" +lunarcalendar==0.0.9; python_version >= "3.7" and python_version < "4" lxml==4.8.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" markdown-it-py==1.1.0; python_version >= "3.6" and python_version < "4.0" markdown==3.3.6; python_version >= "3.6" @@ -149,9 +156,11 @@ nbconvert==6.5.0; python_version >= "3.7" nbformat==5.3.0; python_full_version >= "3.7.0" and python_version >= "3.7" nest-asyncio==1.5.5; python_full_version >= "3.7.0" and python_version >= "3.7" networkx==2.8; python_version >= "3.8" +nfoursid==1.0.0; python_version >= "3.7" nodeenv==1.6.0; python_version >= "3.7" notebook-shim==0.1.0; python_version >= "3.7" notebook==6.4.11; python_version >= "3.7" +numba==0.55.1; python_version >= "3.7" and python_version < "3.11" numpy==1.21.2; python_version >= "3.7" and python_version < "3.11" oandapyv20==0.6.3 oauthlib==3.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" @@ -184,6 +193,7 @@ pre-commit==2.18.1; python_version >= "3.7" prometheus-client==0.14.1; python_version >= "3.7" prompt-toolkit==3.0.29; python_full_version >= "3.6.2" property-cached==1.6.4; python_version >= "3.8" +prophet==1.0.1; python_version >= "3.7" protobuf==3.20.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.7" psaw==0.0.12; python_version >= "3" psutil==5.9.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" @@ -196,6 +206,7 @@ pyasn1==0.4.8; python_version >= "3.6" and python_full_version < "3.0.0" and pyt pycodestyle==2.7.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" pycoingecko==2.2.0 pycparser==2.21; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" +pydeprecate==0.3.2; python_version >= "3.7" pyerfa==2.0.0.1; python_version >= "3.8" pyex==0.5.0 pyflakes==2.3.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" @@ -214,17 +225,19 @@ pyportfolioopt==1.5.2; python_full_version >= "3.6.1" and python_full_version < pyprind==2.11.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" pyrsistent==0.18.1; python_version >= "3.7" pysocks==1.7.1; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "3.7" +pystan==2.19.1.1; python_version >= "3.7" pytest-cov==3.0.0; python_version >= "3.6" pytest-mock==3.7.0; python_version >= "3.7" pytest-recording==0.12.0; python_version >= "3.5" pytest==6.2.5; python_version >= "3.6" python-binance==1.0.16 python-coinmarketcap==0.2 -python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") +python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") and (python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4" or python_version >= "3.7" and python_version < "4" and python_full_version >= "3.3.0") python-dotenv==0.19.2; python_version >= "3.5" +pytorch-lightning==1.6.3; python_version >= "3.7" pytrends==4.8.0 pytz-deprecation-shim==0.1.0.post0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" -pytz==2022.1; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" +pytz==2022.1; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and python_version < "4" pyupgrade==2.32.0; python_version >= "3.7" pywin32==303; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.7" and python_full_version >= "3.7.0" pywinpty==2.0.5; os_name == "nt" and python_version >= "3.7" @@ -251,6 +264,7 @@ seaborn==0.11.2; python_version >= "3.6" selenium==4.1.3; python_version >= "3.7" and python_version < "4.0" send2trash==1.8.0; python_version >= "3.7" sentiment-investor==2.1.0; python_version >= "3.8" and python_version < "4.0" +setuptools-git==1.2; python_version >= "3.7" setuptools-scm==6.4.2; python_version >= "3.8" six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.8") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") smmap==5.0.0; python_version >= "3.7" @@ -269,14 +283,16 @@ sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.6" squarify==0.4.3 sseclient==0.0.27 stack-data==0.2.0; python_full_version >= "3.6.2" and python_version >= "3.8" +statsforecast==0.5.5; python_version >= "3.7" statsmodels==0.13.2; python_version >= "3.7" stevedore==3.5.0; python_version >= "3.7" tabulate==0.8.9; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" +tbats==1.1.0; python_version >= "3.7" temporal-cache==0.1.4 tenacity==8.0.1; python_version >= "3.6" tensorboard-data-server==0.6.1; python_version >= "3.6" tensorboard-plugin-wit==1.8.1; python_version >= "3.6" -tensorboard==2.8.0; python_version >= "3.6" +tensorboard==2.8.0; python_version >= "3.7" tensorflow-io-gcs-filesystem==0.25.0; python_version >= "3.7" and python_version < "3.11" tensorflow==2.8.0 termcolor==1.1.0 @@ -290,8 +306,10 @@ tokenize-rt==4.2.1; python_full_version >= "3.6.2" and python_version >= "3.7" toml==0.10.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7" tomli==2.0.1; python_version >= "3.8" and python_full_version >= "3.6.2" and python_version < "3.11" toolz==0.11.2; python_version >= "3.7" and python_full_version >= "3.7.0" +torch==1.11.0; python_full_version >= "3.7.0" +torchmetrics==0.8.2; python_version >= "3.7" tornado==6.1; python_full_version >= "3.7.0" and python_version >= "3.7" -tqdm==4.64.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" +tqdm==4.64.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" tradingview-ta==3.2.10; python_version >= "3.6" traitlets==5.1.1; python_full_version >= "3.7.0" and python_version >= "3.8" trio-websocket==0.9.2; python_version >= "3.7" and python_version < "4.0" @@ -303,13 +321,13 @@ types-requests==2.27.20 types-setuptools==57.4.14 types-six==1.16.15 types-urllib3==1.26.13 -typing-extensions==4.2.0; python_version < "3.10" and python_full_version >= "3.6.2" and python_version >= "3.7" +typing-extensions==4.2.0; python_version < "3.10" and python_full_version >= "3.7.0" and python_version >= "3.7" tzdata==2022.1; platform_system == "Windows" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") tzlocal==4.2; python_version >= "3.6" ujson==5.2.0; python_version >= "3.7" unidecode==1.3.4; python_version >= "3.7" update-checker==0.18.0; python_version >= "3.6" and python_version < "4.0" -urllib3==1.26.9; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") +urllib3==1.26.9; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version < "4" and python_version >= "3.7") user-agent==0.1.10 vadersentiment==3.3.2 valinvest==0.0.2; python_version >= "3.6" @@ -324,6 +342,7 @@ werkzeug==2.1.1; python_version >= "3.7" widgetsnbextension==3.6.0 wrapt==1.14.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and python_version >= "3.8" wsproto==1.1.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" +xarray==2022.3.0; python_version >= "3.8" xlsxwriter==3.0.3; python_version >= "3.7" yarl==1.7.2; python_version >= "3.6" yfinance==0.1.70 diff --git a/requirements.txt b/requirements.txt index 5ed30440acc4..7f122ec7217e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ -aiohttp==3.8.1; python_version >= "3.6" +absl-py==1.0.0; python_version >= "3.7" +aiohttp==3.8.1; python_version >= "3.7" aiosignal==1.2.0; python_version >= "3.6" alpha-vantage==2.3.1 ansiwrap==0.8.4; python_version >= "3.6" @@ -23,11 +24,13 @@ black==22.1.0; python_full_version >= "3.6.2" bleach==5.0.0; python_version >= "3.7" bs4==0.0.1 bt==0.2.9; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") +cachetools==5.0.0; python_version >= "3.7" and python_version < "4.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") certifi==2021.10.8; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") cffi==1.15.0; python_version >= "3.7" charset-normalizer==2.0.12; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4.0" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") click==8.0.1; python_version >= "3.6" -colorama==0.4.4; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and platform_system == "Windows" and python_version >= "3.8" and (python_version >= "3.6" and python_full_version < "3.0.0" and platform_system == "Windows" or python_full_version >= "3.5.0" and platform_system == "Windows" and python_version >= "3.6") and sys_platform == "win32" +cmdstanpy==0.9.68; python_version >= "3.7" +colorama==0.4.4; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and platform_system == "Windows" and python_version >= "3.8" and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or python_full_version >= "3.5.0" and platform_system == "Windows" and python_version >= "3.7") and sys_platform == "win32" commonmark==0.9.1; python_full_version >= "3.6.2" and python_full_version < "4.0.0" convertdate==2.4.0; python_version >= "3.7" and python_version < "4" cryptography==36.0.2; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "3.7" @@ -35,6 +38,7 @@ cssselect==1.1.0; python_version >= "2.7" and python_full_version < "3.0.0" or p cvxpy==1.2.0; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.7" cycler==0.11.0; python_version >= "3.7" cython==0.29.28; python_version >= "3.8" and python_full_version < "3.0.0" and sys_platform == "darwin" or python_full_version >= "3.3.0" and sys_platform == "darwin" and python_version >= "3.8" +darts==0.19.0; python_version >= "3.7" dateparser==1.1.1; python_version >= "3.5" datetime==4.4; python_version >= "3.5" debugpy==1.6.0; python_version >= "3.7" @@ -46,6 +50,7 @@ detecta==0.0.5; python_version >= "3.6" dnspython==2.2.1; python_version >= "3.6" and python_version < "4.0" ecos==2.0.10; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.7" entrypoints==0.4; python_full_version >= "3.7.0" and python_version >= "3.7" +ephem==4.1.3; python_version >= "3.7" and python_version < "4" et-xmlfile==1.1.0; python_version >= "3.6" exchange-calendars==3.6.1; python_version >= "3.7" and python_full_version >= "3.7.0" executing==0.8.3; python_full_version >= "3.6.2" and python_version >= "3.8" @@ -61,13 +66,16 @@ fred==3.1 fredapi==0.4.3 frozendict==2.3.2; python_version >= "3.6" frozenlist==1.3.0; python_version >= "3.7" +fsspec==2022.5.0; python_version >= "3.7" fundamentalanalysis==0.2.14 future==0.18.2; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" gitdb==4.0.9; python_version >= "3.7" gitpython==3.1.27; python_version >= "3.7" -grpcio==1.45.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.6" +google-auth-oauthlib==0.4.6; python_version >= "3.7" +google-auth==2.6.6; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" +grpcio==1.45.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.7" h11==0.13.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" -hijri-converter==2.2.3; python_version >= "3.6" +hijri-converter==2.2.3; python_version >= "3.7" holidays==0.11.3.1; python_version >= "3.6" idna==3.3; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") importlib-metadata==4.11.3; python_version < "3.10" and python_version >= "3.7" @@ -96,8 +104,12 @@ jupyterlab-widgets==1.1.0; python_version >= "3.6" jupyterlab==3.3.4; python_version >= "3.7" kiwisolver==1.4.2; python_version >= "3.7" korean-lunar-calendar==0.2.1; python_version >= "3.7" and python_full_version >= "3.7.0" +lightgbm==3.3.2; python_version >= "3.7" linearmodels==4.26; python_version >= "3.8" +llvmlite==0.38.1; python_version >= "3.7" and python_version < "3.11" +lunarcalendar==0.0.9; python_version >= "3.7" and python_version < "4" lxml==4.8.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" +markdown==3.3.6; python_version >= "3.7" markupsafe==2.1.1; python_version >= "3.7" matplotlib-inline==0.1.3; python_full_version >= "3.6.2" and python_version >= "3.8" matplotlib==3.5.1; python_version >= "3.7" @@ -114,8 +126,10 @@ nbconvert==6.5.0; python_version >= "3.7" nbformat==5.3.0; python_full_version >= "3.7.0" and python_version >= "3.7" nest-asyncio==1.5.5; python_full_version >= "3.7.0" and python_version >= "3.7" networkx==2.8; python_version >= "3.8" +nfoursid==1.0.0; python_version >= "3.7" notebook-shim==0.1.0; python_version >= "3.7" notebook==6.4.11; python_version >= "3.7" +numba==0.55.1; python_version >= "3.7" and python_version < "3.11" numpy==1.21.2; python_version >= "3.7" and python_version < "3.11" oandapyv20==0.6.3 oauthlib==3.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" @@ -144,6 +158,7 @@ prawcore==2.3.0; python_version >= "3.6" and python_version < "4.0" prometheus-client==0.14.1; python_version >= "3.7" prompt-toolkit==3.0.29; python_full_version >= "3.6.2" property-cached==1.6.4; python_version >= "3.8" +prophet==1.0.1; python_version >= "3.7" protobuf==3.20.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.7" psaw==0.0.12; python_version >= "3" psutil==5.9.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" @@ -151,8 +166,11 @@ ptyprocess==0.7.0; os_name != "nt" and python_version >= "3.8" and sys_platform pure-eval==0.2.2; python_full_version >= "3.6.2" and python_version >= "3.8" py==1.11.0; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.7.0" pyally==1.1.2 +pyasn1-modules==0.2.8; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" +pyasn1==0.4.8; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") or python_full_version >= "3.6.0" and python_version >= "3.7" and python_version < "4" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") pycoingecko==2.2.0 pycparser==2.21; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" +pydeprecate==0.3.2; python_version >= "3.7" pyerfa==2.0.0.1; python_version >= "3.8" pyex==0.5.0 pygments==2.12.0; python_version >= "3.6" @@ -169,13 +187,15 @@ pyportfolioopt==1.5.2; python_full_version >= "3.6.1" and python_full_version < pyprind==2.11.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" pyrsistent==0.18.1; python_version >= "3.7" pysocks==1.7.1; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "3.7" +pystan==2.19.1.1; python_version >= "3.7" python-binance==1.0.16 python-coinmarketcap==0.2 -python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") +python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") and (python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4" or python_version >= "3.7" and python_version < "4" and python_full_version >= "3.3.0") python-dotenv==0.19.2; python_version >= "3.5" +pytorch-lightning==1.6.3; python_version >= "3.7" pytrends==4.8.0 pytz-deprecation-shim==0.1.0.post0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" -pytz==2022.1; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" +pytz==2022.1; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and python_version < "4" pywin32==303; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.7" and python_full_version >= "3.7.0" pywinpty==2.0.5; os_name == "nt" and python_version >= "3.7" pyyaml==6.0; python_version >= "3.8" @@ -187,11 +207,12 @@ quandl==3.7.0; python_version >= "3.6" rapidfuzz==1.9.1; python_version >= "2.7" regex==2022.3.2; python_version >= "3.6" reportlab==3.6.9; python_version >= "3.7" and python_version < "4" -requests-oauthlib==1.3.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" +requests-oauthlib==1.3.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" requests==2.27.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") rich==10.16.2; python_full_version >= "3.6.2" and python_full_version < "4.0.0" riskfolio-lib==3.1.1; python_version >= "3.7" robin-stocks==2.1.0; python_version >= "3" +rsa==4.8; python_version >= "3.6" and python_version < "4" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") scikit-learn==1.0.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" scipy==1.8.0; python_version >= "3.8" and python_version < "3.11" and python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") screeninfo==0.6.7 @@ -200,8 +221,9 @@ seaborn==0.11.2; python_version >= "3.6" selenium==4.1.3; python_version >= "3.7" and python_version < "4.0" send2trash==1.8.0; python_version >= "3.7" sentiment-investor==2.1.0; python_version >= "3.8" and python_version < "4.0" +setuptools-git==1.2; python_version >= "3.7" setuptools-scm==6.4.2; python_version >= "3.8" -six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.8") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") +six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.8") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") smmap==5.0.0; python_version >= "3.7" sniffio==1.2.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.6.2" socketio-client-nexus==0.7.6 @@ -210,10 +232,15 @@ soupsieve==2.3.2.post1; python_version >= "3.6" and python_full_version >= "3.6. squarify==0.4.3 sseclient==0.0.27 stack-data==0.2.0; python_full_version >= "3.6.2" and python_version >= "3.8" +statsforecast==0.5.5; python_version >= "3.7" statsmodels==0.13.2; python_version >= "3.7" tabulate==0.8.9; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" +tbats==1.1.0; python_version >= "3.7" temporal-cache==0.1.4 tenacity==8.0.1; python_version >= "3.6" +tensorboard-data-server==0.6.1; python_version >= "3.7" +tensorboard-plugin-wit==1.8.1; python_version >= "3.7" +tensorboard==2.8.0; python_version >= "3.7" terminado==0.13.3; python_version >= "3.7" textwrap3==0.9.2; python_version >= "3.6" thepassiveinvestor==1.0.10 @@ -221,19 +248,21 @@ threadpoolctl==3.1.0; python_version >= "3.7" and python_full_version < "3.0.0" tinycss2==1.1.1; python_version >= "3.7" tomli==2.0.1; python_version >= "3.8" and python_full_version >= "3.6.2" toolz==0.11.2; python_version >= "3.7" and python_full_version >= "3.7.0" +torch==1.11.0; python_full_version >= "3.7.0" +torchmetrics==0.8.2; python_version >= "3.7" tornado==6.1; python_full_version >= "3.7.0" and python_version >= "3.7" -tqdm==4.64.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" +tqdm==4.64.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" tradingview-ta==3.2.10; python_version >= "3.6" traitlets==5.1.1; python_full_version >= "3.7.0" and python_version >= "3.8" trio-websocket==0.9.2; python_version >= "3.7" and python_version < "4.0" trio==0.20.0; python_version >= "3.7" and python_version < "4.0" -typing-extensions==4.2.0; python_version < "3.10" and python_full_version >= "3.6.2" and python_version >= "3.7" +typing-extensions==4.2.0; python_version < "3.10" and python_full_version >= "3.7.0" and python_version >= "3.7" tzdata==2022.1; platform_system == "Windows" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") tzlocal==4.2; python_version >= "3.6" ujson==5.2.0; python_version >= "3.7" unidecode==1.3.4; python_version >= "3.7" update-checker==0.18.0; python_version >= "3.6" and python_version < "4.0" -urllib3==1.26.9; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") +urllib3==1.26.9; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version < "4" and python_version >= "3.7") user-agent==0.1.10 vadersentiment==3.3.2 valinvest==0.0.2; python_version >= "3.6" @@ -242,9 +271,11 @@ wcwidth==0.2.5; python_full_version >= "3.6.2" and python_version >= "3.8" webencodings==0.5.1; python_version >= "3.7" websocket-client==1.3.2; python_version >= "3.8" and python_version < "4.0" websockets==10.3; python_version >= "3.7" +werkzeug==2.1.1; python_version >= "3.7" widgetsnbextension==3.6.0 wrapt==1.14.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" wsproto==1.1.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" +xarray==2022.3.0; python_version >= "3.8" xlsxwriter==3.0.3; python_version >= "3.7" yarl==1.7.2; python_version >= "3.6" yfinance==0.1.70 From d05625a56d47d87cdf7fe9f9dafef2a25f19d3a8 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Sat, 21 May 2022 00:11:37 -0400 Subject: [PATCH 18/34] refactoring and Hugo website --- .../prediction_techniques/expo_model.py | 10 +++--- .../common/prediction_techniques/expo_view.py | 12 +++---- .../prediction_techniques/pred_controller.py | 10 +++--- .../prediction_techniques/expo/_index.md | 33 +++++++++++++++++++ website/data/menu/main.yml | 2 ++ 5 files changed, 51 insertions(+), 16 deletions(-) create mode 100755 website/content/terminal/common/prediction_techniques/expo/_index.md diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index f6b5ad31a1f5..6be1e6377106 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -33,7 +33,7 @@ def get_expo_data( damped: str = "F", n_predict: int = 30, start_window: float = 0.65, - forcast_horizon: int = 3, + forecast_horizon: int = 3, ) -> Tuple[List[float], List[float], Any, Any]: """Performs Probabalistic Exponential Smoothing forecasting @@ -61,8 +61,8 @@ def get_expo_data( Number of days to forecast start_window: float Size of sliding window from start of timeseries and onwards - forcast_horizon: int - Number of days to forcast when backtesting and retraining historical + forecast_horizon: int + Number of days to forecast when backtesting and retraining historical Returns ------- @@ -113,11 +113,11 @@ def get_expo_data( historical_fcast_es = model_es.historical_forecasts( ticker_series, start=start_window, - forecast_horizon=forcast_horizon, + forecast_horizon=forecast_horizon, verbose=True, ) - # Show forcast over validation # and then +n_predict afterwards sampled 10 times per point + # Show forecast over validation # and then +n_predict afterwards sampled 10 times per point probabilistic_forecast = model_es.predict(n_predict, num_samples=10) precision = mape(val, probabilistic_forecast) # mape = mean average precision error console.print(f"model {model_es} obtains MAPE: {precision:.2f}% \n") # TODO diff --git a/openbb_terminal/common/prediction_techniques/expo_view.py b/openbb_terminal/common/prediction_techniques/expo_view.py index 00c046d71f4b..a0bd6b8f38d0 100644 --- a/openbb_terminal/common/prediction_techniques/expo_view.py +++ b/openbb_terminal/common/prediction_techniques/expo_view.py @@ -33,7 +33,7 @@ def display_expo_forecast( damped: str, n_predict: int, start_window: float, - forcast_horizon: int, + forecast_horizon: int, export: str = "", ): """Display Probalistic Exponential Smoothing forecast @@ -57,8 +57,8 @@ def display_expo_forecast( Number of days to forecast start_window: float Size of sliding window from start of timeseries and onwards - forcast_horizon: int - Number of days to forcast when backtesting and retraining historical + forecast_horizon: int + Number of days to forecast when backtesting and retraining historical export: str Format to export data external_axes : Optional[List[plt.Axes]], optional @@ -78,7 +78,7 @@ def display_expo_forecast( damped, n_predict, start_window, - forcast_horizon, + forecast_horizon, ) # Plotting with Matplotlib @@ -110,7 +110,7 @@ def display_expo_forecast( if not external_axes: theme.visualize_output() - numeric_forcastic = predicted_values.quantile_df()["AdjClose_0.5"].tail(n_predict) - print_pretty_prediction(numeric_forcastic, data["AdjClose"].iloc[-1]) + numeric_forecast = predicted_values.quantile_df()["AdjClose_0.5"].tail(n_predict) + print_pretty_prediction(numeric_forecast, data["AdjClose"].iloc[-1]) export_data(export, os.path.dirname(os.path.abspath(__file__)), "expo") diff --git a/openbb_terminal/stocks/prediction_techniques/pred_controller.py b/openbb_terminal/stocks/prediction_techniques/pred_controller.py index 65bcbe20da69..a15552742ebd 100644 --- a/openbb_terminal/stocks/prediction_techniques/pred_controller.py +++ b/openbb_terminal/stocks/prediction_techniques/pred_controller.py @@ -787,15 +787,15 @@ def call_expo(self, other_args: List[str]): action="store", dest="start_window", default=0.65, - help="Start point for rolling training and forcast window. 0.0-1.0", + help="Start point for rolling training and forecast window. 0.0-1.0", ) parser.add_argument( "-f", - "--forcasthorizon", + "--forecasthorizon", action="store", - dest="forcast_horizon", + dest="forecast_horizon", default=3, - help="Days/Points to forcast when training and performing historical back-testing", + help="Days/Points to forecast when training and performing historical back-testing", ) ns_parser = parse_known_args_and_warn( @@ -815,6 +815,6 @@ def call_expo(self, other_args: List[str]): seasonal_periods=ns_parser.seasonal_periods, damped = ns_parser.damped, start_window = ns_parser.start_window, - forcast_horizon = ns_parser.forcast_horizon, + forecast_horizon = ns_parser.forecast_horizon, export=ns_parser.export, ) \ No newline at end of file diff --git a/website/content/terminal/common/prediction_techniques/expo/_index.md b/website/content/terminal/common/prediction_techniques/expo/_index.md new file mode 100755 index 000000000000..3bf099e21444 --- /dev/null +++ b/website/content/terminal/common/prediction_techniques/expo/_index.md @@ -0,0 +1,33 @@ +``` +usage: ets [-n N_DAYS] [-t TREND] [-s SEASONAL] [-p SEASONAL_PERIODS] [-e S_END_DATE] [-d DAMPED][-w START_WINDOW][-f FORECAST_HORIZON][-h] +``` + + """Performs Probabalistic Exponential Smoothing forecasting + This is a wrapper around statsmodels Holt-Winters' Exponential Smoothing; + we refer to this link for the original and more complete documentation of the parameters. + + https://unit8co.github.io/darts/generated_api/darts.models.forecasting.exponential_smoothing.html + + +``` +optional arguments: + -n N_DAYS, --n_days N_DAYS + prediction days. (default: 5) + -t {N,A,M}, --trend {N,A,M} + Trend: N: None, A: Additive, M: Multiplicative. (default: A) + -s {N,A,M}, --seasonal {N,A,M} + Seasonality: N: None, A: Additive, M: Multiplicative. (default: A) + -p SEASONAL_PERIODS, --periods SEASONAL_PERIODS + Seasonal periods: 4: Quarters, 5: Business Days, 7: Weekly (default: 5) + -d DAMPED, --damped DAMPED + Dampening (default: F) + -w START_WINDOW, --window START_WINDOW + Start point for rolling training and forecast window. 0.0-1.0 (default: 0.65) + -f FORECAST_HORIZON, --forecasthorizon FORECAST_HORIZON + Days/Points to forecast when training and performing historical back-testing + (default: 3) + -h, --help show this help message (default: False) + --export EXPORT Export figure into png, jpg, pdf, svg (default: ) +``` + +![ETS]# TODO \ No newline at end of file diff --git a/website/data/menu/main.yml b/website/data/menu/main.yml index 8366e0bd7c7a..5a060638aac1 100755 --- a/website/data/menu/main.yml +++ b/website/data/menu/main.yml @@ -660,6 +660,8 @@ main: ref: "/terminal/common/prediction_techniques/conv1d" - name: mc ref: "/terminal/common/prediction_techniques/mc" + - name: expo + ref: "/terminal/common/prediction_techniques/expo" - name: Cryptocurrency ref: "/terminal/cryptocurrency" sub: From 0c2cbdb21067347d9512e9eb388acc536c31d2bc Mon Sep 17 00:00:00 2001 From: martinb-bb <105685594+martinb-bb@users.noreply.github.com> Date: Sat, 21 May 2022 00:14:37 -0400 Subject: [PATCH 19/34] Update _index.md --- .../terminal/common/prediction_techniques/expo/_index.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/website/content/terminal/common/prediction_techniques/expo/_index.md b/website/content/terminal/common/prediction_techniques/expo/_index.md index 3bf099e21444..684dc704a05a 100755 --- a/website/content/terminal/common/prediction_techniques/expo/_index.md +++ b/website/content/terminal/common/prediction_techniques/expo/_index.md @@ -2,11 +2,8 @@ usage: ets [-n N_DAYS] [-t TREND] [-s SEASONAL] [-p SEASONAL_PERIODS] [-e S_END_DATE] [-d DAMPED][-w START_WINDOW][-f FORECAST_HORIZON][-h] ``` - """Performs Probabalistic Exponential Smoothing forecasting - This is a wrapper around statsmodels Holt-Winters' Exponential Smoothing; - we refer to this link for the original and more complete documentation of the parameters. - - https://unit8co.github.io/darts/generated_api/darts.models.forecasting.exponential_smoothing.html +Performs Probabalistic Exponential Smoothing forecasting. This is a wrapper around statsmodels Holt-Winters' Exponential Smoothing; +https://unit8co.github.io/darts/generated_api/darts.models.forecasting.exponential_smoothing.html ``` @@ -30,4 +27,4 @@ optional arguments: --export EXPORT Export figure into png, jpg, pdf, svg (default: ) ``` -![ETS]# TODO \ No newline at end of file +![EXPO](https://user-images.githubusercontent.com/105685594/169634909-30864d44-e607-4e6f-8d59-ac49dafa2e2c.png) From cca5efa7f9c08d7dc68db6fae0386b77ac38a49b Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Sat, 21 May 2022 11:16:15 -0400 Subject: [PATCH 20/34] reverting poetry and requirements for now. --- poetry.lock | 496 ++---------------------------------------- pyproject.toml | 4 +- requirements-full.txt | 39 +--- requirements.txt | 123 ++++++----- 4 files changed, 100 insertions(+), 562 deletions(-) diff --git a/poetry.lock b/poetry.lock index 962d171f9bd1..1912800b0089 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3,7 +3,7 @@ name = "absl-py" version = "1.0.0" description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." category = "main" -optional = false +optional = true python-versions = ">=3.6" [package.dependencies] @@ -459,7 +459,7 @@ name = "cachetools" version = "5.0.0" description = "Extensible memoizing collections and decorators" category = "main" -optional = false +optional = true python-versions = "~=3.7" [[package]] @@ -511,24 +511,6 @@ python-versions = ">=3.6" [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} -[[package]] -name = "cmdstanpy" -version = "0.9.68" -description = "Python interface to CmdStan" -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -numpy = ">=1.15" -pandas = "*" -ujson = "*" - -[package.extras] -all = ["tqdm"] -docs = ["sphinx", "sphinx-gallery", "sphinx-rtd-theme", "numpydoc", "matplotlib"] -tests = ["flake8", "pylint", "pytest", "pytest-cov", "testfixtures", "tqdm"] - [[package]] name = "codespell" version = "2.1.0" @@ -648,37 +630,6 @@ category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -[[package]] -name = "darts" -version = "0.19.0" -description = "A python library for easy manipulation and forecasting of time series." -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -holidays = ">=0.11.1" -ipython = ">=7.0.0" -joblib = ">=0.16.0" -lightgbm = ">=2.2.3" -matplotlib = ">=3.3.0" -nfoursid = ">=1.0.0" -numpy = ">=1.19.0" -pandas = ">=1.0.5" -pmdarima = ">=1.8.0" -prophet = ">=1.0.0" -pystan = ">=2.19.1.1,<3.0.0.0" -pytorch-lightning = ">=1.5.0" -requests = ">=2.22.0" -scikit-learn = ">=1.0.1" -scipy = ">=1.3.2" -statsforecast = ">=0.5.2" -statsmodels = ">=0.13.0" -tbats = ">=1.1.0" -torch = ">=1.8.0" -tqdm = ">=4.60.0" -xarray = ">=0.17.0" - [[package]] name = "dateparser" version = "1.1.1" @@ -857,14 +808,6 @@ category = "main" optional = false python-versions = ">=3.6" -[[package]] -name = "ephem" -version = "4.1.3" -description = "Compute positions of the planets and stars" -category = "main" -optional = false -python-versions = "*" - [[package]] name = "et-xmlfile" version = "1.1.0" @@ -1118,44 +1061,9 @@ category = "main" optional = false python-versions = ">=3.7" -[[package]] -name = "fsspec" -version = "2022.5.0" -description = "File-system specification" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -aiohttp = {version = "*", optional = true, markers = "extra == \"http\""} -requests = {version = "*", optional = true, markers = "extra == \"http\""} - -[package.extras] -abfs = ["adlfs"] -adl = ["adlfs"] -arrow = ["pyarrow (>=1)"] -dask = ["dask", "distributed"] -dropbox = ["dropboxdrivefs", "requests", "dropbox"] -entrypoints = ["importlib-metadata"] -fuse = ["fusepy"] -gcs = ["gcsfs"] -git = ["pygit2"] -github = ["requests"] -gs = ["gcsfs"] -gui = ["panel"] -hdfs = ["pyarrow (>=1)"] -http = ["requests", "aiohttp"] -libarchive = ["libarchive-c"] -oci = ["ocifs"] -s3 = ["s3fs"] -sftp = ["paramiko"] -smb = ["smbprotocol"] -ssh = ["paramiko"] -tqdm = ["tqdm"] - [[package]] name = "fundamentalanalysis" -version = "0.2.14" +version = "0.2.12" description = "Fully-fledged Fundamental Analysis package capable of collecting 20 years of Company Profiles, Financial Statements, Ratios and Stock Data of 20.000+ companies." category = "main" optional = false @@ -1204,7 +1112,7 @@ name = "google-auth" version = "2.6.6" description = "Google Authentication Library" category = "main" -optional = false +optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*" [package.dependencies] @@ -1223,7 +1131,7 @@ name = "google-auth-oauthlib" version = "0.4.6" description = "Google Authentication Library" category = "main" -optional = false +optional = true python-versions = ">=3.6" [package.dependencies] @@ -1860,22 +1768,6 @@ category = "main" optional = true python-versions = "*" -[[package]] -name = "lightgbm" -version = "3.3.2" -description = "LightGBM Python Package" -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -numpy = "*" -scikit-learn = "!=0.22.0" -scipy = "*" - -[package.extras] -dask = ["dask[array] (>=2.0.0)", "dask[dataframe] (>=2.0.0)", "dask[distributed] (>=2.0.0)", "pandas"] - [[package]] name = "linearmodels" version = "4.26" @@ -1905,19 +1797,6 @@ category = "main" optional = false python-versions = ">=3.7,<3.11" -[[package]] -name = "lunarcalendar" -version = "0.0.9" -description = "A lunar calendar converter, including a number of lunar and solar holidays, mainly from China." -category = "main" -optional = false -python-versions = ">=2.7, <4" - -[package.dependencies] -ephem = ">=3.7.5.3" -python-dateutil = ">=2.6.1" -pytz = "*" - [[package]] name = "lxml" version = "4.8.0" @@ -1948,7 +1827,7 @@ name = "markdown" version = "3.3.6" description = "Python implementation of Markdown." category = "main" -optional = false +optional = true python-versions = ">=3.6" [package.dependencies] @@ -2261,19 +2140,6 @@ doc = ["sphinx (>=4.5)", "pydata-sphinx-theme (>=0.8.1)", "sphinx-gallery (>=0.1 extra = ["lxml (>=4.6)", "pygraphviz (>=1.9)", "pydot (>=1.4.2)", "sympy (>=1.10)"] test = ["pytest (>=7.1)", "pytest-cov (>=3.0)", "codecov (>=2.1)"] -[[package]] -name = "nfoursid" -version = "1.0.0" -description = "Implementation of N4SID, Kalman filtering and state-space models" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -matplotlib = ">=3.3" -numpy = ">=1.19" -pandas = ">=1.1" - [[package]] name = "nodeenv" version = "1.6.0" @@ -2761,28 +2627,6 @@ category = "main" optional = false python-versions = ">= 3.5" -[[package]] -name = "prophet" -version = "1.0.1" -description = "Automatic Forecasting Procedure" -category = "main" -optional = false -python-versions = ">=3" - -[package.dependencies] -cmdstanpy = "0.9.68" -convertdate = ">=2.1.2" -Cython = ">=0.22" -holidays = ">=0.10.2" -LunarCalendar = ">=0.0.9" -matplotlib = ">=2.0.0" -numpy = ">=1.15.4" -pandas = ">=1.0.4" -pystan = ">=2.19.1.1,<2.20.0.0" -python-dateutil = ">=2.8.0" -setuptools-git = ">=1.2" -tqdm = ">=4.36.1" - [[package]] name = "protobuf" version = "3.20.1" @@ -2859,7 +2703,7 @@ name = "pyasn1" version = "0.4.8" description = "ASN.1 types and codecs" category = "main" -optional = false +optional = true python-versions = "*" [[package]] @@ -2867,7 +2711,7 @@ name = "pyasn1-modules" version = "0.2.8" description = "A collection of ASN.1-based protocols modules." category = "main" -optional = false +optional = true python-versions = "*" [package.dependencies] @@ -2915,14 +2759,6 @@ typing-extensions = ">=3.7.4.3" dotenv = ["python-dotenv (>=0.10.4)"] email = ["email-validator (>=1.0.3)"] -[[package]] -name = "pydeprecate" -version = "0.3.2" -description = "Deprecation tooling" -category = "main" -optional = false -python-versions = ">=3.6" - [[package]] name = "pyerfa" version = "2.0.0.1" @@ -3215,18 +3051,6 @@ category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -[[package]] -name = "pystan" -version = "2.19.1.1" -description = "Python interface to Stan, a package for Bayesian inference" -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -Cython = ">=0.22,<0.25.1 || >0.25.1" -numpy = ">=1.7" - [[package]] name = "pytelegrambotapi" version = "4.5.0" @@ -3353,36 +3177,6 @@ python-versions = ">=3.5" [package.extras] cli = ["click (>=5.0)"] -[[package]] -name = "pytorch-lightning" -version = "1.6.3" -description = "PyTorch Lightning is the lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplate." -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -fsspec = {version = ">=2021.05.0,<2021.06.0 || >2021.06.0", extras = ["http"]} -numpy = ">=1.17.2" -packaging = ">=17.0" -pyDeprecate = ">=0.3.1,<0.4.0" -PyYAML = ">=5.4" -tensorboard = ">=2.2.0" -torch = ">=1.8" -torchmetrics = ">=0.4.1" -tqdm = ">=4.57.0" -typing-extensions = ">=4.0.0" - -[package.extras] -all = ["matplotlib (>3.1)", "horovod (>=0.21.2,!=0.24.0)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)", "neptune-client (>=0.10.0)", "comet-ml (>=3.1.12)", "mlflow (>=1.0.0)", "test-tube (>=0.7.5)", "wandb (>=0.8.21)", "coverage (>5.2.0,<6.3)", "codecov (>=2.1)", "pytest (>=6.0)", "pytest-rerunfailures (>=10.2)", "twine (==3.2)", "mypy (>=0.920)", "flake8 (>=3.9.2)", "pre-commit (>=1.0)", "pytest-forked", "sklearn", "jsonargparse", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "pandas", "torchvision (>=0.9)", "gym[classic_control] (>=0.17.0)", "ipython"] -cpu = ["matplotlib (>3.1)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)", "neptune-client (>=0.10.0)", "comet-ml (>=3.1.12)", "mlflow (>=1.0.0)", "test-tube (>=0.7.5)", "wandb (>=0.8.21)", "coverage (>5.2.0,<6.3)", "codecov (>=2.1)", "pytest (>=6.0)", "pytest-rerunfailures (>=10.2)", "twine (==3.2)", "mypy (>=0.920)", "flake8 (>=3.9.2)", "pre-commit (>=1.0)", "pytest-forked", "sklearn", "jsonargparse", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "pandas", "torchvision (>=0.9)", "gym[classic_control] (>=0.17.0)", "ipython"] -cpu-extra = ["matplotlib (>3.1)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)"] -dev = ["matplotlib (>3.1)", "horovod (>=0.21.2,!=0.24.0)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)", "neptune-client (>=0.10.0)", "comet-ml (>=3.1.12)", "mlflow (>=1.0.0)", "test-tube (>=0.7.5)", "wandb (>=0.8.21)", "coverage (>5.2.0,<6.3)", "codecov (>=2.1)", "pytest (>=6.0)", "pytest-rerunfailures (>=10.2)", "twine (==3.2)", "mypy (>=0.920)", "flake8 (>=3.9.2)", "pre-commit (>=1.0)", "pytest-forked", "sklearn", "jsonargparse", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "pandas"] -examples = ["torchvision (>=0.9)", "gym[classic_control] (>=0.17.0)", "ipython"] -extra = ["matplotlib (>3.1)", "horovod (>=0.21.2,!=0.24.0)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)"] -loggers = ["neptune-client (>=0.10.0)", "comet-ml (>=3.1.12)", "mlflow (>=1.0.0)", "test-tube (>=0.7.5)", "wandb (>=0.8.21)"] -test = ["coverage (>5.2.0,<6.3)", "codecov (>=2.1)", "pytest (>=6.0)", "pytest-rerunfailures (>=10.2)", "twine (==3.2)", "mypy (>=0.920)", "flake8 (>=3.9.2)", "pre-commit (>=1.0)", "pytest-forked", "sklearn", "jsonargparse", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "pandas"] - [[package]] name = "pytrends" version = "4.8.0" @@ -3658,7 +3452,7 @@ name = "rsa" version = "4.8" description = "Pure-Python RSA implementation" category = "main" -optional = false +optional = true python-versions = ">=3.6,<4" [package.dependencies] @@ -3786,14 +3580,6 @@ beartype = ">=0.7.1,<0.8.0" requests = ">=2.26.0,<3.0.0" websocket-client = ">=1.1.0,<2.0.0" -[[package]] -name = "setuptools-git" -version = "1.2" -description = "Setuptools revision control system plugin for Git" -category = "main" -optional = false -python-versions = "*" - [[package]] name = "setuptools-scm" version = "6.4.2" @@ -4053,24 +3839,6 @@ anyio = ">=3.0.0,<4" [package.extras] full = ["itsdangerous", "jinja2", "python-multipart", "pyyaml", "requests"] -[[package]] -name = "statsforecast" -version = "0.5.5" -description = "Time series forecasting suite using statistical models" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -numba = "*" -numpy = "*" -pandas = "*" -scipy = "*" -statsmodels = "*" - -[package.extras] -ray = ["ray"] - [[package]] name = "statsmodels" version = "0.13.2" @@ -4113,23 +3881,6 @@ python-versions = "*" [package.extras] widechars = ["wcwidth"] -[[package]] -name = "tbats" -version = "1.1.0" -description = "BATS and TBATS for time series forecasting" -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -numpy = "*" -pmdarima = "*" -scikit-learn = "*" -scipy = "*" - -[package.extras] -dev = ["pip-tools", "rpy2"] - [[package]] name = "temporal-cache" version = "0.1.4" @@ -4161,7 +3912,7 @@ name = "tensorboard" version = "2.8.0" description = "TensorBoard lets you watch Tensors Flow" category = "main" -optional = false +optional = true python-versions = ">=3.6" [package.dependencies] @@ -4182,7 +3933,7 @@ name = "tensorboard-data-server" version = "0.6.1" description = "Fast data loading for TensorBoard" category = "main" -optional = false +optional = true python-versions = ">=3.6" [[package]] @@ -4190,7 +3941,7 @@ name = "tensorboard-plugin-wit" version = "1.8.1" description = "What-If Tool TensorBoard plugin." category = "main" -optional = false +optional = true python-versions = "*" [[package]] @@ -4341,41 +4092,6 @@ category = "main" optional = false python-versions = ">=3.5" -[[package]] -name = "torch" -version = "1.11.0" -description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" -category = "main" -optional = false -python-versions = ">=3.7.0" - -[package.dependencies] -typing-extensions = "*" - -[[package]] -name = "torchmetrics" -version = "0.8.2" -description = "PyTorch native Metrics" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -numpy = ">=1.17.2" -packaging = "*" -pyDeprecate = ">=0.3.0,<0.4.0" -torch = ">=1.3.1" - -[package.extras] -all = ["sacrebleu (>=2.0.0)", "check-manifest", "cloudpickle (>=1.3)", "rouge-score (>=0.0.4)", "fire", "codecov (>=2.1)", "scikit-image (>0.17.1)", "pytest-doctestplus (>=0.9.0)", "mypy (>=0.790)", "transformers (>=4.0)", "requests", "pypesq", "scikit-learn (>=0.24)", "mir-eval (>=0.6)", "jiwer (>=2.3.0)", "fast-bss-eval (>=0.1.0)", "bert-score (==0.3.10)", "psutil", "pre-commit (>=1.0)", "regex (>=2021.9.24)", "nltk (>=3.6)", "tqdm (>=4.41.0)", "pystoi", "pesq (>=0.0.3)", "torchvision (>=0.8)", "nbsphinx (>=0.8)", "sphinxcontrib-fulltoc (>=1.0)", "sphinx-paramlinks (>=0.5.1)", "sphinx-copybutton (>=0.3)", "sphinx-autodoc-typehints (>=1.0)", "sphinxcontrib-mockautodoc", "myst-parser", "sphinx (>=4.0)", "pandoc (>=1.0)", "docutils (>=0.16)", "sphinx-togglebutton (>=0.2)", "torch-fidelity", "scipy", "lpips", "torchvision", "pytorch-lightning (>=1.5)", "twine (>=3.2)", "torch-complex", "coverage (>5.2)", "pytest-cov (>2.10)", "phmdoctest (>=1.1.1)", "pytorch-msssim", "pytest (>=6.0.0,<7.0.0)"] -audio = ["pystoi", "pesq (>=0.0.3)"] -detection = ["torchvision (>=0.8)"] -docs = ["nbsphinx (>=0.8)", "sphinxcontrib-fulltoc (>=1.0)", "sphinx-paramlinks (>=0.5.1)", "sphinx-copybutton (>=0.3)", "sphinx-autodoc-typehints (>=1.0)", "sphinxcontrib-mockautodoc", "myst-parser", "sphinx (>=4.0)", "pandoc (>=1.0)", "docutils (>=0.16)", "sphinx-togglebutton (>=0.2)"] -image = ["torch-fidelity", "scipy", "lpips", "torchvision"] -integrate = ["pytorch-lightning (>=1.5)"] -test = ["twine (>=3.2)", "torch-complex", "coverage (>5.2)", "pytest-cov (>2.10)", "phmdoctest (>=1.1.1)", "pytorch-msssim", "pytest (>=6.0.0,<7.0.0)", "sacrebleu (>=2.0.0)", "check-manifest", "cloudpickle (>=1.3)", "rouge-score (>=0.0.4)", "fire", "codecov (>=2.1)", "scikit-image (>0.17.1)", "pytest-doctestplus (>=0.9.0)", "mypy (>=0.790)", "transformers (>=4.0)", "requests", "pypesq", "scikit-learn (>=0.24)", "mir-eval (>=0.6)", "jiwer (>=2.3.0)", "fast-bss-eval (>=0.1.0)", "bert-score (==0.3.10)", "psutil", "pre-commit (>=1.0)"] -text = ["regex (>=2021.9.24)", "nltk (>=3.6)", "tqdm (>=4.41.0)"] - [[package]] name = "tornado" version = "6.1" @@ -4764,7 +4480,7 @@ name = "werkzeug" version = "2.1.1" description = "The comprehensive WSGI web application library." category = "main" -optional = false +optional = true python-versions = ">=3.7" [package.extras] @@ -4800,27 +4516,6 @@ python-versions = ">=3.7.0" [package.dependencies] h11 = ">=0.9.0,<1" -[[package]] -name = "xarray" -version = "2022.3.0" -description = "N-D labeled arrays and datasets in Python" -category = "main" -optional = false -python-versions = ">=3.8" - -[package.dependencies] -numpy = ">=1.18" -packaging = ">=20.0" -pandas = ">=1.1" - -[package.extras] -accel = ["scipy", "bottleneck", "numbagg"] -complete = ["netcdf4", "h5netcdf", "scipy", "pydap", "zarr", "fsspec", "cftime", "rasterio", "cfgrib", "pooch", "bottleneck", "numbagg", "dask", "matplotlib", "seaborn", "nc-time-axis"] -docs = ["netcdf4", "h5netcdf", "scipy", "pydap", "zarr", "fsspec", "cftime", "rasterio", "cfgrib", "pooch", "bottleneck", "numbagg", "dask", "matplotlib", "seaborn", "nc-time-axis", "sphinx-autosummary-accessors", "sphinx-rtd-theme", "ipython", "ipykernel", "jupyter-client", "nbsphinx", "scanpydoc"] -io = ["netcdf4", "h5netcdf", "scipy", "pydap", "zarr", "fsspec", "cftime", "rasterio", "cfgrib", "pooch"] -parallel = ["dask"] -viz = ["matplotlib", "seaborn", "nc-time-axis"] - [[package]] name = "xlsxwriter" version = "3.0.3" @@ -4890,7 +4585,7 @@ prediction = ["tensorflow"] [metadata] lock-version = "1.1" python-versions = "^3.8,<3.10" -content-hash = "28eaef5ef9b103dfcb44b7bc084027cb3f32714ade85130ef56b619a52fd5ea2" +content-hash = "2e701e62858e05479fbdbda668e1839fad0fff2fab8217dcc1f0a107197db876" [metadata.files] absl-py = [ @@ -5272,10 +4967,6 @@ click = [ {file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"}, {file = "click-8.0.1.tar.gz", hash = "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"}, ] -cmdstanpy = [ - {file = "cmdstanpy-0.9.68-py3-none-any.whl", hash = "sha256:8b0862c5491283c9e5ec6c7256dfcd835b9ef2319e38339ac640aa0156cc34c9"}, - {file = "cmdstanpy-0.9.68.tar.gz", hash = "sha256:9e935be976fda3ee738b19b8386b38617f78d9dfef51643d1ba5cb9740616b59"}, -] codespell = [ {file = "codespell-2.1.0-py3-none-any.whl", hash = "sha256:b864c7d917316316ac24272ee992d7937c3519be4569209c5b60035ac5d569b5"}, {file = "codespell-2.1.0.tar.gz", hash = "sha256:19d3fe5644fef3425777e66f225a8c82d39059dcfe9edb3349a8a2cf48383ee5"}, @@ -5418,10 +5109,6 @@ cython = [ {file = "Cython-0.29.28-py2.py3-none-any.whl", hash = "sha256:26d8d0ededca42be50e0ac377c08408e18802b1391caa3aea045a72c1bff47ac"}, {file = "Cython-0.29.28.tar.gz", hash = "sha256:d6fac2342802c30e51426828fe084ff4deb1b3387367cf98976bb2e64b6f8e45"}, ] -darts = [ - {file = "darts-0.19.0-py3-none-any.whl", hash = "sha256:8e9929ba50ac4a547cf8d2fef6faf31a1212e5d23d67babe8e8a9a79023f3966"}, - {file = "darts-0.19.0.tar.gz", hash = "sha256:f91d11b3140f04163f4c7335843d5b418ae6c19fa9e8deb0100f48dfaae48ad6"}, -] dateparser = [ {file = "dateparser-1.1.1-py2.py3-none-any.whl", hash = "sha256:9600874312ff28a41f96ec7ccdc73be1d1c44435719da47fea3339d55ff5a628"}, {file = "dateparser-1.1.1.tar.gz", hash = "sha256:038196b1f12c7397e38aad3d61588833257f6f552baa63a1499e6987fa8d42d9"}, @@ -5516,64 +5203,6 @@ entrypoints = [ {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, ] -ephem = [ - {file = "ephem-4.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0dc6e240cacd65820ec39687233d7de1cfd1ff3bf83fd62337831c201cd80d47"}, - {file = "ephem-4.1.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf65bfd4753f2aacf5caa1c5b8bcba276b03cb59f13e9f2d9850c93efaf47fa7"}, - {file = "ephem-4.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b704b2a53a216903bd852aa8c91ffeaa2cd854632d7f4bdd49b52f81b3508906"}, - {file = "ephem-4.1.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15172e06381dd49ebbc9bc0987c6fa1f0a36eaac082d28d3a63dd53c5f208d54"}, - {file = "ephem-4.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bba82fe6eb26f69992aab20b410079ea976c926cc27b8708695e2932a152e6d3"}, - {file = "ephem-4.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f00626299ba57ca7601095b24f1ca14f13fed4fed96f7bebeb919db836ebe600"}, - {file = "ephem-4.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1cb62859e0b8ea9c4285572a457fdfeffd16345721e97e3320af6b076d0efe32"}, - {file = "ephem-4.1.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4b0293f478670ba42980b1e2b5d29cc7abea6ac89cfe86467732a988d7a8349b"}, - {file = "ephem-4.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ad727401c249a51d168c8eb21fe689a4a48aff9bd73b30be9b50d96de8b1936d"}, - {file = "ephem-4.1.3-cp310-cp310-win32.whl", hash = "sha256:785867b1687332690f457e55b5a7adeb1c6dc4418283cb8821f3099d042916dc"}, - {file = "ephem-4.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:f0bf84810c9a81a23e5640373f3a5028b75a5e3f3c4834de1488664df4bde5f5"}, - {file = "ephem-4.1.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:beabe324957356b1b456301e5e1f7819b20ddf4e60dbf8024d28a1fe75f81508"}, - {file = "ephem-4.1.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5035680a51ba2531ef6b9c9d35db17f692d0a752cb9ed2d36c6ae2df41db9207"}, - {file = "ephem-4.1.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63ab03db1050c6f8b8a358c4452f667f7c04719f07ad3583368c80871cbf6fe1"}, - {file = "ephem-4.1.3-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f42e86df0cae3ca8e1c7c40e9b68da4c6472b22b8e5c8093e7e551077798b17"}, - {file = "ephem-4.1.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4adf44b083367f60aeedb2693aff0598b307321b8f3b20f1e6d7022d0f517a86"}, - {file = "ephem-4.1.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:38fb1411e5d9e212b10b952bd3c0bba6c1e1b424d2c22507623cafd1ad5d1678"}, - {file = "ephem-4.1.3-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:097c6e89ebc27fabc805e76b4e35282c71772bc97884597ffffcdb41c66642d0"}, - {file = "ephem-4.1.3-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:36196e8ee79f770493f3aaed4c7ed6d839950371a9199e90cd165d207c252731"}, - {file = "ephem-4.1.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:4b442afd12eaa44e0b48c1a38b36da52e788fb12ae641fe766afcd63c432944a"}, - {file = "ephem-4.1.3-cp36-cp36m-win32.whl", hash = "sha256:5ab539c12c96397047a64568152393a7b1ef8257d60874826c07e97d71d10366"}, - {file = "ephem-4.1.3-cp36-cp36m-win_amd64.whl", hash = "sha256:c7120cc6044772d7c8d5d199c95aad6ac0d77fa193d7472c36c5d424471d6ff1"}, - {file = "ephem-4.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6981fcea704bb5a4748bcc081708e35be3a001759ca2bfda4415452cb03796da"}, - {file = "ephem-4.1.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b332fdb1e5af07a4389135660baee89de8093e6d527155cfc5c79a60081102d"}, - {file = "ephem-4.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a76d5328b41f1f44627027adb90a5a094d5d734df2ce8d572a3bcc08662ec27c"}, - {file = "ephem-4.1.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7f93b3b4fb04d8bfe8da8e1610d4a2a0e55d5d6ebc75f570cbe8d0f2af16c8cd"}, - {file = "ephem-4.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9cae55cd50b8a996fc25c2c24ed9755d4ddf5c6adc4215b2887b146db2c83334"}, - {file = "ephem-4.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:11cfd78f79dbeccb7173cb7c56bc2ae05ecaab06f3eaa56856f823ceac6fbbb1"}, - {file = "ephem-4.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:24b6935cfacc45edd341fea9d91d23d6308d7170d89c14208a8092e2118124f3"}, - {file = "ephem-4.1.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:8119a645394d8ba70db330fcd2f21f7c33fd11268792fb58a44a358f9a964741"}, - {file = "ephem-4.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:451ebe0d54a266aacafdfda5ed86e77e94a3fd4d4ebe98cb30c0b8cad3f10119"}, - {file = "ephem-4.1.3-cp37-cp37m-win32.whl", hash = "sha256:fbf558b4d70991f2a38c80d30b2a0209d0d0b02eed6b1522668f3206e224959a"}, - {file = "ephem-4.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:75f46b2356ebaaaf6ffcadd3f91872429397090573313207446ac759a2b6b3f4"}, - {file = "ephem-4.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e5773f39c15c3c5787279a6bccb329366ae61157057aab1d16e4184bb9c03510"}, - {file = "ephem-4.1.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56d46e37e354b0ff53aa7db6348ffc052b39d1de10958c454d2209f9780f854c"}, - {file = "ephem-4.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:930ea6dd158630dead65c5188114c1d9dd50bf751548030c9b1ec87c275aac4e"}, - {file = "ephem-4.1.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2e7d52a5cf35c76c2ab5786f4d2001fc8a594c8ac4b343b3be769f4e39fdcb6"}, - {file = "ephem-4.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e2de3580e5da21c35842dc904d7dd9469f46d6fd90c7c1159081407c1f7d302"}, - {file = "ephem-4.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1a2acf37062f16e7d2004734f2a2ebe9913bc6438ef906cf15c775c170371de1"}, - {file = "ephem-4.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:095df8ebce8f1d4f9fbcc03f986ff03d17d7d2e092a348bcf70d3c786665f26d"}, - {file = "ephem-4.1.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:716389d59e61199d90d1ab798c920210df3a91786dfe8120bd1e8f1cb94ed58d"}, - {file = "ephem-4.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:59af6692282d333011f358dba0aa485f911551a29862e7814f985100cb458f97"}, - {file = "ephem-4.1.3-cp38-cp38-win32.whl", hash = "sha256:a0c30759ce9d9aeb0ae9895d559cb70dfe2468441976ae2f969a55109991b635"}, - {file = "ephem-4.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:66b6372ecf711eaec600a665b77c63c7ea405f07c3d17dcb1909837ce38dc697"}, - {file = "ephem-4.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7cacb482b8332cdb2203ee6c08967d2904f0c15d7a3650c8f5fa21345a9e5d50"}, - {file = "ephem-4.1.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:16523b385eaa30dd22b1168934eb0018d7e375a77103ef5897ac6e28b9757de5"}, - {file = "ephem-4.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12ea07382e6b83d3523031c11bb09b2295efe22baa6720d21330a1abf84f15b9"}, - {file = "ephem-4.1.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b6d850458884baaa8b388c7b16e800b4442e0c5e1c12f70b7e7eb8585e320611"}, - {file = "ephem-4.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cec1d0b09b201f1ae066703baf7da69eb92bbef40d031e90a4f8b854e25b15d"}, - {file = "ephem-4.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:14e92281fe852daad9c01b573f09f56a1f2c121172b16028fab8d8790b322fb3"}, - {file = "ephem-4.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d360b3b06ed691fee6047969391675c994e5f73e64a594a6c493f62e3d98886b"}, - {file = "ephem-4.1.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:c43a4a4b18819c8980e3b0a38754abb16bd6aac7ef2426a489ccd4661a5b0918"}, - {file = "ephem-4.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bc3cec17e6dab785c4a8bf3d2b166960009a76f8cba2b85afe97ca9b0e406812"}, - {file = "ephem-4.1.3-cp39-cp39-win32.whl", hash = "sha256:4404f7c3f9684ede423e22774c28bd105e58c2d11b497ce4a38b33d9173c3c2a"}, - {file = "ephem-4.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:998088155eb9262988eea18d31d3e35a4f15b2691f26c8b1c01fae11f7bbd5e0"}, - {file = "ephem-4.1.3.tar.gz", hash = "sha256:7fa18685981ba528edd504052a9d5212a09aa5bf15c11a734edc6a86e8a8b56a"}, -] et-xmlfile = [ {file = "et_xmlfile-1.1.0-py3-none-any.whl", hash = "sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"}, {file = "et_xmlfile-1.1.0.tar.gz", hash = "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"}, @@ -5719,13 +5348,9 @@ frozenlist = [ {file = "frozenlist-1.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:772965f773757a6026dea111a15e6e2678fbd6216180f82a48a40b27de1ee2ab"}, {file = "frozenlist-1.3.0.tar.gz", hash = "sha256:ce6f2ba0edb7b0c1d8976565298ad2deba6f8064d2bebb6ffce2ca896eb35b0b"}, ] -fsspec = [ - {file = "fsspec-2022.5.0-py3-none-any.whl", hash = "sha256:2c198c50eb541a80bbd03540b07602c4a957366f3fb416a1f270d34bd4ff0926"}, - {file = "fsspec-2022.5.0.tar.gz", hash = "sha256:7a5459c75c44e760fbe6a3ccb1f37e81e023cde7da8ba20401258d877ec483b4"}, -] fundamentalanalysis = [ - {file = "fundamentalanalysis-0.2.14-py3-none-any.whl", hash = "sha256:eda7920cb3b2f76b197cfe0a47e3936e6b4e65273a3852039cd3e5edd1bb06cc"}, - {file = "fundamentalanalysis-0.2.14.tar.gz", hash = "sha256:bc3ee7948f7de817e195b2ac6d34dc6ba9c5f4780c9d29b7768c2790e67ab4a4"}, + {file = "FundamentalAnalysis-0.2.12-py3-none-any.whl", hash = "sha256:25e6b00d40daa58866b9e01a459f260fda347bf5e2ff61d7cc77f6f8b712e011"}, + {file = "FundamentalAnalysis-0.2.12.tar.gz", hash = "sha256:360576a7e75cc576860a0de086cdd33522433932b90326830945b27c519051d3"}, ] future = [ {file = "future-0.18.2.tar.gz", hash = "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"}, @@ -6086,13 +5711,6 @@ libclang = [ {file = "libclang-11.1.0-py2.py3-none-manylinux2014_aarch64.whl", hash = "sha256:39d07c8965a3c963fb2686496339b6dbacf42acbd32e4bc7361373a45e98cebe"}, {file = "libclang-11.1.0-py2.py3-none-win_amd64.whl", hash = "sha256:8cb0082a30b9e1e615d7f4211b0c428b607a9bd1e43ddc6c0cabdd9ea5b244bf"}, ] -lightgbm = [ - {file = "lightgbm-3.3.2-py3-none-macosx_10_14_x86_64.macosx_10_15_x86_64.macosx_11_0_x86_64.whl", hash = "sha256:2e94bd1b3ab29d173102c9c1d80db2e27ad7e43b8ff5a74c5cb7984b37d19f45"}, - {file = "lightgbm-3.3.2-py3-none-manylinux1_x86_64.whl", hash = "sha256:f4cba3b4f29336ad7e801cb32d9b948ea4cc5300dda650b78bcdfe36b3e2c4b2"}, - {file = "lightgbm-3.3.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8e788c56853316fc5d35db726d81bd002c721038c856853952287f68082e0158"}, - {file = "lightgbm-3.3.2-py3-none-win_amd64.whl", hash = "sha256:e4f1529cad416066964f9af0efad208787861e9f2181b7f9ee7fc9bacc082d4f"}, - {file = "lightgbm-3.3.2.tar.gz", hash = "sha256:5d25d16e77c844c297ece2044df57651139bc3c8ad8c4108916374267ac68b64"}, -] linearmodels = [ {file = "linearmodels-4.26-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9511653d58a213ad611680b826e7dcdfc03131b5db722390aa9fb50b0395b3af"}, {file = "linearmodels-4.26-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52ac13bfa5765155a03f3bbc9bd68f8f9991ed58a75a53951a8767df87906b2c"}, @@ -6143,10 +5761,6 @@ llvmlite = [ {file = "llvmlite-0.38.1-cp39-cp39-win_amd64.whl", hash = "sha256:66462d768c30d5f648ca3361d657b434efa8b09f6cf04d6b6eae66e62e993644"}, {file = "llvmlite-0.38.1.tar.gz", hash = "sha256:0622a86301fcf81cc50d7ed5b4bebe992c030580d413a8443b328ed4f4d82561"}, ] -lunarcalendar = [ - {file = "LunarCalendar-0.0.9-py2.py3-none-any.whl", hash = "sha256:5ef25883d73898b37edb54da9e0f04215aaa68b897fd12e9d4b79756ff91c8cb"}, - {file = "LunarCalendar-0.0.9.tar.gz", hash = "sha256:681142f22fc353c3abca4b25699e3d1aa7083ad1c268dce36ba297eca04bed5a"}, -] lxml = [ {file = "lxml-4.8.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:e1ab2fac607842ac36864e358c42feb0960ae62c34aa4caaf12ada0a1fb5d99b"}, {file = "lxml-4.8.0-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28d1af847786f68bec57961f31221125c29d6f52d9187c01cd34dc14e2b29430"}, @@ -6451,10 +6065,6 @@ networkx = [ {file = "networkx-2.8-py3-none-any.whl", hash = "sha256:1a1e8fe052cc1b4e0339b998f6795099562a264a13a5af7a32cad45ab9d4e126"}, {file = "networkx-2.8.tar.gz", hash = "sha256:4a52cf66aed221955420e11b3e2e05ca44196b4829aab9576d4d439212b0a14f"}, ] -nfoursid = [ - {file = "nfoursid-1.0.0-py3-none-any.whl", hash = "sha256:5714b25a978b4505b818ec79e1e69aa3c41664f4687e176ae49ae125771eabf0"}, - {file = "nfoursid-1.0.0.tar.gz", hash = "sha256:9dc20edeaf0203ebbff9ef6ccad6ff125d9ab73d6c1ab48934fdb24b37f5f097"}, -] nodeenv = [ {file = "nodeenv-1.6.0-py2.py3-none-any.whl", hash = "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7"}, {file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"}, @@ -6737,9 +6347,6 @@ property-cached = [ {file = "property-cached-1.6.4.zip", hash = "sha256:3e9c4ef1ed3653909147510481d7df62a3cfb483461a6986a6f1dcd09b2ebb73"}, {file = "property_cached-1.6.4-py2.py3-none-any.whl", hash = "sha256:135fc059ec969c1646424a0db15e7fbe1b5f8c36c0006d0b3c91ba568c11e7d8"}, ] -prophet = [ - {file = "prophet-1.0.1.tar.gz", hash = "sha256:3e682e8ea6e1ee26a92cf289f207d539f30e44879126c128ff8f4e360eb25a8b"}, -] protobuf = [ {file = "protobuf-3.20.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3cc797c9d15d7689ed507b165cd05913acb992d78b379f6014e013f9ecb20996"}, {file = "protobuf-3.20.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:ff8d8fa42675249bb456f5db06c00de6c2f4c27a065955917b28c4f15978b9c3"}, @@ -6885,10 +6492,6 @@ pydantic = [ {file = "pydantic-1.8.2-py3-none-any.whl", hash = "sha256:fec866a0b59f372b7e776f2d7308511784dace622e0992a0b59ea3ccee0ae833"}, {file = "pydantic-1.8.2.tar.gz", hash = "sha256:26464e57ccaafe72b7ad156fdaa4e9b9ef051f69e175dbbb463283000c05ab7b"}, ] -pydeprecate = [ - {file = "pyDeprecate-0.3.2-py3-none-any.whl", hash = "sha256:ed86b68ed837e6465245904a3de2f59bf9eef78ac7a2502ee280533d04802457"}, - {file = "pyDeprecate-0.3.2.tar.gz", hash = "sha256:d481116cc5d7f6c473e7c4be820efdd9b90a16b594b350276e9e66a6cb5bdd29"}, -] pyerfa = [ {file = "pyerfa-2.0.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:278832de7803f2fb0ef4b14263200f98dfdb3eaa78dc63835d93796fd8fc42c6"}, {file = "pyerfa-2.0.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:629248cebc8626a52e80f69d4e2f30cc6e751f57803f5ba7ec99edd09785d181"}, @@ -7106,28 +6709,6 @@ pysocks = [ {file = "PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5"}, {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"}, ] -pystan = [ - {file = "pystan-2.19.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:4a0820df5fcd13c7a4cae75d59809adee72d1135a604dc2b5f068d4ac8ca349e"}, - {file = "pystan-2.19.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:2baa4106ddc7fb90712bd0e5ab8693ce130b001c6166839247511326edc6d0ba"}, - {file = "pystan-2.19.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:6c4bbbb0a59144135d9821f2b9c308bfdf70aa61befdc7dc435f4c86bfb4457e"}, - {file = "pystan-2.19.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:1127522641533a6ccb7684d4008d06c092cbe6f3ee7d44679a87937ee39093ab"}, - {file = "pystan-2.19.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:43fdd98561f0cba0637f1fa343ed7d5adc885d04a655ab6302dbfd08f016105d"}, - {file = "pystan-2.19.1.1-cp35-cp35m-win32.whl", hash = "sha256:e6580cec2f5ed1bdb44eab83d54fe87b11e673ed65d6c2064d8d9f76265ce049"}, - {file = "pystan-2.19.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:c87bd98db2b5c67fa08177de04c98b46d1fcd68ae53dbe55ffc5187868068002"}, - {file = "pystan-2.19.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:e9fbbf10dfc0ef8e7343ee4a3e17fd5c214fb12fc42615673e14908949b410e4"}, - {file = "pystan-2.19.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5020ac3ca3a840f428f090fc5fe75412e2a7948ac7e3de59f4bbfd7a4539c0ef"}, - {file = "pystan-2.19.1.1-cp36-cp36m-win32.whl", hash = "sha256:61340356889547e29e2e6db7ef28f821b91e73fee80a888e81a794a24a249987"}, - {file = "pystan-2.19.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:bc1193f52bc6c6419dd753bcb0b6958b24fe588dc3da3c7f70bd23dcbda6ec2a"}, - {file = "pystan-2.19.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:5b67008f5780c7cf0f3fbad5bc54bc9919efc9655d63e0314dc013e85c7a0f14"}, - {file = "pystan-2.19.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:2b44502aaa8866e0bcc81df1537e7e08b74aaf4cc9d4bf43e7c8b168f3568ca6"}, - {file = "pystan-2.19.1.1-cp37-cp37m-win32.whl", hash = "sha256:b2ef9031dfbd65757828e2441cb9a76c9217fb5bb93817fee2550722e7a785b3"}, - {file = "pystan-2.19.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:3622520b2e55d2ce70a3027d9910b6197a8bc2ef59e01967be9c4e607a48a9c1"}, - {file = "pystan-2.19.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:837a62976b32e4fd2bd48fee3b419c651e19747280e440d5934bea3822b22115"}, - {file = "pystan-2.19.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:e8e0924c318a0ea67260167a74f040078a4ce0d3fd4a7d566aa76f7752a85fab"}, - {file = "pystan-2.19.1.1-cp38-cp38-win32.whl", hash = "sha256:f16c399da3d9d72e9661b131c23d51a59c789416598885714813fcb552234c83"}, - {file = "pystan-2.19.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:9d8c2ae05d1dca854a55b2ae9276af5866e473fb8264d03d5267abadb3c602da"}, - {file = "pystan-2.19.1.1.tar.gz", hash = "sha256:fa8bad8dbc0da22bbe6f36af56c9abbfcf10f92df8ce627d59a36bd8d25eb038"}, -] pytelegrambotapi = [ {file = "pyTelegramBotAPI-4.5.0.tar.gz", hash = "sha256:2689db6f6e8c6cafcb2b3b45901ec895a1d09bdf033d89f89582b88a40cfa5a1"}, ] @@ -7164,10 +6745,6 @@ python-dotenv = [ {file = "python-dotenv-0.19.2.tar.gz", hash = "sha256:a5de49a31e953b45ff2d2fd434bbc2670e8db5273606c1e737cc6b93eff3655f"}, {file = "python_dotenv-0.19.2-py2.py3-none-any.whl", hash = "sha256:32b2bdc1873fd3a3c346da1c6db83d0053c3c62f28f1f38516070c4c8971b1d3"}, ] -pytorch-lightning = [ - {file = "pytorch-lightning-1.6.3.tar.gz", hash = "sha256:beb1f36a6dae91f5fef0959a04af1092dff4f3f4d99c20f0e033f84e615903e3"}, - {file = "pytorch_lightning-1.6.3-py3-none-any.whl", hash = "sha256:5419adaee5bb8057b1dad69d2cbb79f823f54a94bb67cb47fe75cdf8c1bc5616"}, -] pytrends = [ {file = "pytrends-4.8.0-py2-none-any.whl", hash = "sha256:31a76cf560a23a9eb691a9a83a3306bbe555ed1665122a5756e789829f56a0ef"}, {file = "pytrends-4.8.0.tar.gz", hash = "sha256:04b7b33eb6dfc120aa89cb4640688a8b633337276b6ddcea44ff0c7f6b6243d2"}, @@ -7614,10 +7191,6 @@ sentiment-investor = [ {file = "sentiment-investor-2.1.0.tar.gz", hash = "sha256:1b1969058ed540ef7059a54c146bc7b1e424b55c405607d4b407d476e562504e"}, {file = "sentiment_investor-2.1.0-py3-none-any.whl", hash = "sha256:133f3086cc583a475bccd5e1b873d1751bb46633fad675df9c24604ed8377b6d"}, ] -setuptools-git = [ - {file = "setuptools-git-1.2.tar.gz", hash = "sha256:ff64136da01aabba76ae88b050e7197918d8b2139ccbf6144e14d472b9c40445"}, - {file = "setuptools_git-1.2-py2.py3-none-any.whl", hash = "sha256:e7764dccce7d97b4b5a330d7b966aac6f9ac026385743fd6cedad553f2494cfa"}, -] setuptools-scm = [ {file = "setuptools_scm-6.4.2-py3-none-any.whl", hash = "sha256:acea13255093849de7ccb11af9e1fb8bde7067783450cee9ef7a93139bddf6d4"}, {file = "setuptools_scm-6.4.2.tar.gz", hash = "sha256:6833ac65c6ed9711a4d5d2266f8024cfa07c533a0e55f4c12f6eff280a5a9e30"}, @@ -7701,10 +7274,6 @@ starlette = [ {file = "starlette-0.17.1-py3-none-any.whl", hash = "sha256:26a18cbda5e6b651c964c12c88b36d9898481cd428ed6e063f5f29c418f73050"}, {file = "starlette-0.17.1.tar.gz", hash = "sha256:57eab3cc975a28af62f6faec94d355a410634940f10b30d68d31cb5ec1b44ae8"}, ] -statsforecast = [ - {file = "statsforecast-0.5.5-py3-none-any.whl", hash = "sha256:f04affa6fcae9d9fae0be74f19bef043c18d80483060971c72975c9bfcdbd63d"}, - {file = "statsforecast-0.5.5.tar.gz", hash = "sha256:6a81ae36568f12aa64f862bdff5518da43e1a1fc14ced9b5d6917259fa9a362f"}, -] statsmodels = [ {file = "statsmodels-0.13.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3e7ca5b7e678c0bb7a24f5c735d58ac104a50eb61b17c484cce0e221a095560f"}, {file = "statsmodels-0.13.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:066a75d5585378b2df972f81a90b9a3da5e567b7d4833300c1597438c1a35e29"}, @@ -7738,10 +7307,6 @@ tabulate = [ {file = "tabulate-0.8.9-py3-none-any.whl", hash = "sha256:d7c013fe7abbc5e491394e10fa845f8f32fe54f8dc60c6622c6cf482d25d47e4"}, {file = "tabulate-0.8.9.tar.gz", hash = "sha256:eb1d13f25760052e8931f2ef80aaf6045a6cceb47514db8beab24cded16f13a7"}, ] -tbats = [ - {file = "tbats-1.1.0-py3-none-any.whl", hash = "sha256:dfda4a68e0642558679f46e3cbb7c14df08760d009f709d9d9dff6bb35b33191"}, - {file = "tbats-1.1.0.tar.gz", hash = "sha256:5641d7f25cc6ca6487194a7eb2116526fd3022f323eac1269e14cf019cdebc6f"}, -] temporal-cache = [ {file = "temporal-cache-0.1.4.tar.gz", hash = "sha256:b6dd850359c46bd4a5c59fc3b953f8924e429b1179a351b3508d07c214738b50"}, {file = "temporal_cache-0.1.4-py2.py3-none-any.whl", hash = "sha256:8d9a83bc247b8e1fc51bcbae0fe650ae510fa67818a19a688f93ae27a9298e7d"}, @@ -7835,31 +7400,6 @@ toolz = [ {file = "toolz-0.11.2-py3-none-any.whl", hash = "sha256:a5700ce83414c64514d82d60bcda8aabfde092d1c1a8663f9200c07fdcc6da8f"}, {file = "toolz-0.11.2.tar.gz", hash = "sha256:6b312d5e15138552f1bda8a4e66c30e236c831b612b2bf0005f8a1df10a4bc33"}, ] -torch = [ - {file = "torch-1.11.0-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:62052b50fffc29ca7afc0c04ef8206b6f1ca9d10629cb543077e12967e8d0398"}, - {file = "torch-1.11.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:866bfba29ac98dec35d893d8e17eaec149d0ac7a53be7baae5c98069897db667"}, - {file = "torch-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:951640fb8db308a59d9b510e7d1ad910aff92913323bbe4bc75435347ddd346d"}, - {file = "torch-1.11.0-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:5d77b5ece78fdafa5c7f42995ff9474399d22571cd6b2de21a5d666306a2ff8c"}, - {file = "torch-1.11.0-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:b5a38682769b544c875ecc34bcb81fbad5c922139b61319aacffcfd8a32f528c"}, - {file = "torch-1.11.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:f82d77695a60626f2b7382d85bc566de8a6b3e50d32080755abc040db802e419"}, - {file = "torch-1.11.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b96654d42566080a134e784705f33f8536b3b95b5dcde357ed7879b1692a5f78"}, - {file = "torch-1.11.0-cp37-cp37m-win_amd64.whl", hash = "sha256:8ee7c2e8d7f7020d5bfbc1bb91b9591044c26bbd0cee5e4f694cfd7ed8649260"}, - {file = "torch-1.11.0-cp37-none-macosx_10_9_x86_64.whl", hash = "sha256:6860b1d1bf0bb0b67a6bd47f85a0e4c825b518eea13b5d6101999dbbcbd5bc0c"}, - {file = "torch-1.11.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:4322aa29f50da7f404db06cdf30896ea67b09f673af4a985afc7162bc897864d"}, - {file = "torch-1.11.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:e4d2e0ddd652f30e94cff750220324ec45705d4ecc69658f773b3cb1c7a28dd0"}, - {file = "torch-1.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:34ce5ea4d8d85da32cdbadb50d4585106901e9f8a3527991daa70c13a09de1f7"}, - {file = "torch-1.11.0-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:0ccc85cd06227a3edf809e2c795fd5762c3d4e8a38b5c9f744c6e7cf841361bb"}, - {file = "torch-1.11.0-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:c1554e49d74f1b2c3e7202d77056ba2dd7465437585bac64062b580f714a44e9"}, - {file = "torch-1.11.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:58c7814502b1c129a650d7092033bbb0bbd64faf1a7941631aaa1aeaddc37570"}, - {file = "torch-1.11.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:831cf588f01dda9409e75576741d2823453990dee2983d670f2584b37a01adf7"}, - {file = "torch-1.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:44a1d02fd20f827f0f36dc26fdcfc45e793806a6ad52769a22260655a77a4369"}, - {file = "torch-1.11.0-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:50fd9bf85c578c871c28f1cb0ace9dfc6024401c7f399b174fb0f370899f4454"}, - {file = "torch-1.11.0-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:0e48af66ad755f0f9c5f2664028a414f57c49d6adc37e77e06fe0004da4edb61"}, -] -torchmetrics = [ - {file = "torchmetrics-0.8.2-py3-none-any.whl", hash = "sha256:19e4ed0305b8c02fd5765a9ff9360c9c622842c2b3491e497ddbf2aec7ce9c5a"}, - {file = "torchmetrics-0.8.2.tar.gz", hash = "sha256:8cec51df230838b07e1bffe407fd98c25b8e1cdf820525a4ba6ef7f7e5ac4d89"}, -] tornado = [ {file = "tornado-6.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32"}, {file = "tornado-6.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c"}, @@ -8202,10 +7742,6 @@ wsproto = [ {file = "wsproto-1.1.0-py3-none-any.whl", hash = "sha256:2218cb57952d90b9fca325c0dcfb08c3bda93e8fd8070b0a17f048e2e47a521b"}, {file = "wsproto-1.1.0.tar.gz", hash = "sha256:a2e56bfd5c7cd83c1369d83b5feccd6d37798b74872866e62616e0ecf111bda8"}, ] -xarray = [ - {file = "xarray-2022.3.0-py3-none-any.whl", hash = "sha256:560f36eaabe7a989d5583d37ec753dd737357aa6a6453e55c80bb4f92291a69e"}, - {file = "xarray-2022.3.0.tar.gz", hash = "sha256:398344bf7d170477aaceff70210e11ebd69af6b156fe13978054d25c48729440"}, -] xlsxwriter = [ {file = "XlsxWriter-3.0.3-py3-none-any.whl", hash = "sha256:df0aefe5137478d206847eccf9f114715e42aaea077e6a48d0e8a2152e983010"}, {file = "XlsxWriter-3.0.3.tar.gz", hash = "sha256:e89f4a1d2fa2c9ea15cde77de95cd3fd8b0345d0efb3964623f395c8c4988b7f"}, diff --git a/pyproject.toml b/pyproject.toml index 17d5dde217ff..efa3cca4e7dd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,6 +14,7 @@ openbb = 'terminal:terminal' [tool.poetry.dependencies] python = "^3.8,<3.10" iso8601 = "^0.1.14" +FundamentalAnalysis = "^0.2.6" requests = "^2.25.1" alpha-vantage = "^2.3.1" finviz = "^1.3.4" @@ -101,9 +102,6 @@ Jinja2 = "3.0.3" # Remove pinned version when Voila supports 3.1 click = "8.0.1" # Remove pinned version when Black supports 8.1 kaleido = {version = "<=0.2.1", optional = true, extras = ["bots"]} Riskfolio-Lib = "^3.1.1" -fundamentalanalysis = "^0.2.14" -torch = {version = "^1.11.0", extras = ["prediction"]} -darts = {version = "^0.19.0", extras = ["prediction"]} [tool.poetry.dev-dependencies] diff --git a/requirements-full.txt b/requirements-full.txt index 275346acac7e..c86f5ab5af5f 100644 --- a/requirements-full.txt +++ b/requirements-full.txt @@ -1,5 +1,5 @@ absl-py==1.0.0; python_version >= "3.6" -aiohttp==3.8.1; python_version >= "3.7" +aiohttp==3.8.1; python_version >= "3.6" aiosignal==1.2.0; python_version >= "3.6" alabaster==0.7.12; python_version >= "3.6" alpha-vantage==2.3.1 @@ -35,9 +35,8 @@ cffi==1.15.0; python_version >= "3.7" cfgv==3.3.1; python_full_version >= "3.6.1" and python_version >= "3.7" charset-normalizer==2.0.12; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4.0" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") click==8.0.1; python_version >= "3.6" -cmdstanpy==0.9.68; python_version >= "3.7" codespell==2.1.0; python_version >= "3.5" -colorama==0.4.4; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and platform_system == "Windows" and python_version >= "3.8" and (python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.5.0") and sys_platform == "win32" and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.5.0") and (python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.5.0") +colorama==0.4.4; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and platform_system == "Windows" and python_version >= "3.8" and (python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.5.0") and sys_platform == "win32" and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.5.0") and (python_version >= "3.6" and python_full_version < "3.0.0" and platform_system == "Windows" or python_full_version >= "3.5.0" and platform_system == "Windows" and python_version >= "3.6") and (python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.5.0") commonmark==0.9.1; python_full_version >= "3.6.2" and python_full_version < "4.0.0" convertdate==2.4.0; python_version >= "3.7" and python_version < "4" coverage==6.3.2; python_version >= "3.7" @@ -46,7 +45,6 @@ cssselect==1.1.0; python_version >= "2.7" and python_full_version < "3.0.0" or p cvxpy==1.2.0; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.7" cycler==0.11.0; python_version >= "3.7" cython==0.29.28; python_version >= "3.8" and python_full_version < "3.0.0" and sys_platform == "darwin" or python_full_version >= "3.3.0" and sys_platform == "darwin" and python_version >= "3.8" -darts==0.19.0; python_version >= "3.7" dateparser==1.1.1; python_version >= "3.5" datetime==4.4; python_version >= "3.5" debugpy==1.6.0; python_version >= "3.7" @@ -61,7 +59,6 @@ dnspython==2.2.1; python_version >= "3.6" and python_version < "4.0" docutils==0.16; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" ecos==2.0.10; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.7" entrypoints==0.4; python_full_version >= "3.7.0" and python_version >= "3.7" -ephem==4.1.3; python_version >= "3.7" and python_version < "4" et-xmlfile==1.1.0; python_version >= "3.6" exchange-calendars==3.6.1; python_version >= "3.7" and python_full_version >= "3.7.0" executing==0.8.3; python_full_version >= "3.6.2" and python_version >= "3.8" @@ -80,8 +77,7 @@ fred==3.1 fredapi==0.4.3 frozendict==2.3.2; python_version >= "3.6" frozenlist==1.3.0; python_version >= "3.7" -fsspec==2022.5.0; python_version >= "3.7" -fundamentalanalysis==0.2.14 +fundamentalanalysis==0.2.12 future==0.18.2; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" gast==0.5.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" gitdb==4.0.9; python_version >= "3.7" @@ -92,7 +88,7 @@ google-pasta==0.2.0 grpcio==1.45.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.6" h11==0.13.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" h5py==3.6.0; python_version >= "3.7" -hijri-converter==2.2.3; python_version >= "3.7" +hijri-converter==2.2.3; python_version >= "3.6" holidays==0.11.3.1; python_version >= "3.6" identify==2.4.12; python_version >= "3.7" idna==3.3; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") @@ -129,10 +125,7 @@ kiwisolver==1.4.2; python_version >= "3.7" korean-lunar-calendar==0.2.1; python_version >= "3.7" and python_full_version >= "3.7.0" lazy-object-proxy==1.7.1; python_version >= "3.6" and python_full_version >= "3.6.2" libclang==11.1.0 -lightgbm==3.3.2; python_version >= "3.7" linearmodels==4.26; python_version >= "3.8" -llvmlite==0.38.1; python_version >= "3.7" and python_version < "3.11" -lunarcalendar==0.0.9; python_version >= "3.7" and python_version < "4" lxml==4.8.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" markdown-it-py==1.1.0; python_version >= "3.6" and python_version < "4.0" markdown==3.3.6; python_version >= "3.6" @@ -156,11 +149,9 @@ nbconvert==6.5.0; python_version >= "3.7" nbformat==5.3.0; python_full_version >= "3.7.0" and python_version >= "3.7" nest-asyncio==1.5.5; python_full_version >= "3.7.0" and python_version >= "3.7" networkx==2.8; python_version >= "3.8" -nfoursid==1.0.0; python_version >= "3.7" nodeenv==1.6.0; python_version >= "3.7" notebook-shim==0.1.0; python_version >= "3.7" notebook==6.4.11; python_version >= "3.7" -numba==0.55.1; python_version >= "3.7" and python_version < "3.11" numpy==1.21.2; python_version >= "3.7" and python_version < "3.11" oandapyv20==0.6.3 oauthlib==3.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" @@ -193,7 +184,6 @@ pre-commit==2.18.1; python_version >= "3.7" prometheus-client==0.14.1; python_version >= "3.7" prompt-toolkit==3.0.29; python_full_version >= "3.6.2" property-cached==1.6.4; python_version >= "3.8" -prophet==1.0.1; python_version >= "3.7" protobuf==3.20.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.7" psaw==0.0.12; python_version >= "3" psutil==5.9.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" @@ -206,7 +196,6 @@ pyasn1==0.4.8; python_version >= "3.6" and python_full_version < "3.0.0" and pyt pycodestyle==2.7.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" pycoingecko==2.2.0 pycparser==2.21; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" -pydeprecate==0.3.2; python_version >= "3.7" pyerfa==2.0.0.1; python_version >= "3.8" pyex==0.5.0 pyflakes==2.3.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" @@ -225,19 +214,17 @@ pyportfolioopt==1.5.2; python_full_version >= "3.6.1" and python_full_version < pyprind==2.11.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" pyrsistent==0.18.1; python_version >= "3.7" pysocks==1.7.1; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "3.7" -pystan==2.19.1.1; python_version >= "3.7" pytest-cov==3.0.0; python_version >= "3.6" pytest-mock==3.7.0; python_version >= "3.7" pytest-recording==0.12.0; python_version >= "3.5" pytest==6.2.5; python_version >= "3.6" python-binance==1.0.16 python-coinmarketcap==0.2 -python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") and (python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4" or python_version >= "3.7" and python_version < "4" and python_full_version >= "3.3.0") +python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") python-dotenv==0.19.2; python_version >= "3.5" -pytorch-lightning==1.6.3; python_version >= "3.7" pytrends==4.8.0 pytz-deprecation-shim==0.1.0.post0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" -pytz==2022.1; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and python_version < "4" +pytz==2022.1; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" pyupgrade==2.32.0; python_version >= "3.7" pywin32==303; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.7" and python_full_version >= "3.7.0" pywinpty==2.0.5; os_name == "nt" and python_version >= "3.7" @@ -264,7 +251,6 @@ seaborn==0.11.2; python_version >= "3.6" selenium==4.1.3; python_version >= "3.7" and python_version < "4.0" send2trash==1.8.0; python_version >= "3.7" sentiment-investor==2.1.0; python_version >= "3.8" and python_version < "4.0" -setuptools-git==1.2; python_version >= "3.7" setuptools-scm==6.4.2; python_version >= "3.8" six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.8") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") smmap==5.0.0; python_version >= "3.7" @@ -283,16 +269,14 @@ sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.6" squarify==0.4.3 sseclient==0.0.27 stack-data==0.2.0; python_full_version >= "3.6.2" and python_version >= "3.8" -statsforecast==0.5.5; python_version >= "3.7" statsmodels==0.13.2; python_version >= "3.7" stevedore==3.5.0; python_version >= "3.7" tabulate==0.8.9; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" -tbats==1.1.0; python_version >= "3.7" temporal-cache==0.1.4 tenacity==8.0.1; python_version >= "3.6" tensorboard-data-server==0.6.1; python_version >= "3.6" tensorboard-plugin-wit==1.8.1; python_version >= "3.6" -tensorboard==2.8.0; python_version >= "3.7" +tensorboard==2.8.0; python_version >= "3.6" tensorflow-io-gcs-filesystem==0.25.0; python_version >= "3.7" and python_version < "3.11" tensorflow==2.8.0 termcolor==1.1.0 @@ -306,10 +290,8 @@ tokenize-rt==4.2.1; python_full_version >= "3.6.2" and python_version >= "3.7" toml==0.10.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7" tomli==2.0.1; python_version >= "3.8" and python_full_version >= "3.6.2" and python_version < "3.11" toolz==0.11.2; python_version >= "3.7" and python_full_version >= "3.7.0" -torch==1.11.0; python_full_version >= "3.7.0" -torchmetrics==0.8.2; python_version >= "3.7" tornado==6.1; python_full_version >= "3.7.0" and python_version >= "3.7" -tqdm==4.64.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +tqdm==4.64.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" tradingview-ta==3.2.10; python_version >= "3.6" traitlets==5.1.1; python_full_version >= "3.7.0" and python_version >= "3.8" trio-websocket==0.9.2; python_version >= "3.7" and python_version < "4.0" @@ -321,13 +303,13 @@ types-requests==2.27.20 types-setuptools==57.4.14 types-six==1.16.15 types-urllib3==1.26.13 -typing-extensions==4.2.0; python_version < "3.10" and python_full_version >= "3.7.0" and python_version >= "3.7" +typing-extensions==4.2.0; python_version < "3.10" and python_full_version >= "3.6.2" and python_version >= "3.7" tzdata==2022.1; platform_system == "Windows" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") tzlocal==4.2; python_version >= "3.6" ujson==5.2.0; python_version >= "3.7" unidecode==1.3.4; python_version >= "3.7" update-checker==0.18.0; python_version >= "3.6" and python_version < "4.0" -urllib3==1.26.9; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version < "4" and python_version >= "3.7") +urllib3==1.26.9; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") user-agent==0.1.10 vadersentiment==3.3.2 valinvest==0.0.2; python_version >= "3.6" @@ -342,7 +324,6 @@ werkzeug==2.1.1; python_version >= "3.7" widgetsnbextension==3.6.0 wrapt==1.14.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and python_version >= "3.8" wsproto==1.1.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" -xarray==2022.3.0; python_version >= "3.8" xlsxwriter==3.0.3; python_version >= "3.7" yarl==1.7.2; python_version >= "3.6" yfinance==0.1.70 diff --git a/requirements.txt b/requirements.txt index 7f122ec7217e..80d7b47ce459 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ -absl-py==1.0.0; python_version >= "3.7" -aiohttp==3.8.1; python_version >= "3.7" +aiohttp==3.8.1; python_version >= "3.6" aiosignal==1.2.0; python_version >= "3.6" +alabaster==0.7.12; python_version >= "3.6" alpha-vantage==2.3.1 ansiwrap==0.8.4; python_version >= "3.6" anyio==3.5.0; python_full_version >= "3.6.2" and python_version >= "3.7" @@ -10,35 +10,38 @@ argon2-cffi-bindings==21.2.0; python_version >= "3.7" argon2-cffi==21.3.0; python_version >= "3.7" ascii-magic==1.6; python_version >= "3.5" astor==0.7.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" +astroid==2.11.3; python_full_version >= "3.6.2" astropy==5.0.4; python_version >= "3.8" asttokens==2.0.5; python_full_version >= "3.6.2" and python_version >= "3.8" async-generator==1.10; python_version >= "3.7" and python_version < "4.0" async-timeout==4.0.2; python_version >= "3.6" +atomicwrites==1.4.0; python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.4.0" attrs==21.4.0; python_full_version >= "3.7.0" and python_version >= "3.7" and python_version < "4.0" and (python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.5.0") babel==2.10.1; python_version >= "3.7" backcall==0.2.0; python_full_version >= "3.6.2" and python_version >= "3.8" backports.zoneinfo==0.2.1; python_version < "3.9" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") +bandit==1.7.4; python_version >= "3.7" beartype==0.7.1; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.6.0" beautifulsoup4==4.11.1; python_full_version >= "3.6.0" and python_version >= "3.7" black==22.1.0; python_full_version >= "3.6.2" bleach==5.0.0; python_version >= "3.7" bs4==0.0.1 bt==0.2.9; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") -cachetools==5.0.0; python_version >= "3.7" and python_version < "4.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") -certifi==2021.10.8; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") +certifi==2021.10.8; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") cffi==1.15.0; python_version >= "3.7" -charset-normalizer==2.0.12; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4.0" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") +cfgv==3.3.1; python_full_version >= "3.6.1" and python_version >= "3.7" +charset-normalizer==2.0.12; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4.0" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") click==8.0.1; python_version >= "3.6" -cmdstanpy==0.9.68; python_version >= "3.7" -colorama==0.4.4; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and platform_system == "Windows" and python_version >= "3.8" and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or python_full_version >= "3.5.0" and platform_system == "Windows" and python_version >= "3.7") and sys_platform == "win32" +codespell==2.1.0; python_version >= "3.5" +colorama==0.4.4; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and platform_system == "Windows" and python_version >= "3.8" and (python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.5.0") and sys_platform == "win32" and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.5.0") and (python_version >= "3.6" and python_full_version < "3.0.0" and platform_system == "Windows" or python_full_version >= "3.5.0" and platform_system == "Windows" and python_version >= "3.6") and (python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.5.0") commonmark==0.9.1; python_full_version >= "3.6.2" and python_full_version < "4.0.0" convertdate==2.4.0; python_version >= "3.7" and python_version < "4" +coverage==6.3.2; python_version >= "3.7" cryptography==36.0.2; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "3.7" cssselect==1.1.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" cvxpy==1.2.0; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.7" cycler==0.11.0; python_version >= "3.7" cython==0.29.28; python_version >= "3.8" and python_full_version < "3.0.0" and sys_platform == "darwin" or python_full_version >= "3.3.0" and sys_platform == "darwin" and python_version >= "3.8" -darts==0.19.0; python_version >= "3.7" dateparser==1.1.1; python_version >= "3.5" datetime==4.4; python_version >= "3.5" debugpy==1.6.0; python_version >= "3.7" @@ -47,39 +50,43 @@ defusedxml==0.7.1; python_version >= "3.7" and python_full_version < "3.0.0" or degiro-connector==2.0.19; python_full_version >= "3.7.1" and python_full_version < "4.0.0" deprecation==2.1.0 detecta==0.0.5; python_version >= "3.6" +dill==0.3.4; python_full_version >= "3.6.2" +distlib==0.3.4; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" dnspython==2.2.1; python_version >= "3.6" and python_version < "4.0" +docutils==0.16; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" ecos==2.0.10; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.7" entrypoints==0.4; python_full_version >= "3.7.0" and python_version >= "3.7" -ephem==4.1.3; python_version >= "3.7" and python_version < "4" et-xmlfile==1.1.0; python_version >= "3.6" exchange-calendars==3.6.1; python_version >= "3.7" and python_full_version >= "3.7.0" executing==0.8.3; python_full_version >= "3.6.2" and python_version >= "3.8" fastjsonschema==2.15.3; python_full_version >= "3.7.0" and python_version >= "3.7" ffn==0.3.6; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" +filelock==3.6.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" financedatabase==1.0.2 finnhub-python==2.4.13 finviz==1.4.4 finvizfinance==0.14.0; python_version >= "3.5" +flake8==3.9.2; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.5.0") fonttools==4.33.3; python_version >= "3.7" formulaic==0.3.3; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" fred==3.1 fredapi==0.4.3 frozendict==2.3.2; python_version >= "3.6" frozenlist==1.3.0; python_version >= "3.7" -fsspec==2022.5.0; python_version >= "3.7" -fundamentalanalysis==0.2.14 +fundamentalanalysis==0.2.12 future==0.18.2; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" gitdb==4.0.9; python_version >= "3.7" gitpython==3.1.27; python_version >= "3.7" -google-auth-oauthlib==0.4.6; python_version >= "3.7" -google-auth==2.6.6; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" -grpcio==1.45.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.7" +grpcio==1.45.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.6" h11==0.13.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" -hijri-converter==2.2.3; python_version >= "3.7" +hijri-converter==2.2.3; python_version >= "3.6" holidays==0.11.3.1; python_version >= "3.6" -idna==3.3; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") +identify==2.4.12; python_version >= "3.7" +idna==3.3; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") +imagesize==1.3.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" importlib-metadata==4.11.3; python_version < "3.10" and python_version >= "3.7" inflection==0.5.1; python_version >= "3.6" +iniconfig==1.1.1; python_version >= "3.7" interface-meta==1.3.0; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.1" and python_full_version < "4.0.0" investpy==1.0.8; python_version >= "3.7" ipykernel==6.13.0; python_version >= "3.7" @@ -88,6 +95,7 @@ ipython-genutils==0.2.0; python_version >= "3.7" ipython==8.2.0; python_full_version >= "3.6.2" and python_version >= "3.8" ipywidgets==7.7.0 iso8601==0.1.16 +isort==5.10.1; python_full_version >= "3.6.2" and python_version < "4.0" jedi==0.18.1; python_full_version >= "3.6.2" and python_version >= "3.8" jinja2==3.0.3; python_version >= "3.6" joblib==1.1.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" @@ -104,32 +112,33 @@ jupyterlab-widgets==1.1.0; python_version >= "3.6" jupyterlab==3.3.4; python_version >= "3.7" kiwisolver==1.4.2; python_version >= "3.7" korean-lunar-calendar==0.2.1; python_version >= "3.7" and python_full_version >= "3.7.0" -lightgbm==3.3.2; python_version >= "3.7" +lazy-object-proxy==1.7.1; python_version >= "3.6" and python_full_version >= "3.6.2" linearmodels==4.26; python_version >= "3.8" -llvmlite==0.38.1; python_version >= "3.7" and python_version < "3.11" -lunarcalendar==0.0.9; python_version >= "3.7" and python_version < "4" lxml==4.8.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" -markdown==3.3.6; python_version >= "3.7" +markdown-it-py==1.1.0; python_version >= "3.6" and python_version < "4.0" markupsafe==2.1.1; python_version >= "3.7" matplotlib-inline==0.1.3; python_full_version >= "3.6.2" and python_version >= "3.8" matplotlib==3.5.1; python_version >= "3.7" +mccabe==0.6.1; python_full_version >= "3.6.2" +mdit-py-plugins==0.2.8; python_version >= "3.6" and python_version < "4.0" mistune==0.8.4; python_version >= "3.7" +mock==4.0.3; python_version >= "3.6" more-itertools==8.12.0; python_version >= "3.6" mplfinance==0.12.8b9 multidict==6.0.2; python_version >= "3.7" multitasking==0.0.10 mypy-extensions==0.4.3; python_version >= "3.8" and python_full_version >= "3.6.2" mypy==0.930; python_version >= "3.6" +myst-parser==0.15.2; python_version >= "3.6" nbclassic==0.3.7; python_version >= "3.7" nbclient==0.5.13; python_full_version >= "3.7.0" and python_version >= "3.7" nbconvert==6.5.0; python_version >= "3.7" nbformat==5.3.0; python_full_version >= "3.7.0" and python_version >= "3.7" nest-asyncio==1.5.5; python_full_version >= "3.7.0" and python_version >= "3.7" networkx==2.8; python_version >= "3.8" -nfoursid==1.0.0; python_version >= "3.7" +nodeenv==1.6.0; python_version >= "3.7" notebook-shim==0.1.0; python_version >= "3.7" notebook==6.4.11; python_version >= "3.7" -numba==0.55.1; python_version >= "3.7" and python_version < "3.11" numpy==1.21.2; python_version >= "3.7" and python_version < "3.11" oandapyv20==0.6.3 oauthlib==3.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" @@ -147,34 +156,36 @@ papermill==2.3.4; python_version >= "3.6" parso==0.8.3; python_full_version >= "3.6.2" and python_version >= "3.8" pathspec==0.9.0; python_full_version >= "3.6.2" patsy==0.5.2; python_version >= "3.8" +pbr==5.8.1; python_version >= "3.7" pexpect==4.8.0; sys_platform != "win32" and python_version >= "3.8" and python_full_version >= "3.6.2" pickleshare==0.7.5; python_full_version >= "3.6.2" and python_version >= "3.8" pillow==9.1.0; python_version >= "3.7" and python_version < "4" -platformdirs==2.5.2; python_version >= "3.7" and python_full_version >= "3.6.2" +platformdirs==2.5.2; python_version >= "3.7" and python_full_version >= "3.6.2" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") plotly==5.7.0; python_version >= "3.6" +pluggy==1.0.0; python_version >= "3.7" pmdarima==1.8.5; python_version >= "3.7" praw==7.5.0; python_version >= "3.6" and python_version < "4.0" prawcore==2.3.0; python_version >= "3.6" and python_version < "4.0" +pre-commit==2.18.1; python_version >= "3.7" prometheus-client==0.14.1; python_version >= "3.7" prompt-toolkit==3.0.29; python_full_version >= "3.6.2" property-cached==1.6.4; python_version >= "3.8" -prophet==1.0.1; python_version >= "3.7" protobuf==3.20.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.7" psaw==0.0.12; python_version >= "3" psutil==5.9.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" ptyprocess==0.7.0; os_name != "nt" and python_version >= "3.8" and sys_platform != "win32" and python_full_version >= "3.6.2" pure-eval==0.2.2; python_full_version >= "3.6.2" and python_version >= "3.8" -py==1.11.0; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.7.0" +py==1.11.0; python_full_version >= "3.7.0" and python_version >= "3.7" and implementation_name == "pypy" pyally==1.1.2 -pyasn1-modules==0.2.8; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" -pyasn1==0.4.8; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") or python_full_version >= "3.6.0" and python_version >= "3.7" and python_version < "4" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") +pycodestyle==2.7.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" pycoingecko==2.2.0 pycparser==2.21; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" -pydeprecate==0.3.2; python_version >= "3.7" pyerfa==2.0.0.1; python_version >= "3.8" pyex==0.5.0 +pyflakes==2.3.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" pygments==2.12.0; python_version >= "3.6" pyhdfe==0.1.0; python_version >= "3.8" +pylint==2.13.7; python_full_version >= "3.6.2" pyluach==1.4.1; python_version >= "3.7" and python_full_version >= "3.7.0" pymeeus==0.5.11; python_version >= "3.7" and python_version < "4" pymongo==3.11.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") @@ -187,15 +198,18 @@ pyportfolioopt==1.5.2; python_full_version >= "3.6.1" and python_full_version < pyprind==2.11.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" pyrsistent==0.18.1; python_version >= "3.7" pysocks==1.7.1; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "3.7" -pystan==2.19.1.1; python_version >= "3.7" +pytest-cov==3.0.0; python_version >= "3.6" +pytest-mock==3.7.0; python_version >= "3.7" +pytest-recording==0.12.0; python_version >= "3.5" +pytest==6.2.5; python_version >= "3.6" python-binance==1.0.16 python-coinmarketcap==0.2 -python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") and (python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4" or python_version >= "3.7" and python_version < "4" and python_full_version >= "3.3.0") +python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") python-dotenv==0.19.2; python_version >= "3.5" -pytorch-lightning==1.6.3; python_version >= "3.7" pytrends==4.8.0 pytz-deprecation-shim==0.1.0.post0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" -pytz==2022.1; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and python_version < "4" +pytz==2022.1; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" +pyupgrade==2.32.0; python_version >= "3.7" pywin32==303; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.7" and python_full_version >= "3.7.0" pywinpty==2.0.5; os_name == "nt" and python_version >= "3.7" pyyaml==6.0; python_version >= "3.8" @@ -207,12 +221,11 @@ quandl==3.7.0; python_version >= "3.6" rapidfuzz==1.9.1; python_version >= "2.7" regex==2022.3.2; python_version >= "3.6" reportlab==3.6.9; python_version >= "3.7" and python_version < "4" -requests-oauthlib==1.3.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +requests-oauthlib==1.3.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" requests==2.27.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") rich==10.16.2; python_full_version >= "3.6.2" and python_full_version < "4.0.0" riskfolio-lib==3.1.1; python_version >= "3.7" robin-stocks==2.1.0; python_version >= "3" -rsa==4.8; python_version >= "3.6" and python_version < "4" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") scikit-learn==1.0.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" scipy==1.8.0; python_version >= "3.8" and python_version < "3.11" and python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") screeninfo==0.6.7 @@ -221,61 +234,71 @@ seaborn==0.11.2; python_version >= "3.6" selenium==4.1.3; python_version >= "3.7" and python_version < "4.0" send2trash==1.8.0; python_version >= "3.7" sentiment-investor==2.1.0; python_version >= "3.8" and python_version < "4.0" -setuptools-git==1.2; python_version >= "3.7" setuptools-scm==6.4.2; python_version >= "3.8" -six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.8") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") +six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.8") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") smmap==5.0.0; python_version >= "3.7" sniffio==1.2.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.6.2" +snowballstemmer==2.2.0; python_version >= "3.6" socketio-client-nexus==0.7.6 sortedcontainers==2.4.0; python_version >= "3.7" and python_version < "4.0" soupsieve==2.3.2.post1; python_version >= "3.6" and python_full_version >= "3.6.0" +sphinx==4.1.1; python_version >= "3.6" +sphinxcontrib-applehelp==1.0.2; python_version >= "3.6" +sphinxcontrib-devhelp==1.0.2; python_version >= "3.6" +sphinxcontrib-htmlhelp==2.0.0; python_version >= "3.6" +sphinxcontrib-jsmath==1.0.1; python_version >= "3.6" +sphinxcontrib-qthelp==1.0.3; python_version >= "3.6" +sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.6" squarify==0.4.3 sseclient==0.0.27 stack-data==0.2.0; python_full_version >= "3.6.2" and python_version >= "3.8" -statsforecast==0.5.5; python_version >= "3.7" statsmodels==0.13.2; python_version >= "3.7" +stevedore==3.5.0; python_version >= "3.7" tabulate==0.8.9; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" -tbats==1.1.0; python_version >= "3.7" temporal-cache==0.1.4 tenacity==8.0.1; python_version >= "3.6" -tensorboard-data-server==0.6.1; python_version >= "3.7" -tensorboard-plugin-wit==1.8.1; python_version >= "3.7" -tensorboard==2.8.0; python_version >= "3.7" terminado==0.13.3; python_version >= "3.7" textwrap3==0.9.2; python_version >= "3.6" thepassiveinvestor==1.0.10 threadpoolctl==3.1.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" tinycss2==1.1.1; python_version >= "3.7" -tomli==2.0.1; python_version >= "3.8" and python_full_version >= "3.6.2" +tokenize-rt==4.2.1; python_full_version >= "3.6.2" and python_version >= "3.7" +toml==0.10.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7" +tomli==2.0.1; python_version >= "3.8" and python_full_version >= "3.6.2" and python_version < "3.11" toolz==0.11.2; python_version >= "3.7" and python_full_version >= "3.7.0" -torch==1.11.0; python_full_version >= "3.7.0" -torchmetrics==0.8.2; python_version >= "3.7" tornado==6.1; python_full_version >= "3.7.0" and python_version >= "3.7" -tqdm==4.64.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +tqdm==4.64.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" tradingview-ta==3.2.10; python_version >= "3.6" traitlets==5.1.1; python_full_version >= "3.7.0" and python_version >= "3.8" trio-websocket==0.9.2; python_version >= "3.7" and python_version < "4.0" trio==0.20.0; python_version >= "3.7" and python_version < "4.0" -typing-extensions==4.2.0; python_version < "3.10" and python_full_version >= "3.7.0" and python_version >= "3.7" +types-python-dateutil==2.8.12 +types-pytz==2021.3.6 +types-pyyaml==6.0.7 +types-requests==2.27.20 +types-setuptools==57.4.14 +types-six==1.16.15 +types-urllib3==1.26.13 +typing-extensions==4.2.0; python_version < "3.10" and python_full_version >= "3.6.2" and python_version >= "3.7" tzdata==2022.1; platform_system == "Windows" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") tzlocal==4.2; python_version >= "3.6" ujson==5.2.0; python_version >= "3.7" unidecode==1.3.4; python_version >= "3.7" update-checker==0.18.0; python_version >= "3.6" and python_version < "4.0" -urllib3==1.26.9; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version < "4" and python_version >= "3.7") +urllib3==1.26.9; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") user-agent==0.1.10 vadersentiment==3.3.2 valinvest==0.0.2; python_version >= "3.6" +vcrpy==4.1.1; python_version >= "3.5" +virtualenv==20.14.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" voila==0.3.5; python_version >= "3.7" wcwidth==0.2.5; python_full_version >= "3.6.2" and python_version >= "3.8" webencodings==0.5.1; python_version >= "3.7" websocket-client==1.3.2; python_version >= "3.8" and python_version < "4.0" websockets==10.3; python_version >= "3.7" -werkzeug==2.1.1; python_version >= "3.7" widgetsnbextension==3.6.0 -wrapt==1.14.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" +wrapt==1.14.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and python_version >= "3.8" wsproto==1.1.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" -xarray==2022.3.0; python_version >= "3.8" xlsxwriter==3.0.3; python_version >= "3.7" yarl==1.7.2; python_version >= "3.6" yfinance==0.1.70 From 6beb2b6557845a7d43a931d89f7cac24d3580d6e Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Sat, 21 May 2022 16:16:32 -0400 Subject: [PATCH 21/34] minor mod and removal of space --- openbb_terminal/common/prediction_techniques/expo_model.py | 2 +- openbb_terminal/common/prediction_techniques/pred_helper.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index 6be1e6377106..e784278c1089 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -118,7 +118,7 @@ def get_expo_data( ) # Show forecast over validation # and then +n_predict afterwards sampled 10 times per point - probabilistic_forecast = model_es.predict(n_predict, num_samples=10) + probabilistic_forecast = model_es.predict(n_predict, num_samples=500) precision = mape(val, probabilistic_forecast) # mape = mean average precision error console.print(f"model {model_es} obtains MAPE: {precision:.2f}% \n") # TODO diff --git a/openbb_terminal/common/prediction_techniques/pred_helper.py b/openbb_terminal/common/prediction_techniques/pred_helper.py index 1dc3a84d60ac..cd31e83a8105 100644 --- a/openbb_terminal/common/prediction_techniques/pred_helper.py +++ b/openbb_terminal/common/prediction_techniques/pred_helper.py @@ -557,7 +557,6 @@ def lambda_price_prediction_color(val: float, last_val: float) -> str: def print_pretty_prediction(df_pred: pd.DataFrame, last_price: float): """Print predictions""" - console.print("") if rich_config.USE_COLOR: df_pred = pd.DataFrame(df_pred) df_pred.columns = ["pred"] From 5f5c6187ae54657fac719fabd3dbffbd6d819a95 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Sat, 21 May 2022 16:36:41 -0400 Subject: [PATCH 22/34] Update readme for forecasting --- openbb_terminal/README.md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/openbb_terminal/README.md b/openbb_terminal/README.md index 87a7f9d64611..9855e7cafda3 100644 --- a/openbb_terminal/README.md +++ b/openbb_terminal/README.md @@ -186,17 +186,41 @@ Several features in this project utilize Machine Learning. Machine Learning Pyth To enable the `prediction` menu install additional dependencies after installing main dependencies: - - On M1 mac + - On Intel mac ```bash conda install -c conda-forge tensorflow==2.7.0 + conda install -c conda-forge -c pytorch u8darts-torch poetry install -E prediction ``` + - On M1 mac (make sure you are using miniconda3 or miniforge3) + + ```bash + brew install cmake + brew install gcc + conda install -c conda-forge tensorflow==2.7.0 + conda install -c apple tensorflow-deps + conda install -c apple tensorflow-deps==2.8.0 + python -m pip install tensorflow-metal + conda update pip + conda update -c defaults numpy + export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1 + export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1 + wget https://raw.githubusercontent.com/Homebrew/homebrew-core/fb8323f2b170bd4ae97e1bac9bf3e2983af3fdb0/Formula/libomp.rb + brew unlink libomp + brew install libomp.rb + pip3 install -r requirements.txt + conda install -c conda-forge tensorflow==2.8.0 + conda install -c conda-forge -c pytorch u8darts-torch + python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))" + ``` - On all other systems ```bash poetry install -E prediction + conda install -c conda-forge -c pytorch u8darts-torch + ``` If you are having trouble with Poetry (e.g. on a Windows system), simply install requirements.txt with pip From 0b0f4b9146eb1a42d984a2a37e71758e86ddd435 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Sat, 21 May 2022 16:41:40 -0400 Subject: [PATCH 23/34] removal of old TF version --- openbb_terminal/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/openbb_terminal/README.md b/openbb_terminal/README.md index 9855e7cafda3..9c4163babdb4 100644 --- a/openbb_terminal/README.md +++ b/openbb_terminal/README.md @@ -198,7 +198,6 @@ Several features in this project utilize Machine Learning. Machine Learning Pyth ```bash brew install cmake brew install gcc - conda install -c conda-forge tensorflow==2.7.0 conda install -c apple tensorflow-deps conda install -c apple tensorflow-deps==2.8.0 python -m pip install tensorflow-metal From adfaedc9f0d2bc28e8dd892cbf8d9695e5bd4ac8 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Mon, 23 May 2022 15:47:20 -0400 Subject: [PATCH 24/34] reqs and poetry --- poetry.lock | 156 +++++++++++++++++++++++++++++++++++++++++- pyproject.toml | 3 + requirements-full.txt | 16 +++-- requirements.txt | 88 ++++++------------------ 4 files changed, 191 insertions(+), 72 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1912800b0089..49196da57391 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1768,6 +1768,22 @@ category = "main" optional = true python-versions = "*" +[[package]] +name = "lightgbm" +version = "3.3.2" +description = "LightGBM Python Package" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +numpy = "*" +scikit-learn = "!=0.22.0" +scipy = "*" + +[package.extras] +dask = ["dask[array] (>=2.0.0)", "dask[dataframe] (>=2.0.0)", "dask[distributed] (>=2.0.0)", "pandas"] + [[package]] name = "linearmodels" version = "4.26" @@ -2140,6 +2156,19 @@ doc = ["sphinx (>=4.5)", "pydata-sphinx-theme (>=0.8.1)", "sphinx-gallery (>=0.1 extra = ["lxml (>=4.6)", "pygraphviz (>=1.9)", "pydot (>=1.4.2)", "sympy (>=1.10)"] test = ["pytest (>=7.1)", "pytest-cov (>=3.0)", "codecov (>=2.1)"] +[[package]] +name = "nfoursid" +version = "1.0.0" +description = "Implementation of N4SID, Kalman filtering and state-space models" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +matplotlib = ">=3.3" +numpy = ">=1.19" +pandas = ">=1.1" + [[package]] name = "nodeenv" version = "1.6.0" @@ -3839,6 +3868,24 @@ anyio = ">=3.0.0,<4" [package.extras] full = ["itsdangerous", "jinja2", "python-multipart", "pyyaml", "requests"] +[[package]] +name = "statsforecast" +version = "0.5.5" +description = "Time series forecasting suite using statistical models" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +numba = "*" +numpy = "*" +pandas = "*" +scipy = "*" +statsmodels = "*" + +[package.extras] +ray = ["ray"] + [[package]] name = "statsmodels" version = "0.13.2" @@ -4092,6 +4139,17 @@ category = "main" optional = false python-versions = ">=3.5" +[[package]] +name = "torch" +version = "1.11.0" +description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" +category = "main" +optional = false +python-versions = ">=3.7.0" + +[package.dependencies] +typing-extensions = "*" + [[package]] name = "tornado" version = "6.1" @@ -4273,6 +4331,37 @@ tzdata = {version = "*", markers = "platform_system == \"Windows\""} devenv = ["black", "pyroma", "pytest-cov", "zest.releaser"] test = ["pytest-mock (>=3.3)", "pytest (>=4.3)"] +[[package]] +name = "u8darts" +version = "0.19.0" +description = "A python library for easy manipulation and forecasting of time series." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +holidays = ">=0.11.1" +ipython = ">=7.0.0" +joblib = ">=0.16.0" +lightgbm = ">=2.2.3" +matplotlib = ">=3.3.0" +nfoursid = ">=1.0.0" +numpy = ">=1.19.0" +pandas = ">=1.0.5" +requests = ">=2.22.0" +scikit-learn = ">=1.0.1" +scipy = ">=1.3.2" +statsforecast = ">=0.5.2" +statsmodels = ">=0.13.0" +tqdm = ">=4.60.0" +xarray = ">=0.17.0" + +[package.extras] +all = ["holidays (>=0.11.1)", "ipython (>=7.0.0)", "joblib (>=0.16.0)", "lightgbm (>=2.2.3)", "matplotlib (>=3.3.0)", "nfoursid (>=1.0.0)", "numpy (>=1.19.0)", "pandas (>=1.0.5)", "requests (>=2.22.0)", "scikit-learn (>=1.0.1)", "scipy (>=1.3.2)", "statsforecast (>=0.5.2)", "statsmodels (>=0.13.0)", "tqdm (>=4.60.0)", "xarray (>=0.17.0)", "pmdarima (>=1.8.0)", "tbats (>=1.1.0)", "pytorch-lightning (>=1.5.0)", "torch (>=1.8.0)", "prophet (>=1.0.0)", "pystan (>=2.19.1.1,<3.0.0.0)"] +pmdarima = ["pmdarima (>=1.8.0)", "tbats (>=1.1.0)"] +prophet = ["prophet (>=1.0.0)", "pystan (>=2.19.1.1,<3.0.0.0)"] +torch = ["pytorch-lightning (>=1.5.0)", "torch (>=1.8.0)"] + [[package]] name = "ujson" version = "5.2.0" @@ -4516,6 +4605,27 @@ python-versions = ">=3.7.0" [package.dependencies] h11 = ">=0.9.0,<1" +[[package]] +name = "xarray" +version = "2022.3.0" +description = "N-D labeled arrays and datasets in Python" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +numpy = ">=1.18" +packaging = ">=20.0" +pandas = ">=1.1" + +[package.extras] +accel = ["scipy", "bottleneck", "numbagg"] +complete = ["netcdf4", "h5netcdf", "scipy", "pydap", "zarr", "fsspec", "cftime", "rasterio", "cfgrib", "pooch", "bottleneck", "numbagg", "dask", "matplotlib", "seaborn", "nc-time-axis"] +docs = ["netcdf4", "h5netcdf", "scipy", "pydap", "zarr", "fsspec", "cftime", "rasterio", "cfgrib", "pooch", "bottleneck", "numbagg", "dask", "matplotlib", "seaborn", "nc-time-axis", "sphinx-autosummary-accessors", "sphinx-rtd-theme", "ipython", "ipykernel", "jupyter-client", "nbsphinx", "scanpydoc"] +io = ["netcdf4", "h5netcdf", "scipy", "pydap", "zarr", "fsspec", "cftime", "rasterio", "cfgrib", "pooch"] +parallel = ["dask"] +viz = ["matplotlib", "seaborn", "nc-time-axis"] + [[package]] name = "xlsxwriter" version = "3.0.3" @@ -4585,7 +4695,7 @@ prediction = ["tensorflow"] [metadata] lock-version = "1.1" python-versions = "^3.8,<3.10" -content-hash = "2e701e62858e05479fbdbda668e1839fad0fff2fab8217dcc1f0a107197db876" +content-hash = "1100b407c484a889ceb07b0ae28b03358633fa7f1f2c788c6a86586a6585eef9" [metadata.files] absl-py = [ @@ -5711,6 +5821,13 @@ libclang = [ {file = "libclang-11.1.0-py2.py3-none-manylinux2014_aarch64.whl", hash = "sha256:39d07c8965a3c963fb2686496339b6dbacf42acbd32e4bc7361373a45e98cebe"}, {file = "libclang-11.1.0-py2.py3-none-win_amd64.whl", hash = "sha256:8cb0082a30b9e1e615d7f4211b0c428b607a9bd1e43ddc6c0cabdd9ea5b244bf"}, ] +lightgbm = [ + {file = "lightgbm-3.3.2-py3-none-macosx_10_14_x86_64.macosx_10_15_x86_64.macosx_11_0_x86_64.whl", hash = "sha256:2e94bd1b3ab29d173102c9c1d80db2e27ad7e43b8ff5a74c5cb7984b37d19f45"}, + {file = "lightgbm-3.3.2-py3-none-manylinux1_x86_64.whl", hash = "sha256:f4cba3b4f29336ad7e801cb32d9b948ea4cc5300dda650b78bcdfe36b3e2c4b2"}, + {file = "lightgbm-3.3.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8e788c56853316fc5d35db726d81bd002c721038c856853952287f68082e0158"}, + {file = "lightgbm-3.3.2-py3-none-win_amd64.whl", hash = "sha256:e4f1529cad416066964f9af0efad208787861e9f2181b7f9ee7fc9bacc082d4f"}, + {file = "lightgbm-3.3.2.tar.gz", hash = "sha256:5d25d16e77c844c297ece2044df57651139bc3c8ad8c4108916374267ac68b64"}, +] linearmodels = [ {file = "linearmodels-4.26-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9511653d58a213ad611680b826e7dcdfc03131b5db722390aa9fb50b0395b3af"}, {file = "linearmodels-4.26-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52ac13bfa5765155a03f3bbc9bd68f8f9991ed58a75a53951a8767df87906b2c"}, @@ -6065,6 +6182,10 @@ networkx = [ {file = "networkx-2.8-py3-none-any.whl", hash = "sha256:1a1e8fe052cc1b4e0339b998f6795099562a264a13a5af7a32cad45ab9d4e126"}, {file = "networkx-2.8.tar.gz", hash = "sha256:4a52cf66aed221955420e11b3e2e05ca44196b4829aab9576d4d439212b0a14f"}, ] +nfoursid = [ + {file = "nfoursid-1.0.0-py3-none-any.whl", hash = "sha256:5714b25a978b4505b818ec79e1e69aa3c41664f4687e176ae49ae125771eabf0"}, + {file = "nfoursid-1.0.0.tar.gz", hash = "sha256:9dc20edeaf0203ebbff9ef6ccad6ff125d9ab73d6c1ab48934fdb24b37f5f097"}, +] nodeenv = [ {file = "nodeenv-1.6.0-py2.py3-none-any.whl", hash = "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7"}, {file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"}, @@ -7274,6 +7395,10 @@ starlette = [ {file = "starlette-0.17.1-py3-none-any.whl", hash = "sha256:26a18cbda5e6b651c964c12c88b36d9898481cd428ed6e063f5f29c418f73050"}, {file = "starlette-0.17.1.tar.gz", hash = "sha256:57eab3cc975a28af62f6faec94d355a410634940f10b30d68d31cb5ec1b44ae8"}, ] +statsforecast = [ + {file = "statsforecast-0.5.5-py3-none-any.whl", hash = "sha256:f04affa6fcae9d9fae0be74f19bef043c18d80483060971c72975c9bfcdbd63d"}, + {file = "statsforecast-0.5.5.tar.gz", hash = "sha256:6a81ae36568f12aa64f862bdff5518da43e1a1fc14ced9b5d6917259fa9a362f"}, +] statsmodels = [ {file = "statsmodels-0.13.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3e7ca5b7e678c0bb7a24f5c735d58ac104a50eb61b17c484cce0e221a095560f"}, {file = "statsmodels-0.13.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:066a75d5585378b2df972f81a90b9a3da5e567b7d4833300c1597438c1a35e29"}, @@ -7400,6 +7525,27 @@ toolz = [ {file = "toolz-0.11.2-py3-none-any.whl", hash = "sha256:a5700ce83414c64514d82d60bcda8aabfde092d1c1a8663f9200c07fdcc6da8f"}, {file = "toolz-0.11.2.tar.gz", hash = "sha256:6b312d5e15138552f1bda8a4e66c30e236c831b612b2bf0005f8a1df10a4bc33"}, ] +torch = [ + {file = "torch-1.11.0-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:62052b50fffc29ca7afc0c04ef8206b6f1ca9d10629cb543077e12967e8d0398"}, + {file = "torch-1.11.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:866bfba29ac98dec35d893d8e17eaec149d0ac7a53be7baae5c98069897db667"}, + {file = "torch-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:951640fb8db308a59d9b510e7d1ad910aff92913323bbe4bc75435347ddd346d"}, + {file = "torch-1.11.0-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:5d77b5ece78fdafa5c7f42995ff9474399d22571cd6b2de21a5d666306a2ff8c"}, + {file = "torch-1.11.0-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:b5a38682769b544c875ecc34bcb81fbad5c922139b61319aacffcfd8a32f528c"}, + {file = "torch-1.11.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:f82d77695a60626f2b7382d85bc566de8a6b3e50d32080755abc040db802e419"}, + {file = "torch-1.11.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b96654d42566080a134e784705f33f8536b3b95b5dcde357ed7879b1692a5f78"}, + {file = "torch-1.11.0-cp37-cp37m-win_amd64.whl", hash = "sha256:8ee7c2e8d7f7020d5bfbc1bb91b9591044c26bbd0cee5e4f694cfd7ed8649260"}, + {file = "torch-1.11.0-cp37-none-macosx_10_9_x86_64.whl", hash = "sha256:6860b1d1bf0bb0b67a6bd47f85a0e4c825b518eea13b5d6101999dbbcbd5bc0c"}, + {file = "torch-1.11.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:4322aa29f50da7f404db06cdf30896ea67b09f673af4a985afc7162bc897864d"}, + {file = "torch-1.11.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:e4d2e0ddd652f30e94cff750220324ec45705d4ecc69658f773b3cb1c7a28dd0"}, + {file = "torch-1.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:34ce5ea4d8d85da32cdbadb50d4585106901e9f8a3527991daa70c13a09de1f7"}, + {file = "torch-1.11.0-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:0ccc85cd06227a3edf809e2c795fd5762c3d4e8a38b5c9f744c6e7cf841361bb"}, + {file = "torch-1.11.0-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:c1554e49d74f1b2c3e7202d77056ba2dd7465437585bac64062b580f714a44e9"}, + {file = "torch-1.11.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:58c7814502b1c129a650d7092033bbb0bbd64faf1a7941631aaa1aeaddc37570"}, + {file = "torch-1.11.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:831cf588f01dda9409e75576741d2823453990dee2983d670f2584b37a01adf7"}, + {file = "torch-1.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:44a1d02fd20f827f0f36dc26fdcfc45e793806a6ad52769a22260655a77a4369"}, + {file = "torch-1.11.0-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:50fd9bf85c578c871c28f1cb0ace9dfc6024401c7f399b174fb0f370899f4454"}, + {file = "torch-1.11.0-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:0e48af66ad755f0f9c5f2664028a414f57c49d6adc37e77e06fe0004da4edb61"}, +] tornado = [ {file = "tornado-6.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32"}, {file = "tornado-6.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c"}, @@ -7507,6 +7653,10 @@ tzlocal = [ {file = "tzlocal-4.2-py3-none-any.whl", hash = "sha256:89885494684c929d9191c57aa27502afc87a579be5cdd3225c77c463ea043745"}, {file = "tzlocal-4.2.tar.gz", hash = "sha256:ee5842fa3a795f023514ac2d801c4a81d1743bbe642e3940143326b3a00addd7"}, ] +u8darts = [ + {file = "u8darts-0.19.0-py3-none-any.whl", hash = "sha256:8b9073afa0bf36ec4036ca176fbe5426772475455e6cba46be1f63cb2197f953"}, + {file = "u8darts-0.19.0.tar.gz", hash = "sha256:9cb55ab1ed8d634d93348ae046beadea4bdd12f2b2e49f1d1829841994d200ca"}, +] ujson = [ {file = "ujson-5.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:754e9da96a24535ae5ab2a52e1d1dfc65a6a717c14063855b83f327fdf2173ea"}, {file = "ujson-5.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6227597d0201ceadc902d1a8edaffaeb244050b197368ed25e6f6be0df170a6f"}, @@ -7742,6 +7892,10 @@ wsproto = [ {file = "wsproto-1.1.0-py3-none-any.whl", hash = "sha256:2218cb57952d90b9fca325c0dcfb08c3bda93e8fd8070b0a17f048e2e47a521b"}, {file = "wsproto-1.1.0.tar.gz", hash = "sha256:a2e56bfd5c7cd83c1369d83b5feccd6d37798b74872866e62616e0ecf111bda8"}, ] +xarray = [ + {file = "xarray-2022.3.0-py3-none-any.whl", hash = "sha256:560f36eaabe7a989d5583d37ec753dd737357aa6a6453e55c80bb4f92291a69e"}, + {file = "xarray-2022.3.0.tar.gz", hash = "sha256:398344bf7d170477aaceff70210e11ebd69af6b156fe13978054d25c48729440"}, +] xlsxwriter = [ {file = "XlsxWriter-3.0.3-py3-none-any.whl", hash = "sha256:df0aefe5137478d206847eccf9f114715e42aaea077e6a48d0e8a2152e983010"}, {file = "XlsxWriter-3.0.3.tar.gz", hash = "sha256:e89f4a1d2fa2c9ea15cde77de95cd3fd8b0345d0efb3964623f395c8c4988b7f"}, diff --git a/pyproject.toml b/pyproject.toml index efa3cca4e7dd..56df4b7caf22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -102,6 +102,9 @@ Jinja2 = "3.0.3" # Remove pinned version when Voila supports 3.1 click = "8.0.1" # Remove pinned version when Black supports 8.1 kaleido = {version = "<=0.2.1", optional = true, extras = ["bots"]} Riskfolio-Lib = "^3.1.1" +llvmlite = {version = "^0.38.1", extras = ["prediction"]} +torch = {version = "^1.11.0", extras = ["prediction"]} +u8darts = {extras = ["prediction"], version = "^0.19.0"} [tool.poetry.dev-dependencies] diff --git a/requirements-full.txt b/requirements-full.txt index c86f5ab5af5f..27ca025029a2 100644 --- a/requirements-full.txt +++ b/requirements-full.txt @@ -36,7 +36,7 @@ cfgv==3.3.1; python_full_version >= "3.6.1" and python_version >= "3.7" charset-normalizer==2.0.12; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4.0" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") click==8.0.1; python_version >= "3.6" codespell==2.1.0; python_version >= "3.5" -colorama==0.4.4; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and platform_system == "Windows" and python_version >= "3.8" and (python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.5.0") and sys_platform == "win32" and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.5.0") and (python_version >= "3.6" and python_full_version < "3.0.0" and platform_system == "Windows" or python_full_version >= "3.5.0" and platform_system == "Windows" and python_version >= "3.6") and (python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.5.0") +colorama==0.4.4; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and platform_system == "Windows" and python_version >= "3.8" and (python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.5.0") and sys_platform == "win32" and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.5.0") and (python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.5.0") commonmark==0.9.1; python_full_version >= "3.6.2" and python_full_version < "4.0.0" convertdate==2.4.0; python_version >= "3.7" and python_version < "4" coverage==6.3.2; python_version >= "3.7" @@ -88,7 +88,7 @@ google-pasta==0.2.0 grpcio==1.45.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.6" h11==0.13.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" h5py==3.6.0; python_version >= "3.7" -hijri-converter==2.2.3; python_version >= "3.6" +hijri-converter==2.2.3; python_version >= "3.7" holidays==0.11.3.1; python_version >= "3.6" identify==2.4.12; python_version >= "3.7" idna==3.3; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") @@ -125,7 +125,9 @@ kiwisolver==1.4.2; python_version >= "3.7" korean-lunar-calendar==0.2.1; python_version >= "3.7" and python_full_version >= "3.7.0" lazy-object-proxy==1.7.1; python_version >= "3.6" and python_full_version >= "3.6.2" libclang==11.1.0 +lightgbm==3.3.2; python_version >= "3.7" linearmodels==4.26; python_version >= "3.8" +llvmlite==0.38.1; python_version >= "3.7" and python_version < "3.11" lxml==4.8.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" markdown-it-py==1.1.0; python_version >= "3.6" and python_version < "4.0" markdown==3.3.6; python_version >= "3.6" @@ -149,9 +151,11 @@ nbconvert==6.5.0; python_version >= "3.7" nbformat==5.3.0; python_full_version >= "3.7.0" and python_version >= "3.7" nest-asyncio==1.5.5; python_full_version >= "3.7.0" and python_version >= "3.7" networkx==2.8; python_version >= "3.8" +nfoursid==1.0.0; python_version >= "3.7" nodeenv==1.6.0; python_version >= "3.7" notebook-shim==0.1.0; python_version >= "3.7" notebook==6.4.11; python_version >= "3.7" +numba==0.55.1; python_version >= "3.7" and python_version < "3.11" numpy==1.21.2; python_version >= "3.7" and python_version < "3.11" oandapyv20==0.6.3 oauthlib==3.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" @@ -269,6 +273,7 @@ sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.6" squarify==0.4.3 sseclient==0.0.27 stack-data==0.2.0; python_full_version >= "3.6.2" and python_version >= "3.8" +statsforecast==0.5.5; python_version >= "3.7" statsmodels==0.13.2; python_version >= "3.7" stevedore==3.5.0; python_version >= "3.7" tabulate==0.8.9; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" @@ -290,8 +295,9 @@ tokenize-rt==4.2.1; python_full_version >= "3.6.2" and python_version >= "3.7" toml==0.10.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7" tomli==2.0.1; python_version >= "3.8" and python_full_version >= "3.6.2" and python_version < "3.11" toolz==0.11.2; python_version >= "3.7" and python_full_version >= "3.7.0" +torch==1.11.0; python_full_version >= "3.7.0" tornado==6.1; python_full_version >= "3.7.0" and python_version >= "3.7" -tqdm==4.64.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" +tqdm==4.64.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" tradingview-ta==3.2.10; python_version >= "3.6" traitlets==5.1.1; python_full_version >= "3.7.0" and python_version >= "3.8" trio-websocket==0.9.2; python_version >= "3.7" and python_version < "4.0" @@ -303,9 +309,10 @@ types-requests==2.27.20 types-setuptools==57.4.14 types-six==1.16.15 types-urllib3==1.26.13 -typing-extensions==4.2.0; python_version < "3.10" and python_full_version >= "3.6.2" and python_version >= "3.7" +typing-extensions==4.2.0; python_version < "3.10" and python_full_version >= "3.7.0" and python_version >= "3.7" tzdata==2022.1; platform_system == "Windows" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") tzlocal==4.2; python_version >= "3.6" +u8darts==0.19.0; python_version >= "3.7" ujson==5.2.0; python_version >= "3.7" unidecode==1.3.4; python_version >= "3.7" update-checker==0.18.0; python_version >= "3.6" and python_version < "4.0" @@ -324,6 +331,7 @@ werkzeug==2.1.1; python_version >= "3.7" widgetsnbextension==3.6.0 wrapt==1.14.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and python_version >= "3.8" wsproto==1.1.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" +xarray==2022.3.0; python_version >= "3.8" xlsxwriter==3.0.3; python_version >= "3.7" yarl==1.7.2; python_version >= "3.6" yfinance==0.1.70 diff --git a/requirements.txt b/requirements.txt index 80d7b47ce459..e296db10df0b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,5 @@ aiohttp==3.8.1; python_version >= "3.6" aiosignal==1.2.0; python_version >= "3.6" -alabaster==0.7.12; python_version >= "3.6" alpha-vantage==2.3.1 ansiwrap==0.8.4; python_version >= "3.6" anyio==3.5.0; python_full_version >= "3.6.2" and python_version >= "3.7" @@ -10,33 +9,27 @@ argon2-cffi-bindings==21.2.0; python_version >= "3.7" argon2-cffi==21.3.0; python_version >= "3.7" ascii-magic==1.6; python_version >= "3.5" astor==0.7.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" -astroid==2.11.3; python_full_version >= "3.6.2" astropy==5.0.4; python_version >= "3.8" asttokens==2.0.5; python_full_version >= "3.6.2" and python_version >= "3.8" async-generator==1.10; python_version >= "3.7" and python_version < "4.0" async-timeout==4.0.2; python_version >= "3.6" -atomicwrites==1.4.0; python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.4.0" attrs==21.4.0; python_full_version >= "3.7.0" and python_version >= "3.7" and python_version < "4.0" and (python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.5.0") babel==2.10.1; python_version >= "3.7" backcall==0.2.0; python_full_version >= "3.6.2" and python_version >= "3.8" backports.zoneinfo==0.2.1; python_version < "3.9" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") -bandit==1.7.4; python_version >= "3.7" beartype==0.7.1; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.6.0" beautifulsoup4==4.11.1; python_full_version >= "3.6.0" and python_version >= "3.7" black==22.1.0; python_full_version >= "3.6.2" bleach==5.0.0; python_version >= "3.7" bs4==0.0.1 bt==0.2.9; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") -certifi==2021.10.8; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") +certifi==2021.10.8; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") cffi==1.15.0; python_version >= "3.7" -cfgv==3.3.1; python_full_version >= "3.6.1" and python_version >= "3.7" -charset-normalizer==2.0.12; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4.0" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") +charset-normalizer==2.0.12; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4.0" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") click==8.0.1; python_version >= "3.6" -codespell==2.1.0; python_version >= "3.5" -colorama==0.4.4; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and platform_system == "Windows" and python_version >= "3.8" and (python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.5.0") and sys_platform == "win32" and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.5.0") and (python_version >= "3.6" and python_full_version < "3.0.0" and platform_system == "Windows" or python_full_version >= "3.5.0" and platform_system == "Windows" and python_version >= "3.6") and (python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.5.0") +colorama==0.4.4; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and platform_system == "Windows" and python_version >= "3.8" and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or python_full_version >= "3.5.0" and platform_system == "Windows" and python_version >= "3.7") and sys_platform == "win32" commonmark==0.9.1; python_full_version >= "3.6.2" and python_full_version < "4.0.0" convertdate==2.4.0; python_version >= "3.7" and python_version < "4" -coverage==6.3.2; python_version >= "3.7" cryptography==36.0.2; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "3.7" cssselect==1.1.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" cvxpy==1.2.0; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.7" @@ -50,10 +43,7 @@ defusedxml==0.7.1; python_version >= "3.7" and python_full_version < "3.0.0" or degiro-connector==2.0.19; python_full_version >= "3.7.1" and python_full_version < "4.0.0" deprecation==2.1.0 detecta==0.0.5; python_version >= "3.6" -dill==0.3.4; python_full_version >= "3.6.2" -distlib==0.3.4; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" dnspython==2.2.1; python_version >= "3.6" and python_version < "4.0" -docutils==0.16; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" ecos==2.0.10; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.7" entrypoints==0.4; python_full_version >= "3.7.0" and python_version >= "3.7" et-xmlfile==1.1.0; python_version >= "3.6" @@ -61,12 +51,10 @@ exchange-calendars==3.6.1; python_version >= "3.7" and python_full_version >= "3 executing==0.8.3; python_full_version >= "3.6.2" and python_version >= "3.8" fastjsonschema==2.15.3; python_full_version >= "3.7.0" and python_version >= "3.7" ffn==0.3.6; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" -filelock==3.6.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" financedatabase==1.0.2 finnhub-python==2.4.13 finviz==1.4.4 finvizfinance==0.14.0; python_version >= "3.5" -flake8==3.9.2; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.5.0") fonttools==4.33.3; python_version >= "3.7" formulaic==0.3.3; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" fred==3.1 @@ -79,14 +67,11 @@ gitdb==4.0.9; python_version >= "3.7" gitpython==3.1.27; python_version >= "3.7" grpcio==1.45.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.6" h11==0.13.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" -hijri-converter==2.2.3; python_version >= "3.6" +hijri-converter==2.2.3; python_version >= "3.7" holidays==0.11.3.1; python_version >= "3.6" -identify==2.4.12; python_version >= "3.7" -idna==3.3; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") -imagesize==1.3.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" +idna==3.3; python_full_version >= "3.7.1" and python_version >= "3.8" and python_version < "4" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") importlib-metadata==4.11.3; python_version < "3.10" and python_version >= "3.7" inflection==0.5.1; python_version >= "3.6" -iniconfig==1.1.1; python_version >= "3.7" interface-meta==1.3.0; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.1" and python_full_version < "4.0.0" investpy==1.0.8; python_version >= "3.7" ipykernel==6.13.0; python_version >= "3.7" @@ -95,7 +80,6 @@ ipython-genutils==0.2.0; python_version >= "3.7" ipython==8.2.0; python_full_version >= "3.6.2" and python_version >= "3.8" ipywidgets==7.7.0 iso8601==0.1.16 -isort==5.10.1; python_full_version >= "3.6.2" and python_version < "4.0" jedi==0.18.1; python_full_version >= "3.6.2" and python_version >= "3.8" jinja2==3.0.3; python_version >= "3.6" joblib==1.1.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" @@ -112,33 +96,30 @@ jupyterlab-widgets==1.1.0; python_version >= "3.6" jupyterlab==3.3.4; python_version >= "3.7" kiwisolver==1.4.2; python_version >= "3.7" korean-lunar-calendar==0.2.1; python_version >= "3.7" and python_full_version >= "3.7.0" -lazy-object-proxy==1.7.1; python_version >= "3.6" and python_full_version >= "3.6.2" +lightgbm==3.3.2; python_version >= "3.7" linearmodels==4.26; python_version >= "3.8" +llvmlite==0.38.1; python_version >= "3.7" and python_version < "3.11" lxml==4.8.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" -markdown-it-py==1.1.0; python_version >= "3.6" and python_version < "4.0" markupsafe==2.1.1; python_version >= "3.7" matplotlib-inline==0.1.3; python_full_version >= "3.6.2" and python_version >= "3.8" matplotlib==3.5.1; python_version >= "3.7" -mccabe==0.6.1; python_full_version >= "3.6.2" -mdit-py-plugins==0.2.8; python_version >= "3.6" and python_version < "4.0" mistune==0.8.4; python_version >= "3.7" -mock==4.0.3; python_version >= "3.6" more-itertools==8.12.0; python_version >= "3.6" mplfinance==0.12.8b9 multidict==6.0.2; python_version >= "3.7" multitasking==0.0.10 mypy-extensions==0.4.3; python_version >= "3.8" and python_full_version >= "3.6.2" mypy==0.930; python_version >= "3.6" -myst-parser==0.15.2; python_version >= "3.6" nbclassic==0.3.7; python_version >= "3.7" nbclient==0.5.13; python_full_version >= "3.7.0" and python_version >= "3.7" nbconvert==6.5.0; python_version >= "3.7" nbformat==5.3.0; python_full_version >= "3.7.0" and python_version >= "3.7" nest-asyncio==1.5.5; python_full_version >= "3.7.0" and python_version >= "3.7" networkx==2.8; python_version >= "3.8" -nodeenv==1.6.0; python_version >= "3.7" +nfoursid==1.0.0; python_version >= "3.7" notebook-shim==0.1.0; python_version >= "3.7" notebook==6.4.11; python_version >= "3.7" +numba==0.55.1; python_version >= "3.7" and python_version < "3.11" numpy==1.21.2; python_version >= "3.7" and python_version < "3.11" oandapyv20==0.6.3 oauthlib==3.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" @@ -156,17 +137,14 @@ papermill==2.3.4; python_version >= "3.6" parso==0.8.3; python_full_version >= "3.6.2" and python_version >= "3.8" pathspec==0.9.0; python_full_version >= "3.6.2" patsy==0.5.2; python_version >= "3.8" -pbr==5.8.1; python_version >= "3.7" pexpect==4.8.0; sys_platform != "win32" and python_version >= "3.8" and python_full_version >= "3.6.2" pickleshare==0.7.5; python_full_version >= "3.6.2" and python_version >= "3.8" pillow==9.1.0; python_version >= "3.7" and python_version < "4" -platformdirs==2.5.2; python_version >= "3.7" and python_full_version >= "3.6.2" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") +platformdirs==2.5.2; python_version >= "3.7" and python_full_version >= "3.6.2" plotly==5.7.0; python_version >= "3.6" -pluggy==1.0.0; python_version >= "3.7" pmdarima==1.8.5; python_version >= "3.7" praw==7.5.0; python_version >= "3.6" and python_version < "4.0" prawcore==2.3.0; python_version >= "3.6" and python_version < "4.0" -pre-commit==2.18.1; python_version >= "3.7" prometheus-client==0.14.1; python_version >= "3.7" prompt-toolkit==3.0.29; python_full_version >= "3.6.2" property-cached==1.6.4; python_version >= "3.8" @@ -175,17 +153,14 @@ psaw==0.0.12; python_version >= "3" psutil==5.9.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" ptyprocess==0.7.0; os_name != "nt" and python_version >= "3.8" and sys_platform != "win32" and python_full_version >= "3.6.2" pure-eval==0.2.2; python_full_version >= "3.6.2" and python_version >= "3.8" -py==1.11.0; python_full_version >= "3.7.0" and python_version >= "3.7" and implementation_name == "pypy" +py==1.11.0; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.7.0" pyally==1.1.2 -pycodestyle==2.7.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" pycoingecko==2.2.0 pycparser==2.21; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" pyerfa==2.0.0.1; python_version >= "3.8" pyex==0.5.0 -pyflakes==2.3.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" pygments==2.12.0; python_version >= "3.6" pyhdfe==0.1.0; python_version >= "3.8" -pylint==2.13.7; python_full_version >= "3.6.2" pyluach==1.4.1; python_version >= "3.7" and python_full_version >= "3.7.0" pymeeus==0.5.11; python_version >= "3.7" and python_version < "4" pymongo==3.11.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") @@ -198,10 +173,6 @@ pyportfolioopt==1.5.2; python_full_version >= "3.6.1" and python_full_version < pyprind==2.11.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" pyrsistent==0.18.1; python_version >= "3.7" pysocks==1.7.1; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "3.7" -pytest-cov==3.0.0; python_version >= "3.6" -pytest-mock==3.7.0; python_version >= "3.7" -pytest-recording==0.12.0; python_version >= "3.5" -pytest==6.2.5; python_version >= "3.6" python-binance==1.0.16 python-coinmarketcap==0.2 python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") @@ -209,7 +180,6 @@ python-dotenv==0.19.2; python_version >= "3.5" pytrends==4.8.0 pytz-deprecation-shim==0.1.0.post0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" pytz==2022.1; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" -pyupgrade==2.32.0; python_version >= "3.7" pywin32==303; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.7" and python_full_version >= "3.7.0" pywinpty==2.0.5; os_name == "nt" and python_version >= "3.7" pyyaml==6.0; python_version >= "3.8" @@ -235,25 +205,17 @@ selenium==4.1.3; python_version >= "3.7" and python_version < "4.0" send2trash==1.8.0; python_version >= "3.7" sentiment-investor==2.1.0; python_version >= "3.8" and python_version < "4.0" setuptools-scm==6.4.2; python_version >= "3.8" -six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.8") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") +six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.8") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") smmap==5.0.0; python_version >= "3.7" sniffio==1.2.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.6.2" -snowballstemmer==2.2.0; python_version >= "3.6" socketio-client-nexus==0.7.6 sortedcontainers==2.4.0; python_version >= "3.7" and python_version < "4.0" soupsieve==2.3.2.post1; python_version >= "3.6" and python_full_version >= "3.6.0" -sphinx==4.1.1; python_version >= "3.6" -sphinxcontrib-applehelp==1.0.2; python_version >= "3.6" -sphinxcontrib-devhelp==1.0.2; python_version >= "3.6" -sphinxcontrib-htmlhelp==2.0.0; python_version >= "3.6" -sphinxcontrib-jsmath==1.0.1; python_version >= "3.6" -sphinxcontrib-qthelp==1.0.3; python_version >= "3.6" -sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.6" squarify==0.4.3 sseclient==0.0.27 stack-data==0.2.0; python_full_version >= "3.6.2" and python_version >= "3.8" +statsforecast==0.5.5; python_version >= "3.7" statsmodels==0.13.2; python_version >= "3.7" -stevedore==3.5.0; python_version >= "3.7" tabulate==0.8.9; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" temporal-cache==0.1.4 tenacity==8.0.1; python_version >= "3.6" @@ -262,43 +224,35 @@ textwrap3==0.9.2; python_version >= "3.6" thepassiveinvestor==1.0.10 threadpoolctl==3.1.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" tinycss2==1.1.1; python_version >= "3.7" -tokenize-rt==4.2.1; python_full_version >= "3.6.2" and python_version >= "3.7" -toml==0.10.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7" -tomli==2.0.1; python_version >= "3.8" and python_full_version >= "3.6.2" and python_version < "3.11" +tomli==2.0.1; python_version >= "3.8" and python_full_version >= "3.6.2" toolz==0.11.2; python_version >= "3.7" and python_full_version >= "3.7.0" +torch==1.11.0; python_full_version >= "3.7.0" tornado==6.1; python_full_version >= "3.7.0" and python_version >= "3.7" -tqdm==4.64.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" +tqdm==4.64.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" tradingview-ta==3.2.10; python_version >= "3.6" traitlets==5.1.1; python_full_version >= "3.7.0" and python_version >= "3.8" trio-websocket==0.9.2; python_version >= "3.7" and python_version < "4.0" trio==0.20.0; python_version >= "3.7" and python_version < "4.0" -types-python-dateutil==2.8.12 -types-pytz==2021.3.6 -types-pyyaml==6.0.7 -types-requests==2.27.20 -types-setuptools==57.4.14 -types-six==1.16.15 -types-urllib3==1.26.13 -typing-extensions==4.2.0; python_version < "3.10" and python_full_version >= "3.6.2" and python_version >= "3.7" +typing-extensions==4.2.0; python_version < "3.10" and python_full_version >= "3.7.0" and python_version >= "3.7" tzdata==2022.1; platform_system == "Windows" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") tzlocal==4.2; python_version >= "3.6" +u8darts==0.19.0; python_version >= "3.7" ujson==5.2.0; python_version >= "3.7" unidecode==1.3.4; python_version >= "3.7" update-checker==0.18.0; python_version >= "3.6" and python_version < "4.0" -urllib3==1.26.9; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") +urllib3==1.26.9; python_full_version >= "3.7.1" and python_version < "4" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") user-agent==0.1.10 vadersentiment==3.3.2 valinvest==0.0.2; python_version >= "3.6" -vcrpy==4.1.1; python_version >= "3.5" -virtualenv==20.14.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" voila==0.3.5; python_version >= "3.7" wcwidth==0.2.5; python_full_version >= "3.6.2" and python_version >= "3.8" webencodings==0.5.1; python_version >= "3.7" websocket-client==1.3.2; python_version >= "3.8" and python_version < "4.0" websockets==10.3; python_version >= "3.7" widgetsnbextension==3.6.0 -wrapt==1.14.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5") and python_version >= "3.8" +wrapt==1.14.0; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" wsproto==1.1.0; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" +xarray==2022.3.0; python_version >= "3.8" xlsxwriter==3.0.3; python_version >= "3.7" yarl==1.7.2; python_version >= "3.6" yfinance==0.1.70 From 5e415b3e73df0b0b0a355adffab8db6f6d51a698 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Mon, 23 May 2022 16:56:27 -0400 Subject: [PATCH 25/34] linting --- openbb_terminal/README.md | 7 ++--- .../prediction_techniques/expo_model.py | 26 ++++++++++--------- .../common/prediction_techniques/expo_view.py | 20 +++++++------- .../prediction_techniques/pred_controller.py | 24 ++++++++--------- 4 files changed, 41 insertions(+), 36 deletions(-) diff --git a/openbb_terminal/README.md b/openbb_terminal/README.md index 9c4163babdb4..200aeb7a544d 100644 --- a/openbb_terminal/README.md +++ b/openbb_terminal/README.md @@ -193,15 +193,16 @@ Several features in this project utilize Machine Learning. Machine Learning Pyth conda install -c conda-forge -c pytorch u8darts-torch poetry install -E prediction ``` + - On M1 mac (make sure you are using miniconda3 or miniforge3) ```bash - brew install cmake + brew install cmake brew install gcc conda install -c apple tensorflow-deps - conda install -c apple tensorflow-deps==2.8.0 + conda install -c apple tensorflow-deps==2.8.0 python -m pip install tensorflow-metal - conda update pip + conda update pip conda update -c defaults numpy export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1 export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1 diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index e784278c1089..9b3561f296d6 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -1,8 +1,8 @@ -""" Probablistic Exponential Smoothing Model""" +"""Probabilistic Exponential Smoothing Model""" __docformat__ = "numpy" import logging -from typing import Any, Tuple, Union, List +from typing import Any, Tuple, Union import numpy as np import pandas as pd @@ -19,7 +19,7 @@ TRENDS = ["N", "A", "M"] SEASONS = ["N", "A", "M"] PERIODS = [4, 5, 7] -DAMPED = ["T", "F"] +DAMPEN = ["T", "F"] logger = logging.getLogger(__name__) @@ -30,13 +30,13 @@ def get_expo_data( trend: str = "A", seasonal: str = "A", seasonal_periods: int = None, - damped: str = "F", + dampen: str = "F", n_predict: int = 30, start_window: float = 0.65, forecast_horizon: int = 3, -) -> Tuple[List[float], List[float], Any, Any]: +) -> Tuple[Any, Any, Any, Any, Any]: - """Performs Probabalistic Exponential Smoothing forecasting + """Performs Probabilistic Exponential Smoothing forecasting This is a wrapper around statsmodels Holt-Winters' Exponential Smoothing; we refer to this link for the original and more complete documentation of the parameters. @@ -55,11 +55,11 @@ def get_expo_data( seasonal_periods: int Number of seasonal periods in a year If not set, inferred from frequency of the series. - damped: str + dampen: str Dampen the function n_predict: int Number of days to forecast - start_window: float + start_window: float Size of sliding window from start of timeseries and onwards forecast_horizon: int Number of days to forecast when backtesting and retraining historical @@ -86,7 +86,7 @@ def get_expo_data( ticker_series = filler.transform(ticker_series) ticker_series = ticker_series.astype(np.float32) - train, val = ticker_series.split_before(0.85) + _, val = ticker_series.split_before(0.85) if trend == "M": trend = ModelMode.MULTIPLICATIVE @@ -102,7 +102,9 @@ def get_expo_data( else: # Default seasonal = SeasonalityMode.ADDITIVE - damped = True if damped == "T" else False + damped = True + if dampen == "F": + damped = False # Model Init model_es = ExponentialSmoothing( @@ -119,8 +121,8 @@ def get_expo_data( # Show forecast over validation # and then +n_predict afterwards sampled 10 times per point probabilistic_forecast = model_es.predict(n_predict, num_samples=500) - precision = mape(val, probabilistic_forecast) # mape = mean average precision error - console.print(f"model {model_es} obtains MAPE: {precision:.2f}% \n") # TODO + precision = mape(val, probabilistic_forecast) # mape = mean average precision error + console.print(f"model {model_es} obtains MAPE: {precision:.2f}% \n") # TODO return ( ticker_series, diff --git a/openbb_terminal/common/prediction_techniques/expo_view.py b/openbb_terminal/common/prediction_techniques/expo_view.py index a0bd6b8f38d0..807d81c8033f 100644 --- a/openbb_terminal/common/prediction_techniques/expo_view.py +++ b/openbb_terminal/common/prediction_techniques/expo_view.py @@ -1,9 +1,9 @@ -"""Probablistic Exponential Smoothing View""" +"""Probabilistic Exponential Smoothing View""" __docformat__ = "numpy" import logging import os -from typing import List, Union +from typing import Union import matplotlib.pyplot as plt import pandas as pd @@ -22,6 +22,8 @@ ) logger = logging.getLogger(__name__) +# pylint: disable=too-many-arguments + @log_start_end(log=logger) def display_expo_forecast( @@ -30,13 +32,13 @@ def display_expo_forecast( trend: str, seasonal: str, seasonal_periods: int, - damped: str, + dampen: str, n_predict: int, start_window: float, forecast_horizon: int, export: str = "", ): - """Display Probalistic Exponential Smoothing forecast + """Display Probabilistic Exponential Smoothing forecast Parameters ---------- @@ -51,11 +53,11 @@ def display_expo_forecast( seasonal_periods: int Number of seasonal periods in a year If not set, inferred from frequency of the series. - damped: str + dampen: str Dampen the function n_predict: int Number of days to forecast - start_window: float + start_window: float Size of sliding window from start of timeseries and onwards forecast_horizon: int Number of days to forecast when backtesting and retraining historical @@ -75,7 +77,7 @@ def display_expo_forecast( trend, seasonal, seasonal_periods, - damped, + dampen, n_predict, start_window, forecast_horizon, @@ -90,12 +92,12 @@ def display_expo_forecast( logger.error("Expected list of one axis item.") console.print("[red]Expected list of one axis item.\n[/red]") return - (ax,) = external_axes + ax = external_axes # ax = fig.get_axes()[0] # fig gives list of axes (only one for this case) ticker_series.plot(label="Actual AdjClose", figure=fig) historical_fcast_es.plot( - label="Backtest 3-Days ahead forecast (Exp. Smoothing)", figure=fig + label="Back-test 3-Days ahead forecast (Exp. Smoothing)", figure=fig ) predicted_values.plot( label="Probabilistic Forecast", low_quantile=0.1, high_quantile=0.9, figure=fig diff --git a/openbb_terminal/stocks/prediction_techniques/pred_controller.py b/openbb_terminal/stocks/prediction_techniques/pred_controller.py index 54aeddcde9fd..24c3a36382d1 100644 --- a/openbb_terminal/stocks/prediction_techniques/pred_controller.py +++ b/openbb_terminal/stocks/prediction_techniques/pred_controller.py @@ -23,7 +23,7 @@ pred_helper, regression_view, expo_view, - expo_model + expo_model, ) from openbb_terminal.decorators import log_start_end from openbb_terminal.helper_funcs import ( @@ -96,7 +96,7 @@ def __init__( choices["expo"]["-t"] = {c: {} for c in expo_model.TRENDS} choices["expo"]["-s"] = {c: {} for c in expo_model.SEASONS} choices["expo"]["-p"] = {c: {} for c in expo_model.PERIODS} - choices["expo"]["-dp"] = {c: {} for c in expo_model.DAMPED} + choices["expo"]["-dp"] = {c: {} for c in expo_model.DAMPEN} self.completer = NestedCompleter.from_nested_dict(choices) def print_help(self): @@ -126,7 +126,7 @@ def print_help(self): lstm Long-Short Term Memory conv1d 1D Convolutional Neural Network mc Monte-Carlo simulations - expo Probablistic Exponential Smoothing[/cmds] + expo Probabilistic Exponential Smoothing[/cmds] """ console.print(text=help_text, menu="Stocks - Prediction Techniques") @@ -731,10 +731,10 @@ def call_expo(self, other_args: List[str]): add_help=False, prog="expo", description=""" - Perform Probablistic Exponential Smoothing forecast + Perform Probabilistic Exponential Smoothing forecast Trend: N: None, A: Additive, M: Multiplicative Seasonality: N: None, A: Additive, M: Multiplicative - Damped: T: True, F: False + Dampen: T: True, F: False """, ) parser.add_argument( @@ -775,9 +775,9 @@ def call_expo(self, other_args: List[str]): ) parser.add_argument( "-d", - "--damped", + "--dampen", action="store", - dest="damped", + dest="dampen", default="F", help="Dampening", ) @@ -801,7 +801,7 @@ def call_expo(self, other_args: List[str]): ns_parser = parse_known_args_and_warn( parser, other_args, export_allowed=EXPORT_ONLY_FIGURES_ALLOWED ) - + if ns_parser: if self.target != "AdjClose": console.print("Expo Prediction designed for AdjClose prices\n") @@ -813,8 +813,8 @@ def call_expo(self, other_args: List[str]): trend=ns_parser.trend, seasonal=ns_parser.seasonal, seasonal_periods=ns_parser.seasonal_periods, - damped = ns_parser.damped, - start_window = ns_parser.start_window, - forecast_horizon = ns_parser.forecast_horizon, + dampen=ns_parser.dampen, + start_window=ns_parser.start_window, + forecast_horizon=ns_parser.forecast_horizon, export=ns_parser.export, - ) \ No newline at end of file + ) From 4de697c530f09091b5b0df1416909901bb9c70e8 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Mon, 23 May 2022 17:08:14 -0400 Subject: [PATCH 26/34] merge main.yml from main --- website/data/menu/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/data/menu/main.yml b/website/data/menu/main.yml index 5a060638aac1..d7002fd6f05c 100755 --- a/website/data/menu/main.yml +++ b/website/data/menu/main.yml @@ -1011,7 +1011,7 @@ main: - name: yield ref: "/terminal/economy/yield" - name: ycrv - ref: "/terminal/economy/ycrv" + ref: "/terminal/economy/ycrv" - name: plot ref: "/terminal/economy/plot" - name: rtps From 3f491c3c508756251017285c31b4a2d0578e77e0 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Mon, 23 May 2022 17:32:32 -0400 Subject: [PATCH 27/34] supress warnings due to lib version change --- openbb_terminal/stocks/stocks_helper.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openbb_terminal/stocks/stocks_helper.py b/openbb_terminal/stocks/stocks_helper.py index 8b3fbc9fbe3a..b9eef91ff6ec 100644 --- a/openbb_terminal/stocks/stocks_helper.py +++ b/openbb_terminal/stocks/stocks_helper.py @@ -6,6 +6,7 @@ import os from datetime import datetime, timedelta, date from typing import List, Union, Optional, Iterable +import warnings import financedatabase as fd import matplotlib.pyplot as plt @@ -1125,6 +1126,7 @@ def additional_info_about_ticker(ticker: str) -> str: extra_info += "\n[param]Currency: [/param]USD" extra_info += "\n[param]Market: [/param]" calendar = mcal.get_calendar("NYSE") + warnings.filterwarnings("ignore") sch = calendar.schedule( start_date=(datetime.now() - timedelta(days=3)).strftime("%Y-%m-%d"), end_date=(datetime.now() + timedelta(days=3)).strftime("%Y-%m-%d"), From 8bcf6b2fe3995c3f0d3abef4f284fdb9a8c1566c Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Mon, 23 May 2022 17:38:09 -0400 Subject: [PATCH 28/34] reverting main.yml --- website/data/menu/main.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/data/menu/main.yml b/website/data/menu/main.yml index d7002fd6f05c..be81ab73d3c3 100755 --- a/website/data/menu/main.yml +++ b/website/data/menu/main.yml @@ -660,8 +660,6 @@ main: ref: "/terminal/common/prediction_techniques/conv1d" - name: mc ref: "/terminal/common/prediction_techniques/mc" - - name: expo - ref: "/terminal/common/prediction_techniques/expo" - name: Cryptocurrency ref: "/terminal/cryptocurrency" sub: From d354f3f73749c6a35c9c64addae7695bcadd5896 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Mon, 23 May 2022 17:40:23 -0400 Subject: [PATCH 29/34] retrying expo on main.yml --- website/data/menu/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/website/data/menu/main.yml b/website/data/menu/main.yml index be81ab73d3c3..46d512226dcc 100755 --- a/website/data/menu/main.yml +++ b/website/data/menu/main.yml @@ -1041,6 +1041,8 @@ main: ref: "/terminal/common/prediction_techniques/conv1d" - name: mc ref: "/terminal/common/prediction_techniques/mc" + - name: expo + ref: "/terminal/common/prediction_techniques/expo" - name: quantitative analysis ref: "/terminal/common/quantitative_analysis" sub: From 5ebdcd142ca87ce73606b86b0b71a20564cefe0c Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Mon, 23 May 2022 19:07:30 -0400 Subject: [PATCH 30/34] fixing fundamentalanalysis version --- requirements-full.txt | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements-full.txt b/requirements-full.txt index 27ca025029a2..266e2ac02635 100644 --- a/requirements-full.txt +++ b/requirements-full.txt @@ -77,7 +77,7 @@ fred==3.1 fredapi==0.4.3 frozendict==2.3.2; python_version >= "3.6" frozenlist==1.3.0; python_version >= "3.7" -fundamentalanalysis==0.2.12 +fundamentalanalysis==0.2.14 future==0.18.2; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" gast==0.5.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" gitdb==4.0.9; python_version >= "3.7" diff --git a/requirements.txt b/requirements.txt index e296db10df0b..03c9c86ee91d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -61,7 +61,7 @@ fred==3.1 fredapi==0.4.3 frozendict==2.3.2; python_version >= "3.6" frozenlist==1.3.0; python_version >= "3.7" -fundamentalanalysis==0.2.12 +fundamentalanalysis==0.2.14 future==0.18.2; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" gitdb==4.0.9; python_version >= "3.7" gitpython==3.1.27; python_version >= "3.7" From d9b5bd79ce21c9bb7ef6ec9547159e8ae7295903 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Mon, 23 May 2022 19:30:09 -0400 Subject: [PATCH 31/34] update poetry fundamentalanalysis --- poetry.lock | 8 ++++---- pyproject.toml | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 49196da57391..7c3cff831da8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1063,7 +1063,7 @@ python-versions = ">=3.7" [[package]] name = "fundamentalanalysis" -version = "0.2.12" +version = "0.2.14" description = "Fully-fledged Fundamental Analysis package capable of collecting 20 years of Company Profiles, Financial Statements, Ratios and Stock Data of 20.000+ companies." category = "main" optional = false @@ -4695,7 +4695,7 @@ prediction = ["tensorflow"] [metadata] lock-version = "1.1" python-versions = "^3.8,<3.10" -content-hash = "1100b407c484a889ceb07b0ae28b03358633fa7f1f2c788c6a86586a6585eef9" +content-hash = "160f2dde26257f63f0eb4335e1d31aa95e24070fac8afd8f50cef3986cb6e52f" [metadata.files] absl-py = [ @@ -5459,8 +5459,8 @@ frozenlist = [ {file = "frozenlist-1.3.0.tar.gz", hash = "sha256:ce6f2ba0edb7b0c1d8976565298ad2deba6f8064d2bebb6ffce2ca896eb35b0b"}, ] fundamentalanalysis = [ - {file = "FundamentalAnalysis-0.2.12-py3-none-any.whl", hash = "sha256:25e6b00d40daa58866b9e01a459f260fda347bf5e2ff61d7cc77f6f8b712e011"}, - {file = "FundamentalAnalysis-0.2.12.tar.gz", hash = "sha256:360576a7e75cc576860a0de086cdd33522433932b90326830945b27c519051d3"}, + {file = "fundamentalanalysis-0.2.14-py3-none-any.whl", hash = "sha256:eda7920cb3b2f76b197cfe0a47e3936e6b4e65273a3852039cd3e5edd1bb06cc"}, + {file = "fundamentalanalysis-0.2.14.tar.gz", hash = "sha256:bc3ee7948f7de817e195b2ac6d34dc6ba9c5f4780c9d29b7768c2790e67ab4a4"}, ] future = [ {file = "future-0.18.2.tar.gz", hash = "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"}, diff --git a/pyproject.toml b/pyproject.toml index 56df4b7caf22..c80b069b881d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -105,6 +105,7 @@ Riskfolio-Lib = "^3.1.1" llvmlite = {version = "^0.38.1", extras = ["prediction"]} torch = {version = "^1.11.0", extras = ["prediction"]} u8darts = {extras = ["prediction"], version = "^0.19.0"} +fundamentalanalysis = {version = "^0.2.14", extras = ["prediction"]} [tool.poetry.dev-dependencies] From 23723793f33244aa4f7971d7fc65d529b2464b3c Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Mon, 23 May 2022 22:42:25 -0400 Subject: [PATCH 32/34] type casting arg parse --- .../common/prediction_techniques/expo_model.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/openbb_terminal/common/prediction_techniques/expo_model.py b/openbb_terminal/common/prediction_techniques/expo_model.py index 9b3561f296d6..83b6999ed7e0 100644 --- a/openbb_terminal/common/prediction_techniques/expo_model.py +++ b/openbb_terminal/common/prediction_techniques/expo_model.py @@ -29,7 +29,7 @@ def get_expo_data( data: Union[pd.Series, pd.DataFrame], trend: str = "A", seasonal: str = "A", - seasonal_periods: int = None, + seasonal_periods: int = 7, dampen: str = "F", n_predict: int = 30, start_window: float = 0.65, @@ -53,7 +53,7 @@ def get_expo_data( Seasonal component. One of [N, A, M] Defaults to ADDITIVE. seasonal_periods: int - Number of seasonal periods in a year + Number of seasonal periods in a year (7 for daily data) If not set, inferred from frequency of the series. dampen: str Dampen the function @@ -108,19 +108,23 @@ def get_expo_data( # Model Init model_es = ExponentialSmoothing( - trend=trend, seasonal=seasonal, seasonal_periods=seasonal_periods, damped=damped + trend=trend, + seasonal=seasonal, + seasonal_periods=int(seasonal_periods), + damped=damped, + random_state=42, ) # Training model based on historical backtesting historical_fcast_es = model_es.historical_forecasts( ticker_series, - start=start_window, - forecast_horizon=forecast_horizon, + start=float(start_window), + forecast_horizon=int(forecast_horizon), verbose=True, ) # Show forecast over validation # and then +n_predict afterwards sampled 10 times per point - probabilistic_forecast = model_es.predict(n_predict, num_samples=500) + probabilistic_forecast = model_es.predict(int(n_predict), num_samples=500) precision = mape(val, probabilistic_forecast) # mape = mean average precision error console.print(f"model {model_es} obtains MAPE: {precision:.2f}% \n") # TODO From 5340c45fd039c50288646ee0a06a3064396cdab8 Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Mon, 23 May 2022 22:55:08 -0400 Subject: [PATCH 33/34] seasonal period default update --- openbb_terminal/common/prediction_techniques/ets_view.py | 2 +- .../stocks/prediction_techniques/pred_controller.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openbb_terminal/common/prediction_techniques/ets_view.py b/openbb_terminal/common/prediction_techniques/ets_view.py index aba5a9cd15a1..0bf62bef7a5d 100644 --- a/openbb_terminal/common/prediction_techniques/ets_view.py +++ b/openbb_terminal/common/prediction_techniques/ets_view.py @@ -43,7 +43,7 @@ def display_exponential_smoothing( n_predict: int, trend: str = "N", seasonal: str = "N", - seasonal_periods: int = 5, + seasonal_periods: int = 7, s_end_date: str = "", export: str = "", time_res: str = "", diff --git a/openbb_terminal/stocks/prediction_techniques/pred_controller.py b/openbb_terminal/stocks/prediction_techniques/pred_controller.py index 24c3a36382d1..64134159d5a9 100644 --- a/openbb_terminal/stocks/prediction_techniques/pred_controller.py +++ b/openbb_terminal/stocks/prediction_techniques/pred_controller.py @@ -770,8 +770,8 @@ def call_expo(self, other_args: List[str]): action="store", dest="seasonal_periods", type=check_positive, - default=5, - help="Seasonal periods: 4: Quarters, 5: Business Days, 7: Weekly", + default=7, + help="Seasonal periods: 4: Quarterly, 7: Daily", ) parser.add_argument( "-d", From a712011795aa52355de4846481dcf58b35c3c62a Mon Sep 17 00:00:00 2001 From: martinb-bb Date: Tue, 24 May 2022 17:02:55 -0400 Subject: [PATCH 34/34] update en.yml --- i18n/en.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/i18n/en.yml b/i18n/en.yml index 0ac3060dadf3..de1ae9ce3106 100644 --- a/i18n/en.yml +++ b/i18n/en.yml @@ -486,6 +486,7 @@ en: stocks/pred/lstm: Long-Short Term Memory stocks/pred/conv1d: 1D Convolutional Neural Network stocks/pred/mc: Monte-Carlo simulations + stocks/pred/expo: Probabilistic Exponential Smoothing crypto/load: load a specific cryptocurrency for analysis crypto/find: find coins crypto/_coin: Coin