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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions