def test_try_to_encode(): value = Lazy("{this[FOO]}/bar") assert try_to_encode(value) == "@format {this[FOO]}/bar"
import io from pathlib import Path from warnings import warn from dynaconf import default_settings from dynaconf.constants import YAML_EXTENSIONS from dynaconf.loaders.base import BaseLoader from dynaconf.utils import object_merge from dynaconf.utils.parse_conf import try_to_encode from dynaconf.vendor.ruamel import yaml # Add support for Dynaconf Lazy values to YAML dumper yaml.SafeDumper.yaml_representers[ None] = lambda self, data: yaml.representer.SafeRepresenter.represent_str( self, try_to_encode(data)) def load(obj, env=None, silent=True, key=None, filename=None): """ Reads and loads in to "obj" a single key or all keys from source file. :param obj: the settings instance :param env: settings current env default='development' :param silent: if errors should raise :param key: if defined load a single key, else load all in env :param filename: Optional custom filename to load :return: None """ # Resolve the loaders # https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation
def default(self, o): return try_to_encode(o, callback=super().default)