mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-03 18:28:24 +00:00
Add support for PEP 701 (#7376)
## Summary This PR adds support for PEP 701 in Ruff. This is a rollup PR of all the other individual PRs. The separate PRs were created for logic separation and code reviews. Refer to each pull request for a detail description on the change. Refer to the PR description for the list of pull requests within this PR. ## Test Plan ### Formatter ecosystem checks Explanation for the change in ecosystem check: https://github.com/astral-sh/ruff/pull/7597#issue-1908878183 #### `main` ``` | project | similarity index | total files | changed files | |--------------|------------------:|------------------:|------------------:| | cpython | 0.76083 | 1789 | 1631 | | django | 0.99983 | 2760 | 36 | | transformers | 0.99963 | 2587 | 319 | | twine | 1.00000 | 33 | 0 | | typeshed | 0.99983 | 3496 | 18 | | warehouse | 0.99967 | 648 | 15 | | zulip | 0.99972 | 1437 | 21 | ``` #### `dhruv/pep-701` ``` | project | similarity index | total files | changed files | |--------------|------------------:|------------------:|------------------:| | cpython | 0.76051 | 1789 | 1632 | | django | 0.99983 | 2760 | 36 | | transformers | 0.99963 | 2587 | 319 | | twine | 1.00000 | 33 | 0 | | typeshed | 0.99983 | 3496 | 18 | | warehouse | 0.99967 | 648 | 15 | | zulip | 0.99972 | 1437 | 21 | ```
This commit is contained in:
parent
78b8741352
commit
e62e245c61
115 changed files with 44780 additions and 31370 deletions
|
@ -2600,6 +2600,14 @@ impl Constant {
|
|||
_ => false,
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns `true` if the constant is a string constant that is a unicode string (i.e., `u"..."`).
|
||||
pub fn is_unicode_string(&self) -> bool {
|
||||
match self {
|
||||
Constant::Str(value) => value.unicode,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
|
@ -2620,6 +2628,16 @@ impl Deref for StringConstant {
|
|||
}
|
||||
}
|
||||
|
||||
impl From<String> for StringConstant {
|
||||
fn from(value: String) -> StringConstant {
|
||||
Self {
|
||||
value,
|
||||
unicode: false,
|
||||
implicit_concatenated: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
pub struct BytesConstant {
|
||||
/// The bytes value as resolved by the parser (i.e., without quotes, or escape sequences, or
|
||||
|
@ -2636,6 +2654,15 @@ impl Deref for BytesConstant {
|
|||
}
|
||||
}
|
||||
|
||||
impl From<Vec<u8>> for BytesConstant {
|
||||
fn from(value: Vec<u8>) -> BytesConstant {
|
||||
Self {
|
||||
value,
|
||||
implicit_concatenated: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Vec<u8>> for Constant {
|
||||
fn from(value: Vec<u8>) -> Constant {
|
||||
Self::Bytes(BytesConstant {
|
||||
|
@ -3207,6 +3234,12 @@ pub struct ParenthesizedExpr {
|
|||
/// The underlying expression.
|
||||
pub expr: Expr,
|
||||
}
|
||||
impl ParenthesizedExpr {
|
||||
/// Returns `true` if the expression is may be parenthesized.
|
||||
pub fn is_parenthesized(&self) -> bool {
|
||||
self.range != self.expr.range()
|
||||
}
|
||||
}
|
||||
impl Ranged for ParenthesizedExpr {
|
||||
fn range(&self) -> TextRange {
|
||||
self.range
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue