Avoid duplicate [tool.uv] header in TOML examples (#8545)
## Summary For example, in: ```toml [tool.uv] [[tool.uv.index]] name = "pytorch" url = "https://download.pytorch.org/whl/cu121" ``` We can just omit `[tool.uv]`.
This commit is contained in:
@@ -268,7 +268,12 @@ fn emit_field(output: &mut String, name: &str, field: &OptionField, parents: &[S
|
||||
} => {
|
||||
output.push_str(&format_code(
|
||||
"pyproject.toml",
|
||||
&format_header(field.scope, parents, ConfigurationFile::PyprojectToml),
|
||||
&format_header(
|
||||
field.scope,
|
||||
field.example,
|
||||
parents,
|
||||
ConfigurationFile::PyprojectToml,
|
||||
),
|
||||
field.example,
|
||||
));
|
||||
}
|
||||
@@ -278,12 +283,22 @@ fn emit_field(output: &mut String, name: &str, field: &OptionField, parents: &[S
|
||||
} => {
|
||||
output.push_str(&format_tab(
|
||||
"pyproject.toml",
|
||||
&format_header(field.scope, parents, ConfigurationFile::PyprojectToml),
|
||||
&format_header(
|
||||
field.scope,
|
||||
field.example,
|
||||
parents,
|
||||
ConfigurationFile::PyprojectToml,
|
||||
),
|
||||
field.example,
|
||||
));
|
||||
output.push_str(&format_tab(
|
||||
"uv.toml",
|
||||
&format_header(field.scope, parents, ConfigurationFile::UvToml),
|
||||
&format_header(
|
||||
field.scope,
|
||||
field.example,
|
||||
parents,
|
||||
ConfigurationFile::UvToml,
|
||||
),
|
||||
field.example,
|
||||
));
|
||||
}
|
||||
@@ -293,12 +308,20 @@ fn emit_field(output: &mut String, name: &str, field: &OptionField, parents: &[S
|
||||
}
|
||||
|
||||
fn format_tab(tab_name: &str, header: &str, content: &str) -> String {
|
||||
format!(
|
||||
"=== \"{}\"\n\n ```toml\n {}\n{}\n ```\n",
|
||||
tab_name,
|
||||
header,
|
||||
textwrap::indent(content, " ")
|
||||
)
|
||||
if header.is_empty() {
|
||||
format!(
|
||||
"=== \"{}\"\n\n ```toml\n{}\n ```\n",
|
||||
tab_name,
|
||||
textwrap::indent(content, " ")
|
||||
)
|
||||
} else {
|
||||
format!(
|
||||
"=== \"{}\"\n\n ```toml\n {}\n{}\n ```\n",
|
||||
tab_name,
|
||||
header,
|
||||
textwrap::indent(content, " ")
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fn format_code(file_name: &str, header: &str, content: &str) -> String {
|
||||
@@ -308,7 +331,12 @@ fn format_code(file_name: &str, header: &str, content: &str) -> String {
|
||||
/// Format the TOML header for the example usage for a given option.
|
||||
///
|
||||
/// For example: `[tool.uv.pip]`.
|
||||
fn format_header(scope: Option<&str>, parents: &[Set], configuration: ConfigurationFile) -> String {
|
||||
fn format_header(
|
||||
scope: Option<&str>,
|
||||
example: &str,
|
||||
parents: &[Set],
|
||||
configuration: ConfigurationFile,
|
||||
) -> String {
|
||||
let tool_parent = match configuration {
|
||||
ConfigurationFile::PyprojectToml => Some("tool.uv"),
|
||||
ConfigurationFile::UvToml => None,
|
||||
@@ -320,6 +348,15 @@ fn format_header(scope: Option<&str>, parents: &[Set], configuration: Configurat
|
||||
.chain(scope)
|
||||
.join(".");
|
||||
|
||||
// Ex) `[[tool.uv.index]]`
|
||||
if example.starts_with(&format!("[[{header}")) {
|
||||
return String::new();
|
||||
}
|
||||
// Ex) `[tool.uv.sources]`
|
||||
if example.starts_with(&format!("[{header}")) {
|
||||
return String::new();
|
||||
}
|
||||
|
||||
if header.is_empty() {
|
||||
String::new()
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user