diff options
author | montezdesousa <79287829+montezdesousa@users.noreply.github.com> | 2022-11-28 18:19:30 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-28 13:19:30 -0500 |
commit | d8c46b0aef2bdec9ae95a62adc7cd0c7d35eedbd (patch) | |
tree | 752a1d890ed29485b80b7daaa809496a7829f050 | |
parent | d5d8e71e15286e883a3440947ce30f686abe1d9a (diff) |
fix po dates params (#3619)
Co-authored-by: James Maslek <jmaslek11@gmail.com>
Co-authored-by: Chavithra <chavithra@gmail.com>
-rw-r--r-- | openbb_terminal/portfolio/portfolio_optimization/parameters/params_helpers.py | 41 | ||||
-rw-r--r-- | openbb_terminal/portfolio/portfolio_optimization/parameters/params_view.py | 11 |
2 files changed, 48 insertions, 4 deletions
diff --git a/openbb_terminal/portfolio/portfolio_optimization/parameters/params_helpers.py b/openbb_terminal/portfolio/portfolio_optimization/parameters/params_helpers.py index b7ed54fbe60..cf1b3dd86e5 100644 --- a/openbb_terminal/portfolio/portfolio_optimization/parameters/params_helpers.py +++ b/openbb_terminal/portfolio/portfolio_optimization/parameters/params_helpers.py @@ -1,8 +1,10 @@ import argparse -from typing import Dict +from datetime import datetime +from typing import Dict, List from pathlib import Path from openbb_terminal.helper_funcs import log_and_raise from openbb_terminal.core.config import paths +from openbb_terminal.rich_config import console def check_save_file(file: str) -> str: @@ -40,3 +42,40 @@ def load_data_files() -> Dict[str, Path]: data_files[filepath.name] = filepath return data_files + + +def check_convert_dates(params: dict, param_name_list: List[str]) -> dict: + """Check if the argument is in the list and convert it to a str object + Parameters + ---------- + params : dict + The parameters to be converted + param_name_list : List[str] + The list of arguments to be converted + + Returns + ------- + dict + The converted parameters + """ + + for param_name in param_name_list: + if param_name in params: + param_value = params[param_name] + if isinstance(param_value, datetime): + params[param_name] = param_value.strftime("%Y-%m-%d") + elif isinstance(param_value, str): + try: + param_value = datetime.strptime(param_value, "%Y-%m-%d") + except ValueError: + console.print( + f"[red]'{param_name}' format is not a valid date, must be YYYY-MM-DD.\n[/red]" + ) + params.pop(param_name) + else: + console.print( + f"[red]'{param_name}' format is not a valid date, must be YYYY-MM-DD.\n[/red]" + ) + params.pop(param_name) + + return params diff --git a/openbb_terminal/portfolio/portfolio_optimization/parameters/params_view.py b/openbb_terminal/portfolio/portfolio_optimization/parameters/params_view.py index bcaecb34d59..e5a9491e243 100644 --- a/openbb_terminal/portfolio/portfolio_optimization/parameters/params_view.py +++ b/openbb_terminal/portfolio/portfolio_optimization/parameters/params_view.py @@ -8,6 +8,9 @@ from openbb_terminal.helper_funcs import print_rich_table from openbb_terminal.portfolio.portfolio_optimization import excel_model from openbb_terminal.rich_config import console from openbb_terminal.portfolio.portfolio_optimization.parameters import params_statics +from openbb_terminal.portfolio.portfolio_optimization.parameters.params_helpers import ( + check_convert_dates, +) from openbb_terminal.core.config import paths @@ -41,11 +44,13 @@ def load_file(path: str = "") -> Tuple[dict, str]: params, _ = excel_model.load_configuration(path) current_model = params["technique"] else: - console.print( - "Can not load in the file due to not being an .ini or .xlsx file." - ) + console.print("Cannot load in the file due to not being an .ini or .xlsx file.") return {}, "" + params = check_convert_dates( + params=params, param_name_list=["start_period", "end_period"] + ) + max_len = max(len(k) for k in params.keys()) help_text = "[info]Parameters:[/info]\n" |