Search code examples
pythonpre-commitpython-black

Long string remains unchanged, can python-black convert them into multine


Before:

value = "aldkfdskdksfjdskfj dslkfj sdkl dklsfj dsklfj sdklfjdsklfjdskl fjdskl jdsklf jdsklfj dsklfj dsklfj dsklfj dsklfj dsklfj dsklfj dkl"

After running black --line-length 80 file.py: (long string remains unchanged)

value = "aldkfdskdksfjdskfj dslkfj sdkl dklsfj dsklfj sdklfjdsklfjdskl fjdskl jdsklf jdsklfj dsklfj dsklfj dsklfj dsklfj dsklfj dsklfj dkl"

Expected behavior (something close to this):

value = """aldkfdskdksfjdskfj dslkfj sdkl dklsfj dsklfj
        sdklfjdsklfjdskl fjdskl jdsklf jdsklfj dsklfj
        dsklfj dsklfj dsklfj dsklfj dsklfj dkl"""

or

value = "aldkfdskdksfjdskfj dslkfj sdkl dklsfj dsklfj" \
        "sdklfjdsklfjdskl fjdskl jdsklf jdsklfj dsklfj" \
        "dsklfj dsklfj dsklfj dsklfj dsklfj dkl"

[Q] Long string remains unchanged, can python-black convert them into multine? If not, is there any other tool to accomplish it?


Solution

  • From the following opened github issue:

    Black already does wrap long string literals due to #1132. We haven't released a new version yet though, so it only lives in the master branch of this repo.

    (black) richard-26@ubuntu-laptop:~/programming/black$ black test.py -l
    80 --color --diff
    --- test.py   2020-07-01 14:36:24.700946 +0000
    +++ test.py   2020-07-01 14:36:38.436792 +0000 @@ -1 +1,4 @@
    -value = "aldkfdskdksfjdskfj dslkfj sdkl dklsfj dsklfj sdklfjdsklfjdskl fjdskl jdsklf jdsklfj dsklfj dsklfj dsklfj dsklfj dsklfj dsklfj dkl"
    
    +value = (
    +    "aldkfdskdksfjdskfj dslkfj sdkl dklsfj dsklfj sdklfjdsklfjdskl fjdskl"
    +    " jdsklf jdsklfj dsklfj dsklfj dsklfj dsklfj dsklfj dsklfj dkl"
    +) 
    would reformat test.py 
    All done! ✨ 🍰 ✨ 
    1 file would be reformatted. ```