My first thought was that this is a job for string.Template, which has
always struck me as subclassing-friendly. Took about a half hour of
wrangling the regex to get here:
from string import Template, _sentinel_dict
class TemplateWithDefaults(Template):
braceidpattern = r'([_a-z][_a-z0-9]*)
Oh, I didn't even know about `format_map`! Or `__format__` for that matter.
This makes everything much easier. For my purposes, I don't even need to use
`__format__` since I am not using format strings.
In a show of appreciation, here is a URL to a GIF of James Corden bowing:
https://media.giphy
On Fri, 1 Apr 2022 at 23:51, wrote:
>
> One way that I like to create templates for config files is to write the
> config file in a way that can be used with `str.format` if I read in the
> entire config file as a string before re-saving it or sending it somewhere.*
> The config file contains a
One way that I like to create templates for config files is to write the config
file in a way that can be used with `str.format` if I read in the entire config
file as a string before re-saving it or sending it somewhere.* The config file
contains a half dozen or dozen variables. Another several
+1
Python has always seemed to me to allow one to completely describe exactly what
you are iterating over in a for loop in the one line containing the for
statement. And that is more or less the principle I tend to follow, unless the
for statement simply gets to be too long. I have even used th