def render(raw_config, environment=None):
    """Renders a config, using it as a template with the environment.

    Args:
        raw_config (str): the raw stacker configuration string.
        environment (dict, optional): any environment values that should be
            passed to the config

    Returns:
        str: the stacker configuration populated with any values passed from
            the environment

    """

    t = Template(raw_config)
    buff = StringIO()
    if not environment:
        environment = {}
    try:
        substituted = t.substitute(environment)
    except KeyError as e:
        raise exceptions.MissingEnvironment(e.args[0])
    except ValueError:
        # Support "invalid" placeholders for lookup placeholders.
        substituted = t.safe_substitute(environment)

    if not isinstance(substituted, str):
        substituted = substituted.decode('utf-8')

    buff.write(substituted)
    buff.seek(0)
    return buff.read()
def render ( raw_config , environment = None ) : t = Template ( raw_config ) buff = StringIO ( ) if not environment : environment = { } try : substituted = t . substitute ( environment ) except KeyError as e : raise exceptions . MissingEnvironment ( e . args [ 0 ] ) except ValueError : substituted = t . safe_substitute ( environment ) if not isinstance ( substituted , str ) : substituted = substituted . decode ( 'utf-8' ) buff . write ( substituted ) buff . seek ( 0 ) return buff . read ( )
Renders a config, using it as a template with the environment.

    Args:
        raw_config (str): the raw stacker configuration string.
        environment (dict, optional): any environment values that should be
            passed to the config

    Returns:
        str: the stacker configuration populated with any values passed from
            the environment