Strings com várias linhas em python podem ser úteis, mas o espaço em branco extra que é preservado pode ser um problema.
A primeira (feia) solução é escrever strings de várias linhas sem indentação como:
def foo(my_dict):
config = """USER={username}
SERVICENAME=
DEMAND=no
DNSTYPE=NOCHANGE
USERCTL=no
FIREWALL=NONE
ETH={interface}
LCP_INTERVAL=10
LCP_FAILURE=3
PIDFILE=/var/run/pppoe
CLAMPMSS=no
PPPOE_TIMEOUT=20
DEFROUTE=YES""".format(**my_dict)
return config
No entanto, isso é feio e um pouco ilegível. A melhor maneira é recuar a string e, em seguida, usar o textwrap
módulo para remover o espaço em branco extra:
import textwrap
def foo(my_dict):
config = """
USER={username}
SERVICENAME=
DEMAND=no
DNSTYPE=NOCHANGE
USERCTL=no
FIREWALL=NONE
ETH={interface}
LCP_INTERVAL=10
LCP_FAILURE=3
PIDFILE=/var/run/pppoe
CLAMPMSS=no
PPPOE_TIMEOUT=20
DEFROUTE=YES
""".format(**my_dict)
config = textrwap.dedent(config)
return config
Documentação: http://docs.python.org/2/library/textwrap.html#textwrap.dedent