Python Dynaconf BoxList как присвоить список?
Всем привет! Кто-нибудь сталкивался с таким в Dynaconf, когда присваиваешь список параметру типа BoxList, то происходит объединение списков? А мне так не надо. Пример:
log_list = sort_unique_list([*log_list, *settings.log], func = lambda s: str(s).split("|")[0])
if IS_DEV or IS_DEBUG:
print("Full log list:")
for s in log_list:
print(s)
print()
settings.log = log_list
isOK = report_out(settings)
if IS_DEV or IS_DEBUG:
print("Full log:")
logs = list(settings['log'])
for s in logs:
print(s)
Результат:
Full log list:
2025-04-01 12:42:16.122885 | olap_monthly_group02_v1_0.py - started
2025-04-01 12:42:16.123222 | olap_monthly_group02_v1_0.py: run_cust_equipment_fees - Task <cust_equipment_fees> is inactive
2025-04-01 12:42:16.128507 | olap_monthly_group02_v1_0.py - finished successfully for duration: 0:00:00.005710
Full log:
2025-04-01 12:42:16.123222 | olap_monthly_group02_v1_0.py: run_cust_equipment_fees - Task <cust_equipment_fees> is inactive
2025-04-01 12:42:16.122885 | olap_monthly_group02_v1_0.py - started
2025-04-01 12:42:16.123222 | olap_monthly_group02_v1_0.py: run_cust_equipment_fees - Task <cust_equipment_fees> is inactive
2025-04-01 12:42:16.128507 | olap_monthly_group02_v1_0.py - finished successfully for duration: 0:00:00.005710
Пробовал также перед присваиванием очищать clear - бесполезно.
Ожидается результат без дублей, как в log_list. Присвоение необходимо для передачи settinigs в функцию report_out.
Пробовал также:
settings.update({"log": log_list}) - бесполезно
settings.update(log=log_list) - бесполезно
setting.log = BoxList(log_list) - бесполезно
Ответы (1 шт):
Автор решения: Vasly Bondarev
→ Ссылка
Такое вот нашел рабочее решение. Но, это не очевидно. Плохо, что нет подробной документации. Пришлось покопаться в исходниках.
settings._wrapped.unset("log", True)
# или del settings._wrapped.store.LOG
settings["log"] = log_list