PyCQA/docformatter

docformatter 1.7.5 improperly breaks on emoji/formatted multiline string

hemanthkini opened this issue ยท 0 comments

Running docformatter 1.7.5 with Python 3.12.4 against this test file:

def test(test_arg1):
    content = f"""
    <table style="width: 100%; height: 100%; font-size: 1.1em;">
        <tr>
            <td style="width: 100%; height: 100%;">๐Ÿ”— This is a test {test_arg1} </td>
        </tr>
    </table>
    """
    return content

improperly returns:

--- before/test.py
+++ after/test.py
@@ -2,7 +2,7 @@
     content = f"""
     <table style="width: 100%; height: 100%; font-size: 1.1em;">
         <tr>
-            <td style="width: 100%; height: 100%;">๐Ÿ”— This is a test {test_arg1} </td>
+            <td style="width: 100%; height: 100%;">๐Ÿ”— This is a test {te{test_arg1} </td>
         </tr>
     </table>
     """

This used to work with Python 3.12.2 - I suspect it's a combination of the use of an emoji, the variable within the curly brace, and some change in the tokenizer/untokenizer logic.