realpython / realpython/python-guide

Section idea: Elegant string formatting

Open
#859 1 comment 1 reaction 1 assignee View on GitHub

@mpoulin is already working on this.

Since Aug 31, 2018.

Dominant language
Batchfile
Stars
29.8k
Forks
5.9k
PR merge metrics
No merged PRs in 30d

Description

One thing that I would love to see is an opinionated guide to elegant string formatting in python. I feel like there are many ways to do it, especially with f-strings now, and when it comes to indentation, interpolation, longer method names, etc, and I can never decide in the moment on what the most elegant approach is. This is especially hairy when trying to conform to a 79 character line length.

This seems obviously up the python guide's alley. ;) Just wanted to drop the seed in case it had ever crossed y'alls mind.

Some examples I can think of:

  1. What should a long string parameter in a method call look like? (This often comes up in exceptions being raised for example.)

  2. What should a long string parameter with interpolation in an error message look like?

  3. What should a string look like in a case with deep-ish indentation? (other than: break out to a method). Same question with interpolation.

  4. f-strings or .format() or %? When/why?

  5. What should multi-line f-strings look like? Should they be avoided?

  6. When to triple quote? Docs only?

etc

I feel like there's an opportunity for really good guidance here that is outside of pep8; something everybody would run into that you all would have well-formed opinions on. :) And I haven't seen much written about it.

Thoughts?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.