From 6107c22defad2ae86a458055f480f9f3f616406e Mon Sep 17 00:00:00 2001 From: arkohut <39525455+arkohut@users.noreply.github.com> Date: Mon, 9 Sep 2024 22:26:26 +0800 Subject: [PATCH] fix: support parse secret --- memos/config.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/memos/config.py b/memos/config.py index 309a373..ec9170b 100644 --- a/memos/config.py +++ b/memos/config.py @@ -50,7 +50,7 @@ class Settings(BaseSettings): database_path: str = os.path.join(base_dir, "database.db") default_library: str = "screenshots" screenshots_dir: str = os.path.join(base_dir, "screenshots") - + typesense_host: str = "localhost" typesense_port: str = "8108" typesense_protocol: str = "http" @@ -98,6 +98,21 @@ def dict_representer(dumper, data): yaml.add_representer(OrderedDict, dict_representer) +# Custom representer for SecretStr +def secret_str_representer(dumper, data): + return dumper.represent_scalar("tag:yaml.org,2002:str", data.get_secret_value()) + + +# Custom constructor for SecretStr +def secret_str_constructor(loader, node): + value = loader.construct_scalar(node) + return SecretStr(value) + + +yaml.add_representer(SecretStr, secret_str_representer) +yaml.add_constructor("tag:yaml.org,2002:str", secret_str_constructor) + + def create_default_config(): config_path = Path.home() / ".memos" / "config.yaml" if not config_path.exists():