mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-11-04 13:39:07 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			564 lines
		
	
	
	
		
			10 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			564 lines
		
	
	
	
		
			10 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
---
 | 
						|
source: crates/ruff_python_formatter/tests/fixtures.rs
 | 
						|
input_file: crates/ruff_python_formatter/resources/test/fixtures/ruff/docstring.py
 | 
						|
---
 | 
						|
## Input
 | 
						|
```py
 | 
						|
def single_line_backslashes1():
 | 
						|
  """ content\     """
 | 
						|
  return
 | 
						|
 | 
						|
 | 
						|
def single_line_backslashes2():
 | 
						|
  """ content\\     """
 | 
						|
  return
 | 
						|
 | 
						|
 | 
						|
def single_line_backslashes3():
 | 
						|
  """ content\\\     """
 | 
						|
  return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes1():
 | 
						|
  """This is a docstring with
 | 
						|
  some lines of text\     """
 | 
						|
  return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes2():
 | 
						|
  """This is a docstring with
 | 
						|
  some lines of text\\     """
 | 
						|
  return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes3():
 | 
						|
  """This is a docstring with
 | 
						|
  some lines of text\\\     """
 | 
						|
  return
 | 
						|
 | 
						|
 | 
						|
def multiple_negatively_indented_docstring_lines():
 | 
						|
    """a
 | 
						|
 b
 | 
						|
  c
 | 
						|
   d
 | 
						|
    e
 | 
						|
    """
 | 
						|
 | 
						|
 | 
						|
def overindentend_docstring():
 | 
						|
    """a
 | 
						|
            over-indented
 | 
						|
    """
 | 
						|
 | 
						|
 | 
						|
def comment_before_docstring():
 | 
						|
    # don't lose this function comment ...
 | 
						|
    """Does nothing.
 | 
						|
 | 
						|
    But it has comments
 | 
						|
    """  # ... neither lose this function comment
 | 
						|
 | 
						|
 | 
						|
class CommentBeforeDocstring():
 | 
						|
    # don't lose this class comment ...
 | 
						|
    """Empty class.
 | 
						|
 | 
						|
    But it has comments
 | 
						|
    """  # ... neither lose this class comment
 | 
						|
 | 
						|
 | 
						|
class IndentMeSome:
 | 
						|
    def doc_string_without_linebreak_after_colon(self): """ This is somewhat strange
 | 
						|
         a
 | 
						|
      b
 | 
						|
         We format this a is the docstring had started properly indented on the next
 | 
						|
         line if the target indentation. This may we incorrect since source and target
 | 
						|
         indentation can be incorrect, but this is also an edge case.
 | 
						|
         """
 | 
						|
 | 
						|
 | 
						|
class IgnoreImplicitlyConcatenatedStrings:
 | 
						|
    """""" ""
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break1():
 | 
						|
    """
 | 
						|
    he said "the news of my death have been greatly exaggerated"
 | 
						|
    """
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break2():
 | 
						|
    """he said "the news of my death have been greatly exaggerated"
 | 
						|
    """
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break3():
 | 
						|
    """he said "the news of my death have been greatly exaggerated"
 | 
						|
 | 
						|
    """
 | 
						|
 | 
						|
 | 
						|
class TabbedIndent:
 | 
						|
	def tabbed_indent(self):
 | 
						|
		"""check for correct tabbed formatting
 | 
						|
		                            ^^^^^^^^^^
 | 
						|
		Normal indented line
 | 
						|
		  	- autor
 | 
						|
		"""
 | 
						|
```
 | 
						|
 | 
						|
## Outputs
 | 
						|
### Output 1
 | 
						|
```
 | 
						|
indent-style            = Spaces, size: 4
 | 
						|
line-width              = 88
 | 
						|
tab-width               = 8
 | 
						|
quote-style             = Double
 | 
						|
magic-trailing-comma    = Respect
 | 
						|
```
 | 
						|
 | 
						|
```py
 | 
						|
def single_line_backslashes1():
 | 
						|
    """content\ """
 | 
						|
    return
 | 
						|
 | 
						|
 | 
						|
def single_line_backslashes2():
 | 
						|
    """content\\"""
 | 
						|
    return
 | 
						|
 | 
						|
 | 
						|
def single_line_backslashes3():
 | 
						|
    """content\\\ """
 | 
						|
    return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes1():
 | 
						|
    """This is a docstring with
 | 
						|
    some lines of text\ """
 | 
						|
    return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes2():
 | 
						|
    """This is a docstring with
 | 
						|
    some lines of text\\"""
 | 
						|
    return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes3():
 | 
						|
    """This is a docstring with
 | 
						|
    some lines of text\\\ """
 | 
						|
    return
 | 
						|
 | 
						|
 | 
						|
def multiple_negatively_indented_docstring_lines():
 | 
						|
    """a
 | 
						|
    b
 | 
						|
     c
 | 
						|
      d
 | 
						|
       e
 | 
						|
    """
 | 
						|
 | 
						|
 | 
						|
def overindentend_docstring():
 | 
						|
    """a
 | 
						|
    over-indented
 | 
						|
    """
 | 
						|
 | 
						|
 | 
						|
def comment_before_docstring():
 | 
						|
    # don't lose this function comment ...
 | 
						|
    """Does nothing.
 | 
						|
 | 
						|
    But it has comments
 | 
						|
    """  # ... neither lose this function comment
 | 
						|
 | 
						|
 | 
						|
class CommentBeforeDocstring:
 | 
						|
    # don't lose this class comment ...
 | 
						|
    """Empty class.
 | 
						|
 | 
						|
    But it has comments
 | 
						|
    """  # ... neither lose this class comment
 | 
						|
 | 
						|
 | 
						|
class IndentMeSome:
 | 
						|
    def doc_string_without_linebreak_after_colon(self):
 | 
						|
        """This is somewhat strange
 | 
						|
           a
 | 
						|
        b
 | 
						|
           We format this a is the docstring had started properly indented on the next
 | 
						|
           line if the target indentation. This may we incorrect since source and target
 | 
						|
           indentation can be incorrect, but this is also an edge case.
 | 
						|
        """
 | 
						|
 | 
						|
 | 
						|
class IgnoreImplicitlyConcatenatedStrings:
 | 
						|
    """""" ""
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break1():
 | 
						|
    """
 | 
						|
    he said "the news of my death have been greatly exaggerated"
 | 
						|
    """
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break2():
 | 
						|
    """he said "the news of my death have been greatly exaggerated" """
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break3():
 | 
						|
    """he said "the news of my death have been greatly exaggerated" """
 | 
						|
 | 
						|
 | 
						|
class TabbedIndent:
 | 
						|
    def tabbed_indent(self):
 | 
						|
        """check for correct tabbed formatting
 | 
						|
                                    ^^^^^^^^^^
 | 
						|
        Normal indented line
 | 
						|
                - autor
 | 
						|
        """
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
### Output 2
 | 
						|
```
 | 
						|
indent-style            = Spaces, size: 2
 | 
						|
line-width              = 88
 | 
						|
tab-width               = 8
 | 
						|
quote-style             = Double
 | 
						|
magic-trailing-comma    = Respect
 | 
						|
```
 | 
						|
 | 
						|
```py
 | 
						|
def single_line_backslashes1():
 | 
						|
  """content\ """
 | 
						|
  return
 | 
						|
 | 
						|
 | 
						|
def single_line_backslashes2():
 | 
						|
  """content\\"""
 | 
						|
  return
 | 
						|
 | 
						|
 | 
						|
def single_line_backslashes3():
 | 
						|
  """content\\\ """
 | 
						|
  return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes1():
 | 
						|
  """This is a docstring with
 | 
						|
  some lines of text\ """
 | 
						|
  return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes2():
 | 
						|
  """This is a docstring with
 | 
						|
  some lines of text\\"""
 | 
						|
  return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes3():
 | 
						|
  """This is a docstring with
 | 
						|
  some lines of text\\\ """
 | 
						|
  return
 | 
						|
 | 
						|
 | 
						|
def multiple_negatively_indented_docstring_lines():
 | 
						|
  """a
 | 
						|
  b
 | 
						|
   c
 | 
						|
    d
 | 
						|
     e
 | 
						|
  """
 | 
						|
 | 
						|
 | 
						|
def overindentend_docstring():
 | 
						|
  """a
 | 
						|
  over-indented
 | 
						|
  """
 | 
						|
 | 
						|
 | 
						|
def comment_before_docstring():
 | 
						|
  # don't lose this function comment ...
 | 
						|
  """Does nothing.
 | 
						|
 | 
						|
  But it has comments
 | 
						|
  """  # ... neither lose this function comment
 | 
						|
 | 
						|
 | 
						|
class CommentBeforeDocstring:
 | 
						|
  # don't lose this class comment ...
 | 
						|
  """Empty class.
 | 
						|
 | 
						|
  But it has comments
 | 
						|
  """  # ... neither lose this class comment
 | 
						|
 | 
						|
 | 
						|
class IndentMeSome:
 | 
						|
  def doc_string_without_linebreak_after_colon(self):
 | 
						|
    """This is somewhat strange
 | 
						|
       a
 | 
						|
    b
 | 
						|
       We format this a is the docstring had started properly indented on the next
 | 
						|
       line if the target indentation. This may we incorrect since source and target
 | 
						|
       indentation can be incorrect, but this is also an edge case.
 | 
						|
    """
 | 
						|
 | 
						|
 | 
						|
class IgnoreImplicitlyConcatenatedStrings:
 | 
						|
  """""" ""
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break1():
 | 
						|
  """
 | 
						|
  he said "the news of my death have been greatly exaggerated"
 | 
						|
  """
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break2():
 | 
						|
  """he said "the news of my death have been greatly exaggerated" """
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break3():
 | 
						|
  """he said "the news of my death have been greatly exaggerated" """
 | 
						|
 | 
						|
 | 
						|
class TabbedIndent:
 | 
						|
  def tabbed_indent(self):
 | 
						|
    """check for correct tabbed formatting
 | 
						|
                                ^^^^^^^^^^
 | 
						|
    Normal indented line
 | 
						|
            - autor
 | 
						|
    """
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
### Output 3
 | 
						|
```
 | 
						|
indent-style            = Tab
 | 
						|
line-width              = 88
 | 
						|
tab-width               = 8
 | 
						|
quote-style             = Double
 | 
						|
magic-trailing-comma    = Respect
 | 
						|
```
 | 
						|
 | 
						|
```py
 | 
						|
def single_line_backslashes1():
 | 
						|
	"""content\ """
 | 
						|
	return
 | 
						|
 | 
						|
 | 
						|
def single_line_backslashes2():
 | 
						|
	"""content\\"""
 | 
						|
	return
 | 
						|
 | 
						|
 | 
						|
def single_line_backslashes3():
 | 
						|
	"""content\\\ """
 | 
						|
	return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes1():
 | 
						|
	"""This is a docstring with
 | 
						|
	some lines of text\ """
 | 
						|
	return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes2():
 | 
						|
	"""This is a docstring with
 | 
						|
	some lines of text\\"""
 | 
						|
	return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes3():
 | 
						|
	"""This is a docstring with
 | 
						|
	some lines of text\\\ """
 | 
						|
	return
 | 
						|
 | 
						|
 | 
						|
def multiple_negatively_indented_docstring_lines():
 | 
						|
	"""a
 | 
						|
	b
 | 
						|
	 c
 | 
						|
	  d
 | 
						|
	   e
 | 
						|
	"""
 | 
						|
 | 
						|
 | 
						|
def overindentend_docstring():
 | 
						|
	"""a
 | 
						|
	over-indented
 | 
						|
	"""
 | 
						|
 | 
						|
 | 
						|
def comment_before_docstring():
 | 
						|
	# don't lose this function comment ...
 | 
						|
	"""Does nothing.
 | 
						|
 | 
						|
	But it has comments
 | 
						|
	"""  # ... neither lose this function comment
 | 
						|
 | 
						|
 | 
						|
class CommentBeforeDocstring:
 | 
						|
	# don't lose this class comment ...
 | 
						|
	"""Empty class.
 | 
						|
 | 
						|
	But it has comments
 | 
						|
	"""  # ... neither lose this class comment
 | 
						|
 | 
						|
 | 
						|
class IndentMeSome:
 | 
						|
	def doc_string_without_linebreak_after_colon(self):
 | 
						|
		"""This is somewhat strange
 | 
						|
		   a
 | 
						|
		b
 | 
						|
		   We format this a is the docstring had started properly indented on the next
 | 
						|
		   line if the target indentation. This may we incorrect since source and target
 | 
						|
		   indentation can be incorrect, but this is also an edge case.
 | 
						|
		"""
 | 
						|
 | 
						|
 | 
						|
class IgnoreImplicitlyConcatenatedStrings:
 | 
						|
	"""""" ""
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break1():
 | 
						|
	"""
 | 
						|
	he said "the news of my death have been greatly exaggerated"
 | 
						|
	"""
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break2():
 | 
						|
	"""he said "the news of my death have been greatly exaggerated" """
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break3():
 | 
						|
	"""he said "the news of my death have been greatly exaggerated" """
 | 
						|
 | 
						|
 | 
						|
class TabbedIndent:
 | 
						|
	def tabbed_indent(self):
 | 
						|
		"""check for correct tabbed formatting
 | 
						|
		                            ^^^^^^^^^^
 | 
						|
		Normal indented line
 | 
						|
		        - autor
 | 
						|
		"""
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
### Output 4
 | 
						|
```
 | 
						|
indent-style            = Tab
 | 
						|
line-width              = 88
 | 
						|
tab-width               = 4
 | 
						|
quote-style             = Double
 | 
						|
magic-trailing-comma    = Respect
 | 
						|
```
 | 
						|
 | 
						|
```py
 | 
						|
def single_line_backslashes1():
 | 
						|
	"""content\ """
 | 
						|
	return
 | 
						|
 | 
						|
 | 
						|
def single_line_backslashes2():
 | 
						|
	"""content\\"""
 | 
						|
	return
 | 
						|
 | 
						|
 | 
						|
def single_line_backslashes3():
 | 
						|
	"""content\\\ """
 | 
						|
	return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes1():
 | 
						|
	"""This is a docstring with
 | 
						|
	some lines of text\ """
 | 
						|
	return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes2():
 | 
						|
	"""This is a docstring with
 | 
						|
	some lines of text\\"""
 | 
						|
	return
 | 
						|
 | 
						|
 | 
						|
def multiline_backslashes3():
 | 
						|
	"""This is a docstring with
 | 
						|
	some lines of text\\\ """
 | 
						|
	return
 | 
						|
 | 
						|
 | 
						|
def multiple_negatively_indented_docstring_lines():
 | 
						|
	"""a
 | 
						|
	b
 | 
						|
	 c
 | 
						|
	  d
 | 
						|
	   e
 | 
						|
	"""
 | 
						|
 | 
						|
 | 
						|
def overindentend_docstring():
 | 
						|
	"""a
 | 
						|
	over-indented
 | 
						|
	"""
 | 
						|
 | 
						|
 | 
						|
def comment_before_docstring():
 | 
						|
	# don't lose this function comment ...
 | 
						|
	"""Does nothing.
 | 
						|
 | 
						|
	But it has comments
 | 
						|
	"""  # ... neither lose this function comment
 | 
						|
 | 
						|
 | 
						|
class CommentBeforeDocstring:
 | 
						|
	# don't lose this class comment ...
 | 
						|
	"""Empty class.
 | 
						|
 | 
						|
	But it has comments
 | 
						|
	"""  # ... neither lose this class comment
 | 
						|
 | 
						|
 | 
						|
class IndentMeSome:
 | 
						|
	def doc_string_without_linebreak_after_colon(self):
 | 
						|
		"""This is somewhat strange
 | 
						|
		   a
 | 
						|
		b
 | 
						|
		   We format this a is the docstring had started properly indented on the next
 | 
						|
		   line if the target indentation. This may we incorrect since source and target
 | 
						|
		   indentation can be incorrect, but this is also an edge case.
 | 
						|
		"""
 | 
						|
 | 
						|
 | 
						|
class IgnoreImplicitlyConcatenatedStrings:
 | 
						|
	"""""" ""
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break1():
 | 
						|
	"""
 | 
						|
	he said "the news of my death have been greatly exaggerated"
 | 
						|
	"""
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break2():
 | 
						|
	"""he said "the news of my death have been greatly exaggerated" """
 | 
						|
 | 
						|
 | 
						|
def docstring_that_ends_with_quote_and_a_line_break3():
 | 
						|
	"""he said "the news of my death have been greatly exaggerated" """
 | 
						|
 | 
						|
 | 
						|
class TabbedIndent:
 | 
						|
	def tabbed_indent(self):
 | 
						|
		"""check for correct tabbed formatting
 | 
						|
		                            ^^^^^^^^^^
 | 
						|
		Normal indented line
 | 
						|
		    - autor
 | 
						|
		"""
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
 |