Skip to content

Error formatting f-string with # fmt: off inside a pair of brackets #4511

@Azureblade3808

Description

@Azureblade3808

Describe the bug

If there is a f-string (single-line or multi-line) following a # fmt: off (with or without a pairing # fmt: on) and both the f-string and # fmt: off are inside a pair of brackets ((), [], {}), the code cannot be formatted.

The error reported is something like:

error: cannot format ???.py: {' ', 'r', 'f', 'o', ':', 'm', 't', '#', '\n'} is NOT a subset of {'U', 'r', 'f', 'u', 'F', 'R', 'b', 'B'}.

To Reproduce

Sample:

(
# fmt: off
f"""
"""
# fmt: on
)

Expected behavior

No error is reported and the code is formatted as if the f-string is a normal string.

Environment

  • Black's version: 24.10.0
  • OS and Python version: Windows and Linux / Python 3.13.0

Additional context

None

Metadata

Metadata

Assignees

No one assigned

    Labels

    F: fmtofffmt: off implementationT: bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions