Hacker News new | ask | show | jobs
by quietbritishjim 1974 days ago
You can use any of

    f"{foo['field']}"
    f'{foo["field"]}'
    f"""{foo["field"]}"""
(I see from your carefully worded first sentence that you already knew this but still find it annoying, but I'll leave this here for any that aren't aware.)
2 comments

Yes, and anyone who has written a "one-liner" at the command line is familiar with it. Wouldn't say it is a big problem.
The problem with this is when you run it through a formatter that changes all ' to ".
Sounds like a bug in your formatter, if it's meant to just do formatting but actually replaces valid syntax with invalid.
I don't totally disagree. My company uses the black formatter, which does this[0]. There are flags to skip string formatting, but is frowned upon at my organization.

[0] https://github.com/psf/black/blob/master/docs/the_black_code...

For what it's worth, black appears to do a reasonable thing and preserves the semantics of your quoted strings (as is promised by the documentation):

  $ echo "'foo'" | black -
  "foo"
  
  $ echo "'foo[\"bar\"]'" | black -
  'foo["bar"]'

  $ echo "'foo[\"bar\"]+\\'baz\\''" | black -
  "foo[\"bar\"]+'baz'"