def to_env_vars()

in src/sagemaker_training/mapping.py [0:0]


def to_env_vars(mapping):  # type: (dict) -> dict
    """Transform a dictionary in a dictionary of env vars.
    Example:
        >>>env_vars = mapping.to_env_vars({'model_dir': '/opt/ml/model', 'batch_size': 25})
        >>>
        >>>print(args)
        ['MODEL_DIR', '/opt/ml/model', 'BATCH_SIZE', 25]
    Args:
        mapping (dict[str, object]): A Python mapping.
    Returns:
        (dict): Dictionary of env vars.
    """

    def format_key(key):
        """Decode a key, adds a SM_ prefix to the key and upper case it."""
        if key:
            decoded_name = "SM_%s" % str(key).upper()
            return decoded_name
        else:
            return ""

    def format_value(_mapping):
        if six.PY3 and isinstance(_mapping, six.binary_type):
            # transforms a byte string (b'') in unicode
            return _mapping.decode("latin1")
        elif _mapping is None:
            return ""
        elif isinstance(_mapping, six.string_types):
            return str(_mapping)
        else:
            return json.dumps(_mapping, sort_keys=True, separators=(",", ":"), ensure_ascii=True)

    return {format_key(k): format_value(v) for k, v in mapping.items()}