mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-10 21:58:05 +00:00
FString formatting: remove fstring handling in normalize_string
(#10119)
This commit is contained in:
parent
51ce88bb23
commit
1711bca4a0
2 changed files with 14 additions and 3 deletions
|
@ -62,6 +62,7 @@ impl Format<PyFormatContext<'_>> for FormatFStringLiteralElement<'_> {
|
|||
self.context.quotes(),
|
||||
self.context.prefix(),
|
||||
is_hex_codes_in_unicode_sequences_enabled(f.context()),
|
||||
true,
|
||||
);
|
||||
match &normalized {
|
||||
Cow::Borrowed(_) => source_text_slice(self.element.range()).fmt(f),
|
||||
|
|
|
@ -7,7 +7,7 @@ use ruff_text_size::{Ranged, TextRange};
|
|||
use crate::context::FStringState;
|
||||
use crate::options::PythonVersion;
|
||||
use crate::prelude::*;
|
||||
use crate::preview::is_hex_codes_in_unicode_sequences_enabled;
|
||||
use crate::preview::{is_f_string_formatting_enabled, is_hex_codes_in_unicode_sequences_enabled};
|
||||
use crate::string::{QuoteChar, Quoting, StringPart, StringPrefix, StringQuotes};
|
||||
use crate::QuoteStyle;
|
||||
|
||||
|
@ -18,6 +18,7 @@ pub(crate) struct StringNormalizer {
|
|||
f_string_state: FStringState,
|
||||
target_version: PythonVersion,
|
||||
normalize_hex: bool,
|
||||
format_fstring: bool,
|
||||
}
|
||||
|
||||
impl StringNormalizer {
|
||||
|
@ -29,6 +30,7 @@ impl StringNormalizer {
|
|||
f_string_state: context.f_string_state(),
|
||||
target_version: context.options().target_version(),
|
||||
normalize_hex: is_hex_codes_in_unicode_sequences_enabled(context),
|
||||
format_fstring: is_f_string_formatting_enabled(context),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -156,7 +158,13 @@ impl StringNormalizer {
|
|||
|
||||
let quotes = self.choose_quotes(string, locator);
|
||||
|
||||
let normalized = normalize_string(raw_content, quotes, string.prefix(), self.normalize_hex);
|
||||
let normalized = normalize_string(
|
||||
raw_content,
|
||||
quotes,
|
||||
string.prefix(),
|
||||
self.normalize_hex,
|
||||
self.format_fstring,
|
||||
);
|
||||
|
||||
NormalizedString {
|
||||
prefix: string.prefix(),
|
||||
|
@ -394,6 +402,7 @@ pub(crate) fn normalize_string(
|
|||
quotes: StringQuotes,
|
||||
prefix: StringPrefix,
|
||||
normalize_hex: bool,
|
||||
format_fstring: bool,
|
||||
) -> Cow<str> {
|
||||
// The normalized string if `input` is not yet normalized.
|
||||
// `output` must remain empty if `input` is already normalized.
|
||||
|
@ -409,7 +418,7 @@ pub(crate) fn normalize_string(
|
|||
let mut chars = input.char_indices().peekable();
|
||||
|
||||
let is_raw = prefix.is_raw_string();
|
||||
let is_fstring = prefix.is_fstring();
|
||||
let is_fstring = !format_fstring && prefix.is_fstring();
|
||||
let mut formatted_value_nesting = 0u32;
|
||||
|
||||
while let Some((index, c)) = chars.next() {
|
||||
|
@ -648,6 +657,7 @@ mod tests {
|
|||
},
|
||||
StringPrefix::BYTE,
|
||||
true,
|
||||
true,
|
||||
);
|
||||
|
||||
assert_eq!(r"\x89\x50\x4e\x47\x0d\x0a\x1a\x0a", &normalized);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue