docformatter
docformatter copied to clipboard
I believe URL_REGEX is missing a `|`
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 https://github.com/PyCQA/docformatter/pull/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.