mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-12 05:16:21 +00:00
Add documentation for flake8-quotes rules (#2650)
This commit is contained in:
parent
367f115d83
commit
a9aa96b24f
10 changed files with 192 additions and 8 deletions
|
@ -1162,10 +1162,10 @@ For more, see [flake8-quotes](https://pypi.org/project/flake8-quotes/) on PyPI.
|
|||
|
||||
| Code | Name | Message | Fix |
|
||||
| ---- | ---- | ------- | --- |
|
||||
| Q000 | bad-quotes-inline-string | Double quotes found but single quotes preferred | 🛠 |
|
||||
| Q001 | bad-quotes-multiline-string | Double quote multiline found but single quotes preferred | 🛠 |
|
||||
| Q002 | bad-quotes-docstring | Double quote docstring found but single quotes preferred | 🛠 |
|
||||
| Q003 | avoid-quote-escape | Change outer quotes to avoid escaping inner quotes | 🛠 |
|
||||
| [Q000](https://github.com/charliermarsh/ruff/blob/main/docs/rules/bad-quotes-inline-string.md) | [bad-quotes-inline-string](https://github.com/charliermarsh/ruff/blob/main/docs/rules/bad-quotes-inline-string.md) | Double quotes found but single quotes preferred | 🛠 |
|
||||
| [Q001](https://github.com/charliermarsh/ruff/blob/main/docs/rules/bad-quotes-multiline-string.md) | [bad-quotes-multiline-string](https://github.com/charliermarsh/ruff/blob/main/docs/rules/bad-quotes-multiline-string.md) | Double quote multiline found but single quotes preferred | 🛠 |
|
||||
| [Q002](https://github.com/charliermarsh/ruff/blob/main/docs/rules/bad-quotes-docstring.md) | [bad-quotes-docstring](https://github.com/charliermarsh/ruff/blob/main/docs/rules/bad-quotes-docstring.md) | Double quote docstring found but single quotes preferred | 🛠 |
|
||||
| [Q003](https://github.com/charliermarsh/ruff/blob/main/docs/rules/avoid-quote-escape.md) | [avoid-quote-escape](https://github.com/charliermarsh/ruff/blob/main/docs/rules/avoid-quote-escape.md) | Change outer quotes to avoid escaping inner quotes | 🛠 |
|
||||
|
||||
### flake8-return (RET)
|
||||
|
||||
|
|
|
@ -12,6 +12,24 @@ use crate::source_code::Locator;
|
|||
use crate::violation::AlwaysAutofixableViolation;
|
||||
|
||||
define_violation!(
|
||||
/// ### What it does
|
||||
/// Checks for inline strings that use single quotes or double quotes,
|
||||
/// depending on the value of the [`inline-quotes`](https://github.com/charliermarsh/ruff#inline-quotes)
|
||||
/// setting.
|
||||
///
|
||||
/// ### Why is this bad?
|
||||
/// Consistency is good. Use either single or double quotes for inline
|
||||
/// strings, but be consistent.
|
||||
///
|
||||
/// ### Example
|
||||
/// ```python
|
||||
/// foo = 'bar'
|
||||
/// ```
|
||||
///
|
||||
/// Assuming `inline-quotes` is set to `double`, use instead:
|
||||
/// ```python
|
||||
/// foo = "bar"
|
||||
/// ```
|
||||
pub struct BadQuotesInlineString {
|
||||
pub quote: Quote,
|
||||
}
|
||||
|
@ -36,6 +54,28 @@ impl AlwaysAutofixableViolation for BadQuotesInlineString {
|
|||
}
|
||||
|
||||
define_violation!(
|
||||
/// ### What it does
|
||||
/// Checks for multiline strings that use single quotes or double quotes,
|
||||
/// depending on the value of the [`multiline-quotes`](https://github.com/charliermarsh/ruff#multiline-quotes)
|
||||
/// setting.
|
||||
///
|
||||
/// ### Why is this bad?
|
||||
/// Consistency is good. Use either single or double quotes for multiline
|
||||
/// strings, but be consistent.
|
||||
///
|
||||
/// ### Example
|
||||
/// ```python
|
||||
/// foo = '''
|
||||
/// bar
|
||||
/// '''
|
||||
/// ```
|
||||
///
|
||||
/// Assuming `multiline-quotes` is set to `double`, use instead:
|
||||
/// ```python
|
||||
/// foo = """
|
||||
/// bar
|
||||
/// """
|
||||
/// ```
|
||||
pub struct BadQuotesMultilineString {
|
||||
pub quote: Quote,
|
||||
}
|
||||
|
@ -60,6 +100,27 @@ impl AlwaysAutofixableViolation for BadQuotesMultilineString {
|
|||
}
|
||||
|
||||
define_violation!(
|
||||
/// ### What it does
|
||||
/// Checks for docstrings that use single quotes or double quotes, depending on the value of the [`docstring-quotes`](https://github.com/charliermarsh/ruff#docstring-quotes)
|
||||
/// setting.
|
||||
///
|
||||
/// ### Why is this bad?
|
||||
/// Consistency is good. Use either single or double quotes for docstring
|
||||
/// strings, but be consistent.
|
||||
///
|
||||
/// ### Example
|
||||
/// ```python
|
||||
/// '''
|
||||
/// bar
|
||||
/// '''
|
||||
/// ```
|
||||
///
|
||||
/// Assuming `docstring-quotes` is set to `double`, use instead:
|
||||
/// ```python
|
||||
/// """
|
||||
/// bar
|
||||
/// """
|
||||
/// ```
|
||||
pub struct BadQuotesDocstring {
|
||||
pub quote: Quote,
|
||||
}
|
||||
|
@ -84,6 +145,23 @@ impl AlwaysAutofixableViolation for BadQuotesDocstring {
|
|||
}
|
||||
|
||||
define_violation!(
|
||||
/// ### What it does
|
||||
/// Checks for strings that include escaped quotes, and suggests changing
|
||||
/// the quote style to avoid the need to escape them.
|
||||
///
|
||||
/// ### Why is this bad?
|
||||
/// It's preferable to avoid escaped quotes in strings. By changing the
|
||||
/// outer quote style, you can avoid escaping inner quotes.
|
||||
///
|
||||
/// ### Example
|
||||
/// ```python
|
||||
/// foo = 'bar\'s'
|
||||
/// ```
|
||||
///
|
||||
/// Use instead:
|
||||
/// ```python
|
||||
/// foo = "bar's"
|
||||
/// ```
|
||||
pub struct AvoidQuoteEscape;
|
||||
);
|
||||
impl AlwaysAutofixableViolation for AvoidQuoteEscape {
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
use std::fmt;
|
||||
|
||||
use crate::ast::helpers::unparse_constant;
|
||||
use itertools::Itertools;
|
||||
use ruff_macros::{define_violation, derive_message_formats};
|
||||
use rustpython_parser::ast::{Cmpop, Expr, ExprKind, Located};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::ast::helpers::unparse_constant;
|
||||
use crate::ast::types::Range;
|
||||
use crate::checkers::ast::Checker;
|
||||
use crate::registry::Diagnostic;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
use crate::ast::helpers::unparse_constant;
|
||||
use itertools::Itertools;
|
||||
use ruff_macros::{define_violation, derive_message_formats};
|
||||
use rustpython_parser::ast::{Constant, Expr, ExprKind};
|
||||
|
||||
use crate::ast::helpers::unparse_constant;
|
||||
use crate::ast::types::Range;
|
||||
use crate::checkers::ast::Checker;
|
||||
use crate::registry::Diagnostic;
|
||||
|
|
|
@ -4,11 +4,10 @@
|
|||
use std::fs;
|
||||
|
||||
use anyhow::Result;
|
||||
use ruff::registry::{Linter, Rule, RuleNamespace};
|
||||
use ruff::AutofixAvailability;
|
||||
use strum::IntoEnumIterator;
|
||||
|
||||
use ruff::registry::{Linter, Rule, RuleNamespace};
|
||||
|
||||
#[derive(clap::Args)]
|
||||
pub struct Args {
|
||||
/// Write the generated docs to stdout (rather than to the filesystem).
|
||||
|
@ -22,10 +21,12 @@ pub fn main(args: &Args) -> Result<()> {
|
|||
let mut output = String::new();
|
||||
output.push_str(&format!("# {} ({})", rule.as_ref(), rule.code()));
|
||||
output.push('\n');
|
||||
output.push('\n');
|
||||
|
||||
let (linter, _) = Linter::parse_code(rule.code()).unwrap();
|
||||
output.push_str(&format!("Derived from the **{}** linter.", linter.name()));
|
||||
output.push('\n');
|
||||
output.push('\n');
|
||||
|
||||
if let Some(autofix) = rule.autofixable() {
|
||||
output.push_str(match autofix.available {
|
||||
|
@ -33,6 +34,7 @@ pub fn main(args: &Args) -> Result<()> {
|
|||
AutofixAvailability::Always => "Autofix is always available.",
|
||||
});
|
||||
output.push('\n');
|
||||
output.push('\n');
|
||||
}
|
||||
|
||||
output.push_str(explanation.trim());
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
# assert-raises-exception (B017)
|
||||
|
||||
Derived from the **flake8-bugbear** linter.
|
||||
|
||||
### What it does
|
||||
Checks for `self.assertRaises(Exception)`.
|
||||
|
||||
|
|
23
docs/rules/avoid-quote-escape.md
Normal file
23
docs/rules/avoid-quote-escape.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
# avoid-quote-escape (Q003)
|
||||
|
||||
Derived from the **flake8-quotes** linter.
|
||||
|
||||
Autofix is always available.
|
||||
|
||||
### What it does
|
||||
Checks for strings that include escaped quotes, and suggests changing
|
||||
the quote style to avoid the need to escape them.
|
||||
|
||||
### Why is this bad?
|
||||
It's preferable to avoid escaped quotes in strings. By changing the
|
||||
outer quote style, you can avoid escaping inner quotes.
|
||||
|
||||
### Example
|
||||
```python
|
||||
foo = 'bar\'s'
|
||||
```
|
||||
|
||||
Use instead:
|
||||
```python
|
||||
foo = "bar's"
|
||||
```
|
27
docs/rules/bad-quotes-docstring.md
Normal file
27
docs/rules/bad-quotes-docstring.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
# bad-quotes-docstring (Q002)
|
||||
|
||||
Derived from the **flake8-quotes** linter.
|
||||
|
||||
Autofix is always available.
|
||||
|
||||
### What it does
|
||||
Checks for docstrings that use single quotes or double quotes, depending on the value of the [`docstring-quotes`](https://github.com/charliermarsh/ruff#docstring-quotes)
|
||||
setting.
|
||||
|
||||
### Why is this bad?
|
||||
Consistency is good. Use either single or double quotes for docstring
|
||||
strings, but be consistent.
|
||||
|
||||
### Example
|
||||
```python
|
||||
'''
|
||||
bar
|
||||
'''
|
||||
```
|
||||
|
||||
Assuming `docstring-quotes` is set to `double`, use instead:
|
||||
```python
|
||||
"""
|
||||
bar
|
||||
"""
|
||||
```
|
24
docs/rules/bad-quotes-inline-string.md
Normal file
24
docs/rules/bad-quotes-inline-string.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
# bad-quotes-inline-string (Q000)
|
||||
|
||||
Derived from the **flake8-quotes** linter.
|
||||
|
||||
Autofix is always available.
|
||||
|
||||
### What it does
|
||||
Checks for inline strings that use single quotes or double quotes,
|
||||
depending on the value of the [`inline-quotes`](https://github.com/charliermarsh/ruff#inline-quotes)
|
||||
setting.
|
||||
|
||||
### Why is this bad?
|
||||
Consistency is good. Use either single or double quotes for inline
|
||||
strings, but be consistent.
|
||||
|
||||
### Example
|
||||
```python
|
||||
foo = 'bar'
|
||||
```
|
||||
|
||||
Assuming `inline-quotes` is set to `double`, use instead:
|
||||
```python
|
||||
foo = "bar"
|
||||
```
|
28
docs/rules/bad-quotes-multiline-string.md
Normal file
28
docs/rules/bad-quotes-multiline-string.md
Normal file
|
@ -0,0 +1,28 @@
|
|||
# bad-quotes-multiline-string (Q001)
|
||||
|
||||
Derived from the **flake8-quotes** linter.
|
||||
|
||||
Autofix is always available.
|
||||
|
||||
### What it does
|
||||
Checks for multiline strings that use single quotes or double quotes,
|
||||
depending on the value of the [`multiline-quotes`](https://github.com/charliermarsh/ruff#multiline-quotes)
|
||||
setting.
|
||||
|
||||
### Why is this bad?
|
||||
Consistency is good. Use either single or double quotes for multiline
|
||||
strings, but be consistent.
|
||||
|
||||
### Example
|
||||
```python
|
||||
foo = '''
|
||||
bar
|
||||
'''
|
||||
```
|
||||
|
||||
Assuming `multiline-quotes` is set to `double`, use instead:
|
||||
```python
|
||||
foo = """
|
||||
bar
|
||||
"""
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue