From dd4ffcd54e926ef524af5ea48c6c3fb7cc7e53b1 Mon Sep 17 00:00:00 2001 From: Johannes Kastl Date: Sat, 3 Aug 2024 12:45:03 +0200 Subject: [PATCH 1/4] pyproject.toml: add pydantic-settings --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 477a4762..4d848333 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ krr = "robusta_krr.main:run" python = ">=3.9,<=3.12.3" typer = { extras = ["all"], version = "^0.7.0" } pydantic = "^1.10.7" +pydantic-settings = "^2.0.0" kubernetes = "^26.1.0" prometheus-api-client = "0.5.3" numpy = ">=1.26.4,<1.27.0" From 9aa8e5e1efa45d5ed934d45877f06f5fb0d8d398 Mon Sep 17 00:00:00 2001 From: Johannes Kastl Date: Sat, 3 Aug 2024 14:43:57 +0200 Subject: [PATCH 2/4] robusta_krr/core/models/config.py: import pydantic_settings and use it for BaseSettings --- robusta_krr/core/models/config.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/robusta_krr/core/models/config.py b/robusta_krr/core/models/config.py index 6ad5804c..35386c40 100644 --- a/robusta_krr/core/models/config.py +++ b/robusta_krr/core/models/config.py @@ -5,6 +5,7 @@ from typing import Any, Literal, Optional, Union import pydantic as pd +import pydantic_settings as pds from kubernetes import config from kubernetes.config.config_exception import ConfigException from rich.console import Console @@ -17,7 +18,7 @@ logger = logging.getLogger("krr") -class Config(pd.BaseSettings): +class Config(pds.BaseSettings): quiet: bool = pd.Field(False) verbose: bool = pd.Field(False) From 5eb2136a3ea4e23c57a6c34222e366048ef06629 Mon Sep 17 00:00:00 2001 From: Johannes Kastl Date: Sat, 3 Aug 2024 20:02:33 +0200 Subject: [PATCH 3/4] robusta_krr/core/models/config.py: file_output_dynamic --- robusta_krr/core/models/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/robusta_krr/core/models/config.py b/robusta_krr/core/models/config.py index 35386c40..7f70914d 100644 --- a/robusta_krr/core/models/config.py +++ b/robusta_krr/core/models/config.py @@ -62,7 +62,7 @@ class Config(pds.BaseSettings): # Output Settings file_output: Optional[str] = pd.Field(None) - file_output_dynamic = bool = pd.Field(False) + file_output_dynamic: bool = pd.Field(False) slack_output: Optional[str] = pd.Field(None) other_args: dict[str, Any] From 4a8b5fc86e6881829a270fe313062a73b26f0a79 Mon Sep 17 00:00:00 2001 From: Johannes Kastl Date: Sat, 3 Aug 2024 20:07:50 +0200 Subject: [PATCH 4/4] robusta_krr/main.py: adapt field_meta to work with new pydantic --- robusta_krr/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/robusta_krr/main.py b/robusta_krr/main.py index dd9ee03b..9ec21142 100644 --- a/robusta_krr/main.py +++ b/robusta_krr/main.py @@ -306,10 +306,10 @@ def run_strategy( default=OptionInfo( default=field_meta.default, param_decls=list(set([f"--{field_name}", f"--{field_name.replace('_', '-')}"])), - help=f"{field_meta.field_info.description}", + help=f"{field_meta.description}", rich_help_panel="Strategy Settings", ), - annotation=__process_type(field_meta.type_), + annotation=__process_type(field_meta.annotation), ) for field_name, field_meta in strategy_type.get_settings_type().__fields__.items() ]