Skip to content

F542 is not a crime #845

@dvarrazzo

Description

@dvarrazzo

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions