From 0bd6e46bcf044c482ea496a48fb5081997df9415 Mon Sep 17 00:00:00 2001 From: Aditya Pratap Singh Date: Wed, 16 Oct 2024 18:15:25 +0530 Subject: [PATCH] Avoid writing duplicate index URLs with `--emit-index-url` (#8226) closes #8116 --------- Co-authored-by: Charlie Marsh --- crates/uv/src/commands/pip/compile.rs | 8 ++++++-- crates/uv/tests/it/pip_compile.rs | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/crates/uv/src/commands/pip/compile.rs b/crates/uv/src/commands/pip/compile.rs index 93e2e2fd1..aa2c4de3b 100644 --- a/crates/uv/src/commands/pip/compile.rs +++ b/crates/uv/src/commands/pip/compile.rs @@ -4,6 +4,7 @@ use std::path::Path; use anyhow::{anyhow, Result}; use itertools::Itertools; use owo_colors::OwoColorize; +use rustc_hash::FxHashSet; use tracing::debug; use uv_cache::Cache; @@ -466,9 +467,12 @@ pub(crate) async fn pip_compile( writeln!(writer, "--index-url {}", index.url().verbatim())?; wrote_preamble = true; } + let mut seen = FxHashSet::default(); for extra_index in index_locations.implicit_indexes() { - writeln!(writer, "--extra-index-url {}", extra_index.url().verbatim())?; - wrote_preamble = true; + if seen.insert(extra_index.url()) { + writeln!(writer, "--extra-index-url {}", extra_index.url().verbatim())?; + wrote_preamble = true; + } } } diff --git a/crates/uv/tests/it/pip_compile.rs b/crates/uv/tests/it/pip_compile.rs index a7ebc4c68..eaf7fd0ff 100644 --- a/crates/uv/tests/it/pip_compile.rs +++ b/crates/uv/tests/it/pip_compile.rs @@ -5263,7 +5263,8 @@ fn emit_index_urls() -> Result<()> { .arg("--index-url") .arg("https://test.pypi.org/simple/") .arg("--extra-index-url") - .arg("https://pypi.org/simple"), @r###" + .arg("https://pypi.org/simple") + .env("UV_EXTRA_INDEX_URL", "https://pypi.org/simple"), @r###" success: true exit_code: 0 ----- stdout -----