Skip to content

docformatter 1.7.5 improperly breaks on emoji/formatted multiline stringΒ #282

Open
@hemanthkini

Description

@hemanthkini

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C: styleRelates to docstring format style (e.g., Google, NumPy, Sphinx)P: bugPEP 257 violation or existing functionality that doesn't work as documentedU: mediumA relatively medium urgency issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions