hhatto / autopep8

A tool that automatically formats Python code to conform to the PEP 8 style guide.
https://pypi.org/project/autopep8/
MIT License
4.56k stars 290 forks source link

Formatting text with variables using f"" lead to not nice break #765

Open Hadatko opened 1 month ago

Hadatko commented 1 month ago

Python Code


print(f"{dasdsadasdsadassdsadasdasddasddasd}{dasdsadasdsadasdasddasd}{dasdsadasdsadasdasddasd}")

This lead to

print(f"{dasdsadasdsadassdsadasdasddasddasd}{
dasdsadasdsadasdasddasd}{dasdsadasdsadasdasddasd}")

Better would be

print(f"{dasdsadasdsadassdsadasdasddasddasd}\
{dasdsadasdsadasdasddasd}{dasdsadasdsadasdasddasd}")

or format it as without "f" (like basic string without variables)

Command Line and Configuration

.pep8, setup.cfg, ...

[pep8]

VSCode default

Command Line

$ autopep8 

VSCode default

Your Environment

endolith commented 2 weeks ago

This produces errors like

SyntaxError: unterminated string literal (detected at line 60)

Your example could also be broken into multiple lines like

print(f"{dasdsadasdsadassdsadasdasddasddasd}"
      f"{dasdsadasdsadasdasddasd}"
      f"{dasdsadasdsadasdasddasd}")
aconchillo commented 3 days ago

I have also found this issue. Breaking a formatted string like this also causes issue in the output.