Skip to content

I believe URL_REGEX is missing a | #269

Open
@EFord36

Description

@EFord36

comparing the 'URL_REGEX explanation comment':

# (__ |`{{2}}|`\w[\w. :\n]*|\.\. _?[\w. :]+|')? is used to find in-line links that

to the actual first line of the regex:

    rf"(__ |`{{2}}|`\w[\w :#\n]*[.|\.\. _?[\w. :]+|')?<?"

the actual regex seems to be 'missing' a | between:

`\w[\w :#\n]*

and

[.|\.\. _?[\w. :]+

This seems to have been removed in #213 , which doesn't seem intentional to me, as it doesn't seem obviously related to the change that PR was trying to fix (although it's possible I'm misunderstanding here, sorry if so!).

I think this does affect the wrapping behaviour - links in the format starting with .. seem to not get wrapped (although I'm not 100% sure I've understand the expected behaviour). A file with these contents:

def some_func():
    """This is a func.

    A description line.

    This is a very very very very very very very very very very very long line .. _a link reference:  https://domain.invalid/
    """
    pass

def another_func():
    """This is a func.

    A description line.

    .. _a link reference that is very very very very very very very very very very very very very ver longy:  https://domain.invalid/
    """
    pass

def some_func_other_link():
    """This is another func.

    This is a very very very very very very very very very very very long line `A link reference <https://domain.invalid/>`_
    """
    pass

produces this output when docformatter is run over it, only reformatting the link with a different format:

--- before/test_url_regex.py
+++ after/test_url_regex.py
@@ -19,7 +19,9 @@
 def some_func_other_link():
     """This is another func.

-    This is a very very very very very very very very very very very long line `A link reference <https://domain.invalid/>`_
+    This is a very very very very very very very very very very very
+    long line
+    `A link reference <https://domain.invalid/>`_
     """
     pass

I think maybe this isn't obvious/impactful because this kind of link is 'explicit markup' that according to ReST can only start a line of ReST, so it's probably infrequent that you get a link and reference long enough that this would reformat it anyway.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C: styleRelates to docstring format style (e.g., Google, NumPy, Sphinx)P: enhancementFeature that is outside the scope of PEP 257U: lowA relatively low urgency issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions