def _recursively_evaluate_lazy_format(
    value: Any, settings: Settings | LazySettings
) -> Any:
    """Recursive implementation. Separate for easier debugging."""
    if getattr(value, "_dynaconf_lazy_format", None):
        value = value(settings)

    if isinstance(value, list):
        # This must be the right way of doing it, but breaks validators
        # To be changed on 4.0.0
        # for idx, item in enumerate(value):
        #     value[idx] = _recursively_evaluate_lazy_format(item, settings)

        # Keep the original type, can be a BoxList
        value = value.__class__(
            [
                _recursively_evaluate_lazy_format(item, settings)
                for item in value
            ]
        )

    return value
Recursive implementation. Separate for easier debugging.
dynaconf/utils/__init__.py