F542 is not a crime
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.5k
- Forks
- 190
- Avg merge
- 8m
- Merged PRs (30d)
- 13
Description
Hello,
I am working on adding template strings support to psycopg. In the tests, Flake8 7.3.0 raises several warnings about template strings not containing placeholders (F542).
Unlike f-strings, a missing placeholder shouldn't be a problem. In the first iterations of PEP 750 it was possible to mix normal and t-strings with the same ease in which f-strings and normal strings can be mixed, but this feature has been identified as problematic and dropped from the design and latest Python implementation (post alpha and into beta, I seem to understand). As a consequence, F542 is not immediately fixable by dropping the t prefix and it should be normal to assemble a t-string by concatenating t-strings, some of which may not include placeholder as in this snippet:
t = t"select " # noqa: F542
for i, name in enumerate(("foo", "bar", "baz")):
if i:
t += t", " # noqa: F542
t += t"{i} as {name:i}"
Would you consider disabling F542 by default?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the F542 rule and its existing tests in pyflakes, then review the linked psycopg tests/test_tstring.py examples showing valid t-strings without placeholders. Done means deciding whether F542 should be disabled by default and adding coverage for the chosen behavior, including the relevant lint output.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100