From 6d1db80bb3c659a63beee1c2f1f25c8658d4b9a1 Mon Sep 17 00:00:00 2001 From: Vlad Stan Date: Fri, 9 Dec 2022 13:37:36 +0200 Subject: [PATCH] refactor: build dynamically `readonly_variables` --- lnbits/settings.py | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/lnbits/settings.py b/lnbits/settings.py index 6ecba509..1497aa94 100644 --- a/lnbits/settings.py +++ b/lnbits/settings.py @@ -22,24 +22,6 @@ def list_parse_fallback(v): return [] -# todo: remove -readonly_variables = [ - "host", - "port", - "debug", - "lnbits_data_folder", - "lnbits_database_url", - "lnbits_allowed_funding_sources", - "lnbits_saas_secret", - "lnbits_saas_callback", - "lnbits_saas_instance_id", - "lnbits_admin_ui", - "lnbits_commit", - "lnbits_path", - "forwarded_allow_ips", -] - - class LNbitsSetings(BaseSettings): def validate(cls, val): if type(val) == str: @@ -248,6 +230,10 @@ class ReadOnlySettings(LNbitsSetings): def validate_readonly_settings(cls, val): return super().validate(cls, val) + @classmethod + def readonly_fields(cls): + return [f for f in inspect.signature(cls).parameters if not f.startswith("_")] + class Settings(EditableSetings, ReadOnlySettings): @classmethod @@ -265,6 +251,8 @@ class AdminSettings(EditableSetings): lnbits_allowed_funding_sources: Optional[List[str]] +readonly_variables = ReadOnlySettings.readonly_fields() + settings = Settings() settings.lnbits_path = str(path.dirname(path.realpath(__file__)))