Remove trailing period from user-facing messages (#5218)

## Summary

Per #5209, we only show periods in messages when the message itself
spans more than a single sentence.
This commit is contained in:
Charlie Marsh 2024-07-19 10:43:49 -04:00 committed by GitHub
parent f2e2825d1b
commit ed9b820815
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
55 changed files with 377 additions and 379 deletions

View file

@ -99,16 +99,16 @@ impl Diagnostic for ResolutionDiagnostic {
fn message(&self) -> String { fn message(&self) -> String {
match self { match self {
Self::MissingExtra { dist, extra } => { Self::MissingExtra { dist, extra } => {
format!("The package `{dist}` does not have an extra named `{extra}`.") format!("The package `{dist}` does not have an extra named `{extra}`")
} }
Self::MissingDev { dist, dev } => { Self::MissingDev { dist, dev } => {
format!("The package `{dist}` does not have a development dependency group named `{dev}`.") format!("The package `{dist}` does not have a development dependency group named `{dev}`")
} }
Self::YankedVersion { dist, reason } => { Self::YankedVersion { dist, reason } => {
if let Some(reason) = reason { if let Some(reason) = reason {
format!("`{dist}` is yanked (reason: \"{reason}\").") format!("`{dist}` is yanked (reason: \"{reason}\")")
} else { } else {
format!("`{dist}` is yanked.") format!("`{dist}` is yanked")
} }
} }
} }

View file

@ -167,10 +167,10 @@ impl Credentials {
let mut buf = String::new(); let mut buf = String::new();
decoder decoder
.read_to_string(&mut buf) .read_to_string(&mut buf)
.expect("HTTP Basic Authentication should be base64 encoded."); .expect("HTTP Basic Authentication should be base64 encoded");
let (username, password) = buf let (username, password) = buf
.split_once(':') .split_once(':')
.expect("HTTP Basic Authentication should include a `:` separator."); .expect("HTTP Basic Authentication should include a `:` separator");
let username = if username.is_empty() { let username = if username.is_empty() {
None None
} else { } else {

View file

@ -73,36 +73,34 @@ impl CompatArgs for PipCompileCompatArgs {
fn validate(&self) -> Result<()> { fn validate(&self) -> Result<()> {
if self.allow_unsafe { if self.allow_unsafe {
warn_user!( warn_user!(
"pip-compile's `--allow-unsafe` has no effect (uv can safely pin `pip` and other packages)." "pip-compile's `--allow-unsafe` has no effect (uv can safely pin `pip` and other packages)"
); );
} }
if self.no_allow_unsafe { if self.no_allow_unsafe {
warn_user!("pip-compile's `--no-allow-unsafe` has no effect (uv can safely pin `pip` and other packages)."); warn_user!("pip-compile's `--no-allow-unsafe` has no effect (uv can safely pin `pip` and other packages)");
} }
if self.reuse_hashes { if self.reuse_hashes {
return Err(anyhow!( return Err(anyhow!(
"pip-compile's `--reuse-hashes` is unsupported (uv doesn't reuse hashes)." "pip-compile's `--reuse-hashes` is unsupported (uv doesn't reuse hashes)"
)); ));
} }
if self.no_reuse_hashes { if self.no_reuse_hashes {
warn_user!( warn_user!("pip-compile's `--no-reuse-hashes` has no effect (uv doesn't reuse hashes)");
"pip-compile's `--no-reuse-hashes` has no effect (uv doesn't reuse hashes)."
);
} }
if let Some(resolver) = self.resolver { if let Some(resolver) = self.resolver {
match resolver { match resolver {
Resolver::Backtracking => { Resolver::Backtracking => {
warn_user!( warn_user!(
"pip-compile's `--resolver=backtracking` has no effect (uv always backtracks)." "pip-compile's `--resolver=backtracking` has no effect (uv always backtracks)"
); );
} }
Resolver::Legacy => { Resolver::Legacy => {
return Err(anyhow!( return Err(anyhow!(
"pip-compile's `--resolver=legacy` is unsupported (uv always backtracks)." "pip-compile's `--resolver=legacy` is unsupported (uv always backtracks)"
)); ));
} }
} }
@ -110,59 +108,59 @@ impl CompatArgs for PipCompileCompatArgs {
if self.max_rounds.is_some() { if self.max_rounds.is_some() {
return Err(anyhow!( return Err(anyhow!(
"pip-compile's `--max-rounds` is unsupported (uv always resolves until convergence)." "pip-compile's `--max-rounds` is unsupported (uv always resolves until convergence)"
)); ));
} }
if self.client_cert.is_some() { if self.client_cert.is_some() {
return Err(anyhow!( return Err(anyhow!(
"pip-compile's `--client-cert` is unsupported (uv doesn't support dedicated client certificates)." "pip-compile's `--client-cert` is unsupported (uv doesn't support dedicated client certificates)"
)); ));
} }
if self.trusted_host.is_some() { if self.trusted_host.is_some() {
return Err(anyhow!( return Err(anyhow!(
"pip-compile's `--trusted-host` is unsupported (uv always requires HTTPS)." "pip-compile's `--trusted-host` is unsupported (uv always requires HTTPS)"
)); ));
} }
if self.emit_trusted_host { if self.emit_trusted_host {
return Err(anyhow!( return Err(anyhow!(
"pip-compile's `--emit-trusted-host` is unsupported (uv always requires HTTPS)." "pip-compile's `--emit-trusted-host` is unsupported (uv always requires HTTPS)"
)); ));
} }
if self.no_emit_trusted_host { if self.no_emit_trusted_host {
warn_user!( warn_user!(
"pip-compile's `--no-emit-trusted-host` has no effect (uv never emits trusted hosts)." "pip-compile's `--no-emit-trusted-host` has no effect (uv never emits trusted hosts)"
); );
} }
if self.config.is_some() { if self.config.is_some() {
return Err(anyhow!( return Err(anyhow!(
"pip-compile's `--config` is unsupported (uv does not use a configuration file)." "pip-compile's `--config` is unsupported (uv does not use a configuration file)"
)); ));
} }
if self.no_config { if self.no_config {
warn_user!( warn_user!(
"pip-compile's `--no-config` has no effect (uv does not use a configuration file)." "pip-compile's `--no-config` has no effect (uv does not use a configuration file)"
); );
} }
if self.emit_options { if self.emit_options {
return Err(anyhow!( return Err(anyhow!(
"pip-compile's `--emit-options` is unsupported (uv never emits options)." "pip-compile's `--emit-options` is unsupported (uv never emits options)"
)); ));
} }
if self.no_emit_options { if self.no_emit_options {
warn_user!("pip-compile's `--no-emit-options` has no effect (uv never emits options)."); warn_user!("pip-compile's `--no-emit-options` has no effect (uv never emits options)");
} }
if self.pip_args.is_some() { if self.pip_args.is_some() {
return Err(anyhow!( return Err(anyhow!(
"pip-compile's `--pip-args` is unsupported (try passing arguments to uv directly)." "pip-compile's `--pip-args` is unsupported (try passing arguments to uv directly)"
)); ));
} }
@ -191,11 +189,11 @@ impl CompatArgs for PipListCompatArgs {
/// `--outdated`), this method will return an error. /// `--outdated`), this method will return an error.
fn validate(&self) -> Result<()> { fn validate(&self) -> Result<()> {
if self.disable_pip_version_check { if self.disable_pip_version_check {
warn_user!("pip's `--disable-pip-version-check` has no effect."); warn_user!("pip's `--disable-pip-version-check` has no effect");
} }
if self.outdated { if self.outdated {
return Err(anyhow!("pip's `--outdated` is unsupported.")); return Err(anyhow!("pip's `--outdated` is unsupported"));
} }
Ok(()) Ok(())
@ -245,49 +243,49 @@ impl CompatArgs for PipSyncCompatArgs {
fn validate(&self) -> Result<()> { fn validate(&self) -> Result<()> {
if self.ask { if self.ask {
return Err(anyhow!( return Err(anyhow!(
"pip-sync's `--ask` is unsupported (uv never asks for confirmation)." "pip-sync's `--ask` is unsupported (uv never asks for confirmation)"
)); ));
} }
if self.python_executable.is_some() { if self.python_executable.is_some() {
return Err(anyhow!( return Err(anyhow!(
"pip-sync's `--python-executable` is unsupported (to install into a separate Python environment, try setting `VIRTUAL_ENV` instead)." "pip-sync's `--python-executable` is unsupported (to install into a separate Python environment, try setting `VIRTUAL_ENV` instead)"
)); ));
} }
if self.user { if self.user {
return Err(anyhow!( return Err(anyhow!(
"pip-sync's `--user` is unsupported (use a virtual environment instead)." "pip-sync's `--user` is unsupported (use a virtual environment instead)"
)); ));
} }
if self.client_cert.is_some() { if self.client_cert.is_some() {
return Err(anyhow!( return Err(anyhow!(
"pip-sync's `--client-cert` is unsupported (uv doesn't support dedicated client certificates)." "pip-sync's `--client-cert` is unsupported (uv doesn't support dedicated client certificates)"
)); ));
} }
if self.trusted_host.is_some() { if self.trusted_host.is_some() {
return Err(anyhow!( return Err(anyhow!(
"pip-sync's `--trusted-host` is unsupported (uv always requires HTTPS)." "pip-sync's `--trusted-host` is unsupported (uv always requires HTTPS)"
)); ));
} }
if self.config.is_some() { if self.config.is_some() {
return Err(anyhow!( return Err(anyhow!(
"pip-sync's `--config` is unsupported (uv does not use a configuration file)." "pip-sync's `--config` is unsupported (uv does not use a configuration file)"
)); ));
} }
if self.no_config { if self.no_config {
warn_user!( warn_user!(
"pip-sync's `--no-config` has no effect (uv does not use a configuration file)." "pip-sync's `--no-config` has no effect (uv does not use a configuration file)"
); );
} }
if self.pip_args.is_some() { if self.pip_args.is_some() {
return Err(anyhow!( return Err(anyhow!(
"pip-sync's `--pip-args` is unsupported (try passing arguments to uv directly)." "pip-sync's `--pip-args` is unsupported (try passing arguments to uv directly)"
)); ));
} }
@ -332,28 +330,28 @@ impl CompatArgs for VenvCompatArgs {
fn validate(&self) -> Result<()> { fn validate(&self) -> Result<()> {
if self.clear { if self.clear {
warn_user!( warn_user!(
"virtualenv's `--clear` has no effect (uv always clears the virtual environment)." "virtualenv's `--clear` has no effect (uv always clears the virtual environment)"
); );
} }
if self.no_seed { if self.no_seed {
warn_user!( warn_user!(
"virtualenv's `--no-seed` has no effect (uv omits seed packages by default)." "virtualenv's `--no-seed` has no effect (uv omits seed packages by default)"
); );
} }
if self.no_pip { if self.no_pip {
warn_user!("virtualenv's `--no-pip` has no effect (uv omits `pip` by default)."); warn_user!("virtualenv's `--no-pip` has no effect (uv omits `pip` by default)");
} }
if self.no_setuptools { if self.no_setuptools {
warn_user!( warn_user!(
"virtualenv's `--no-setuptools` has no effect (uv omits `setuptools` by default)." "virtualenv's `--no-setuptools` has no effect (uv omits `setuptools` by default)"
); );
} }
if self.no_wheel { if self.no_wheel {
warn_user!("virtualenv's `--no-wheel` has no effect (uv omits `wheel` by default)."); warn_user!("virtualenv's `--no-wheel` has no effect (uv omits `wheel` by default)");
} }
Ok(()) Ok(())
@ -381,12 +379,12 @@ impl CompatArgs for PipInstallCompatArgs {
/// return an error. /// return an error.
fn validate(&self) -> Result<()> { fn validate(&self) -> Result<()> {
if self.disable_pip_version_check { if self.disable_pip_version_check {
warn_user!("pip's `--disable-pip-version-check` has no effect."); warn_user!("pip's `--disable-pip-version-check` has no effect");
} }
if self.user { if self.user {
return Err(anyhow!( return Err(anyhow!(
"pip's `--user` is unsupported (use a virtual environment instead)." "pip's `--user` is unsupported (use a virtual environment instead)"
)); ));
} }
@ -412,7 +410,7 @@ impl CompatArgs for PipGlobalCompatArgs {
/// return an error. /// return an error.
fn validate(&self) -> Result<()> { fn validate(&self) -> Result<()> {
if self.disable_pip_version_check { if self.disable_pip_version_check {
warn_user!("pip's `--disable-pip-version-check` has no effect."); warn_user!("pip's `--disable-pip-version-check` has no effect");
} }
Ok(()) Ok(())

View file

@ -127,7 +127,7 @@ impl<'a> BaseClientBuilder<'a> {
value.parse::<u64>() value.parse::<u64>()
.or_else(|_| { .or_else(|_| {
// On parse error, warn and use the default timeout // On parse error, warn and use the default timeout
warn_user_once!("Ignoring invalid value from environment for UV_HTTP_TIMEOUT. Expected integer number of seconds, got \"{value}\"."); warn_user_once!("Ignoring invalid value from environment for `UV_HTTP_TIMEOUT`. Expected an integer number of seconds, got \"{value}\".");
Ok(default_timeout) Ok(default_timeout)
}) })
}) })
@ -175,7 +175,7 @@ impl<'a> BaseClientBuilder<'a> {
client_core client_core
}; };
client_core.build().expect("Failed to build HTTP client.") client_core.build().expect("Failed to build HTTP client")
}); });
// Wrap in any relevant middleware. // Wrap in any relevant middleware.

View file

@ -151,18 +151,18 @@ pub enum ErrorKind {
#[error(transparent)] #[error(transparent)]
DistInfo(#[from] install_wheel_rs::Error), DistInfo(#[from] install_wheel_rs::Error),
#[error("{0} isn't available locally, but making network requests to registries was banned.")] #[error("{0} isn't available locally, but making network requests to registries was banned")]
NoIndex(String), NoIndex(String),
/// The package was not found in the registry. /// The package was not found in the registry.
/// ///
/// Make sure the package name is spelled correctly and that you've /// Make sure the package name is spelled correctly and that you've
/// configured the right registry to fetch it from. /// configured the right registry to fetch it from.
#[error("Package `{0}` was not found in the registry.")] #[error("Package `{0}` was not found in the registry")]
PackageNotFound(String), PackageNotFound(String),
/// The package was not found in the local (file-based) index. /// The package was not found in the local (file-based) index.
#[error("Package `{0}` was not found in the local index.")] #[error("Package `{0}` was not found in the local index")]
FileNotFound(String), FileNotFound(String),
/// The metadata file could not be parsed. /// The metadata file could not be parsed.

View file

@ -167,7 +167,7 @@ async fn test_user_agent_has_linehaul() -> Result<()> {
// Unpack User-Agent with linehaul // Unpack User-Agent with linehaul
let (uv_version, uv_linehaul) = body let (uv_version, uv_linehaul) = body
.split_once(' ') .split_once(' ')
.expect("Failed to split User-Agent header."); .expect("Failed to split User-Agent header");
// Deserializing Linehaul // Deserializing Linehaul
let linehaul: LineHaul = serde_json::from_str(uv_linehaul)?; let linehaul: LineHaul = serde_json::from_str(uv_linehaul)?;

View file

@ -93,7 +93,7 @@ pub(crate) fn lower_requirement(
}; };
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv.sources` is experimental and may change without warning."); warn_user_once!("`uv.sources` is experimental and may change without warning");
} }
let source = match source { let source = match source {

View file

@ -26,7 +26,7 @@ pub enum Error {
MalformedDependencies, MalformedDependencies,
#[error("Sources in `pyproject.toml` are malformed")] #[error("Sources in `pyproject.toml` are malformed")]
MalformedSources, MalformedSources,
#[error("Cannot perform ambiguous update; multiple entries with matching package names.")] #[error("Cannot perform ambiguous update; found multiple entries with matching package names")]
Ambiguous, Ambiguous,
} }

View file

@ -428,26 +428,26 @@ impl Diagnostic for SitePackagesDiagnostic {
version, version,
requires_python, requires_python,
} => format!( } => format!(
"The package `{package}` requires Python {requires_python}, but `{version}` is installed." "The package `{package}` requires Python {requires_python}, but `{version}` is installed"
), ),
Self::MissingDependency { Self::MissingDependency {
package, package,
requirement, requirement,
} => { } => {
format!("The package `{package}` requires `{requirement}`, but it's not installed.") format!("The package `{package}` requires `{requirement}`, but it's not installed")
} }
Self::IncompatibleDependency { Self::IncompatibleDependency {
package, package,
version, version,
requirement, requirement,
} => format!( } => format!(
"The package `{package}` requires `{requirement}`, but `{version}` is installed." "The package `{package}` requires `{requirement}`, but `{version}` is installed"
), ),
Self::DuplicatePackage { package, paths } => { Self::DuplicatePackage { package, paths } => {
let mut paths = paths.clone(); let mut paths = paths.clone();
paths.sort(); paths.sort();
format!( format!(
"The package `{package}` has multiple installed distributions:{}", "The package `{package}` has multiple installed distributions: {}",
paths.iter().fold(String::new(), |acc, path| acc + &format!("\n - {}", path.display())) paths.iter().fold(String::new(), |acc, path| acc + &format!("\n - {}", path.display()))
) )
} }

View file

@ -898,7 +898,7 @@ fn warn_on_unsupported_python(interpreter: &Interpreter) {
// Warn on usage with an unsupported Python version // Warn on usage with an unsupported Python version
if interpreter.python_tuple() < (3, 8) { if interpreter.python_tuple() < (3, 8) {
warn_user_once!( warn_user_once!(
"uv is only compatible with Python 3.8+, found Python {}.", "uv is only compatible with Python >=3.8, found Python {}",
interpreter.python_version() interpreter.python_version()
); );
} }

View file

@ -24,9 +24,9 @@ pub enum Error {
stdout: String, stdout: String,
stderr: String, stderr: String,
}, },
#[error("Failed to run `py --list-paths` to find Python installations.")] #[error("Failed to run `py --list-paths` to find Python installations")]
Io(#[source] io::Error), Io(#[source] io::Error),
#[error("The `py` launcher could not be found.")] #[error("The `py` launcher could not be found")]
NotFound, NotFound,
} }

View file

@ -35,17 +35,17 @@ impl Preference {
let Some(VersionOrUrl::VersionSpecifier(specifier)) = requirement.version_or_url.as_ref() let Some(VersionOrUrl::VersionSpecifier(specifier)) = requirement.version_or_url.as_ref()
else { else {
trace!("Excluding {requirement} from preferences due to non-version specifier."); trace!("Excluding {requirement} from preferences due to non-version specifier");
return Ok(None); return Ok(None);
}; };
let [specifier] = specifier.as_ref() else { let [specifier] = specifier.as_ref() else {
trace!("Excluding {requirement} from preferences due to multiple version specifiers."); trace!("Excluding {requirement} from preferences due to multiple version specifiers");
return Ok(None); return Ok(None);
}; };
if *specifier.operator() != Operator::Equal { if *specifier.operator() != Operator::Equal {
trace!("Excluding {requirement} from preferences due to inexact version specifier."); trace!("Excluding {requirement} from preferences due to inexact version specifier");
return Ok(None); return Ok(None);
} }
@ -128,7 +128,7 @@ impl Preferences {
}, },
)) ))
} else { } else {
trace!("Excluding {preference} from preferences due to unmatched markers."); trace!("Excluding {preference} from preferences due to unmatched markers");
None None
} }
}) })

View file

@ -406,7 +406,7 @@ impl<InstalledPackages: InstalledPackagesProvider> ResolverState<InstalledPackag
.pubgrub .pubgrub
.partial_solution .partial_solution
.term_intersection_for_package(&state.next) .term_intersection_for_package(&state.next)
.expect("a package was chosen but we don't have a term."); .expect("a package was chosen but we don't have a term");
let decision = self.choose_version( let decision = self.choose_version(
&state.next, &state.next,
term_intersection.unwrap_positive(), term_intersection.unwrap_positive(),
@ -427,7 +427,7 @@ impl<InstalledPackages: InstalledPackagesProvider> ResolverState<InstalledPackag
.pubgrub .pubgrub
.partial_solution .partial_solution
.term_intersection_for_package(&state.next) .term_intersection_for_package(&state.next)
.expect("a package was chosen but we don't have a term."); .expect("a package was chosen but we don't have a term");
// Check if the decision was due to the package being unavailable // Check if the decision was due to the package being unavailable
if let PubGrubPackageInner::Package { ref name, .. } = &*state.next { if let PubGrubPackageInner::Package { ref name, .. } = &*state.next {

View file

@ -75,7 +75,7 @@ fn make_child_cmdline() -> CString {
// ); // );
CString::from_vec_with_nul(child_cmdline).unwrap_or_else(|_| { CString::from_vec_with_nul(child_cmdline).unwrap_or_else(|_| {
eprintln!("Child command line is not correctly null terminated."); eprintln!("Child command line is not correctly null terminated");
exit_with_status(1) exit_with_status(1)
}) })
} }
@ -128,7 +128,7 @@ fn executable_filename() -> CString {
} }
CString::from_vec_with_nul(buffer).unwrap_or_else(|_| { CString::from_vec_with_nul(buffer).unwrap_or_else(|_| {
eprintln!("Executable name is not correctly null terminated."); eprintln!("Executable name is not correctly null terminated");
exit_with_status(1) exit_with_status(1)
}) })
} }
@ -191,13 +191,13 @@ fn find_python_exe(executable_name: &CStr) -> CString {
} }
.is_err() .is_err()
{ {
print_last_error_and_exit("Failed to set the file pointer to the end of the file."); print_last_error_and_exit("Failed to set the file pointer to the end of the file");
} }
let mut read_bytes = bytes_to_read; let mut read_bytes = bytes_to_read;
if unsafe { ReadFile(file_handle, Some(&mut buffer), Some(&mut read_bytes), None) }.is_err() if unsafe { ReadFile(file_handle, Some(&mut buffer), Some(&mut read_bytes), None) }.is_err()
{ {
print_last_error_and_exit("Failed to read the executable file."); print_last_error_and_exit("Failed to read the executable file");
} }
// Truncate the buffer to the actual number of bytes read. // Truncate the buffer to the actual number of bytes read.
@ -240,7 +240,7 @@ fn find_python_exe(executable_name: &CStr) -> CString {
buffer.push(b'\0'); buffer.push(b'\0');
break CString::from_vec_with_nul(buffer).unwrap_or_else(|_| { break CString::from_vec_with_nul(buffer).unwrap_or_else(|_| {
eprintln!("Python executable path is not correctly null terminated."); eprintln!("Python executable path is not correctly null terminated");
exit_with_status(1) exit_with_status(1)
}); });
} else { } else {
@ -249,14 +249,14 @@ fn find_python_exe(executable_name: &CStr) -> CString {
bytes_to_read = (path_len + MAGIC_NUMBER.len() + PATH_LEN_SIZE) as u32; bytes_to_read = (path_len + MAGIC_NUMBER.len() + PATH_LEN_SIZE) as u32;
if i64::from(bytes_to_read) > file_size { if i64::from(bytes_to_read) > file_size {
eprintln!("The length of the python executable path exceeds the file size. Verify that the path length is appended to the end of the launcher script as a u32 in little endian."); eprintln!("The length of the python executable path exceeds the file size. Verify that the path length is appended to the end of the launcher script as a u32 in little endian");
exit_with_status(1); exit_with_status(1);
} }
} }
}; };
if unsafe { CloseHandle(file_handle) }.is_err() { if unsafe { CloseHandle(file_handle) }.is_err() {
print_last_error_and_exit("Failed to close file handle."); print_last_error_and_exit("Failed to close file handle");
} }
if is_absolute(&path) { if is_absolute(&path) {
@ -269,13 +269,13 @@ fn find_python_exe(executable_name: &CStr) -> CString {
{ {
Some(parent_dir) => parent_dir, Some(parent_dir) => parent_dir,
None => { None => {
eprintln!("Script path has unknown separator characters."); eprintln!("Script path has unknown separator characters");
exit_with_status(1) exit_with_status(1)
} }
}; };
let final_path = [parent_dir, b"\\", path.as_bytes()].concat(); let final_path = [parent_dir, b"\\", path.as_bytes()].concat();
CString::new(final_path).unwrap_or_else(|_| { CString::new(final_path).unwrap_or_else(|_| {
eprintln!("Could not construct the absolute path to the Python executable."); eprintln!("Could not construct the absolute path to the Python executable");
exit_with_status(1) exit_with_status(1)
}) })
} }
@ -334,7 +334,7 @@ fn skip_one_argument(arguments: &[u8]) -> &[u8] {
fn make_job_object() -> HANDLE { fn make_job_object() -> HANDLE {
let job = unsafe { CreateJobObjectW(None, None) } let job = unsafe { CreateJobObjectW(None, None) }
.unwrap_or_else(|_| print_last_error_and_exit("Job creation failed.")); .unwrap_or_else(|_| print_last_error_and_exit("Job creation failed"));
let mut job_info = MaybeUninit::<JOBOBJECT_EXTENDED_LIMIT_INFORMATION>::uninit(); let mut job_info = MaybeUninit::<JOBOBJECT_EXTENDED_LIMIT_INFORMATION>::uninit();
let mut retlen = 0u32; let mut retlen = 0u32;
if unsafe { if unsafe {
@ -348,7 +348,7 @@ fn make_job_object() -> HANDLE {
} }
.is_err() .is_err()
{ {
print_last_error_and_exit("Job information querying failed."); print_last_error_and_exit("Job information querying failed");
} }
let mut job_info = unsafe { job_info.assume_init() }; let mut job_info = unsafe { job_info.assume_init() };
job_info.BasicLimitInformation.LimitFlags |= JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE; job_info.BasicLimitInformation.LimitFlags |= JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;
@ -363,7 +363,7 @@ fn make_job_object() -> HANDLE {
} }
.is_err() .is_err()
{ {
print_last_error_and_exit("Job information setting failed."); print_last_error_and_exit("Job information setting failed");
} }
job job
} }
@ -373,11 +373,11 @@ fn spawn_child(si: &STARTUPINFOA, child_cmdline: CString) -> HANDLE {
if (si.dwFlags & STARTF_USESTDHANDLES).0 != 0 { if (si.dwFlags & STARTF_USESTDHANDLES).0 != 0 {
// ignore errors, if the handles are not inheritable/valid, then nothing we can do // ignore errors, if the handles are not inheritable/valid, then nothing we can do
unsafe { SetHandleInformation(si.hStdInput, HANDLE_FLAG_INHERIT.0, HANDLE_FLAG_INHERIT) } unsafe { SetHandleInformation(si.hStdInput, HANDLE_FLAG_INHERIT.0, HANDLE_FLAG_INHERIT) }
.unwrap_or_else(|_| eprintln!("Making stdin inheritable failed.")); .unwrap_or_else(|_| eprintln!("Making stdin inheritable failed"));
unsafe { SetHandleInformation(si.hStdOutput, HANDLE_FLAG_INHERIT.0, HANDLE_FLAG_INHERIT) } unsafe { SetHandleInformation(si.hStdOutput, HANDLE_FLAG_INHERIT.0, HANDLE_FLAG_INHERIT) }
.unwrap_or_else(|_| eprintln!("Making stdout inheritable failed.")); .unwrap_or_else(|_| eprintln!("Making stdout inheritable failed"));
unsafe { SetHandleInformation(si.hStdError, HANDLE_FLAG_INHERIT.0, HANDLE_FLAG_INHERIT) } unsafe { SetHandleInformation(si.hStdError, HANDLE_FLAG_INHERIT.0, HANDLE_FLAG_INHERIT) }
.unwrap_or_else(|_| eprintln!("Making stderr inheritable failed.")); .unwrap_or_else(|_| eprintln!("Making stderr inheritable failed"));
} }
let mut child_process_info = MaybeUninit::<PROCESS_INFORMATION>::uninit(); let mut child_process_info = MaybeUninit::<PROCESS_INFORMATION>::uninit();
unsafe { unsafe {
@ -397,11 +397,11 @@ fn spawn_child(si: &STARTUPINFOA, child_cmdline: CString) -> HANDLE {
) )
} }
.unwrap_or_else(|_| { .unwrap_or_else(|_| {
print_last_error_and_exit("Failed to spawn the python child process."); print_last_error_and_exit("Failed to spawn the python child process");
}); });
let child_process_info = unsafe { child_process_info.assume_init() }; let child_process_info = unsafe { child_process_info.assume_init() };
unsafe { CloseHandle(child_process_info.hThread) }.unwrap_or_else(|_| { unsafe { CloseHandle(child_process_info.hThread) }.unwrap_or_else(|_| {
print_last_error_and_exit("Failed to close handle to python child process main thread."); print_last_error_and_exit("Failed to close handle to python child process main thread");
}); });
// Return handle to child process. // Return handle to child process.
child_process_info.hProcess child_process_info.hProcess
@ -464,14 +464,14 @@ fn clear_app_starting_state(child_handle: HANDLE) {
unsafe { unsafe {
// End the launcher's "app starting" cursor state. // End the launcher's "app starting" cursor state.
PostMessageA(None, 0, None, None).unwrap_or_else(|_| { PostMessageA(None, 0, None, None).unwrap_or_else(|_| {
eprintln!("Failed to post a message to specified window."); eprintln!("Failed to post a message to specified window");
}); });
if GetMessageA(msg.as_mut_ptr(), None, 0, 0) != TRUE { if GetMessageA(msg.as_mut_ptr(), None, 0, 0) != TRUE {
eprintln!("Failed to retrieve posted window message."); eprintln!("Failed to retrieve posted window message");
} }
// Proxy the child's input idle event. // Proxy the child's input idle event.
if WaitForInputIdle(child_handle, INFINITE) != 0 { if WaitForInputIdle(child_handle, INFINITE) != 0 {
eprintln!("Failed to wait for input from window."); eprintln!("Failed to wait for input from window");
} }
// Signal the process input idle event by creating a window and pumping // Signal the process input idle event by creating a window and pumping
// sent messages. The window class isn't important, so just use the // sent messages. The window class isn't important, so just use the
@ -493,7 +493,7 @@ fn clear_app_starting_state(child_handle: HANDLE) {
// Process all sent messages and signal input idle. // Process all sent messages and signal input idle.
_ = PeekMessageA(msg.as_mut_ptr(), hwnd, 0, 0, PEEK_MESSAGE_REMOVE_TYPE(0)); _ = PeekMessageA(msg.as_mut_ptr(), hwnd, 0, 0, PEEK_MESSAGE_REMOVE_TYPE(0));
DestroyWindow(hwnd).unwrap_or_else(|_| { DestroyWindow(hwnd).unwrap_or_else(|_| {
print_last_error_and_exit("Failed to destroy temporary window."); print_last_error_and_exit("Failed to destroy temporary window");
}); });
} }
} }
@ -509,7 +509,7 @@ pub fn bounce(is_gui: bool) -> ! {
let job = make_job_object(); let job = make_job_object();
if unsafe { AssignProcessToJobObject(job, child_handle) }.is_err() { if unsafe { AssignProcessToJobObject(job, child_handle) }.is_err() {
print_last_error_and_exit("Failed to assign child process to the job.") print_last_error_and_exit("Failed to assign child process to the job")
} }
// (best effort) Close all the handles that we can // (best effort) Close all the handles that we can
@ -518,7 +518,7 @@ pub fn bounce(is_gui: bool) -> ! {
// (best effort) Switch to some innocuous directory, so we don't hold the original cwd open. // (best effort) Switch to some innocuous directory, so we don't hold the original cwd open.
// See distlib/PC/launcher.c::switch_working_directory // See distlib/PC/launcher.c::switch_working_directory
if std::env::set_current_dir(std::env::temp_dir()).is_err() { if std::env::set_current_dir(std::env::temp_dir()).is_err() {
eprintln!("Failed to set cwd to temp dir."); eprintln!("Failed to set cwd to temp dir");
} }
// We want to ignore control-C/control-Break/logout/etc.; the same event will // We want to ignore control-C/control-Break/logout/etc.; the same event will
@ -528,7 +528,7 @@ pub fn bounce(is_gui: bool) -> ! {
} }
// See distlib/PC/launcher.c::control_key_handler // See distlib/PC/launcher.c::control_key_handler
unsafe { SetConsoleCtrlHandler(Some(control_key_handler), true) }.unwrap_or_else(|_| { unsafe { SetConsoleCtrlHandler(Some(control_key_handler), true) }.unwrap_or_else(|_| {
print_last_error_and_exit("Control handler setting failed."); print_last_error_and_exit("Control handler setting failed");
}); });
if is_gui { if is_gui {
@ -538,7 +538,7 @@ pub fn bounce(is_gui: bool) -> ! {
_ = unsafe { WaitForSingleObject(child_handle, INFINITE) }; _ = unsafe { WaitForSingleObject(child_handle, INFINITE) };
let mut exit_code = 0u32; let mut exit_code = 0u32;
if unsafe { GetExitCodeProcess(child_handle, &mut exit_code) }.is_err() { if unsafe { GetExitCodeProcess(child_handle, &mut exit_code) }.is_err() {
print_last_error_and_exit("Failed to get exit code of child process."); print_last_error_and_exit("Failed to get exit code of child process");
} }
exit_with_status(exit_code); exit_with_status(exit_code);
} }

View file

@ -145,7 +145,7 @@ pub(crate) async fn pip_uninstall(
if installed.is_empty() { if installed.is_empty() {
writeln!( writeln!(
printer.stderr(), printer.stderr(),
"{}{} Skipping {} as it is not installed.", "{}{} Skipping {} as it is not installed",
"warning".yellow().bold(), "warning".yellow().bold(),
":".bold(), ":".bold(),
package.as_ref().bold() package.as_ref().bold()
@ -161,7 +161,7 @@ pub(crate) async fn pip_uninstall(
if installed.is_empty() { if installed.is_empty() {
writeln!( writeln!(
printer.stderr(), printer.stderr(),
"{}{} Skipping {} as it is not installed.", "{}{} Skipping {} as it is not installed",
"warning".yellow().bold(), "warning".yellow().bold(),
":".bold(), ":".bold(),
url.as_ref().bold() url.as_ref().bold()
@ -180,7 +180,7 @@ pub(crate) async fn pip_uninstall(
if distributions.is_empty() { if distributions.is_empty() {
writeln!( writeln!(
printer.stderr(), printer.stderr(),
"{}{} No packages to uninstall.", "{}{} No packages to uninstall",
"warning".yellow().bold(), "warning".yellow().bold(),
":".bold(), ":".bold(),
)?; )?;

View file

@ -49,7 +49,7 @@ pub(crate) async fn add(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv add` is experimental and may change without warning."); warn_user_once!("`uv add` is experimental and may change without warning");
} }
// Find the project in the workspace. // Find the project in the workspace.

View file

@ -44,7 +44,7 @@ pub(crate) async fn lock(
printer: Printer, printer: Printer,
) -> anyhow::Result<ExitStatus> { ) -> anyhow::Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv lock` is experimental and may change without warning."); warn_user_once!("`uv lock` is experimental and may change without warning");
} }
// Find the project requirements. // Find the project requirements.
@ -384,7 +384,7 @@ pub(super) async fn do_lock(
// The lockfile did not contain enough information to obtain a resolution, fallback // The lockfile did not contain enough information to obtain a resolution, fallback
// to a fresh resolve. // to a fresh resolve.
None => { None => {
debug!("Starting clean resolution."); debug!("Starting clean resolution");
// Create a build dispatch. // Create a build dispatch.
let build_dispatch = BuildDispatch::new( let build_dispatch = BuildDispatch::new(

View file

@ -34,7 +34,7 @@ pub(crate) async fn remove(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv remove` is experimental and may change without warning."); warn_user_once!("`uv remove` is experimental and may change without warning");
} }
// Find the project in the workspace. // Find the project in the workspace.

View file

@ -57,7 +57,7 @@ pub(crate) async fn run(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv run` is experimental and may change without warning."); warn_user_once!("`uv run` is experimental and may change without warning");
} }
// Parse the input command. // Parse the input command.

View file

@ -41,7 +41,7 @@ pub(crate) async fn sync(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv sync` is experimental and may change without warning."); warn_user_once!("`uv sync` is experimental and may change without warning");
} }
// Identify the project // Identify the project

View file

@ -43,7 +43,7 @@ pub(crate) async fn tree(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv tree` is experimental and may change without warning."); warn_user_once!("`uv tree` is experimental and may change without warning");
} }
// Find the project requirements. // Find the project requirements.

View file

@ -10,7 +10,7 @@ use uv_warnings::warn_user_once;
/// Show the toolchain directory. /// Show the toolchain directory.
pub(crate) fn dir(preview: PreviewMode) -> anyhow::Result<()> { pub(crate) fn dir(preview: PreviewMode) -> anyhow::Result<()> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv python dir` is experimental and may change without warning."); warn_user_once!("`uv python dir` is experimental and may change without warning");
} }
let installed_toolchains = ManagedPythonInstallations::from_settings() let installed_toolchains = ManagedPythonInstallations::from_settings()
.context("Failed to initialize toolchain settings")?; .context("Failed to initialize toolchain settings")?;

View file

@ -20,7 +20,7 @@ pub(crate) async fn find(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv python find` is experimental and may change without warning."); warn_user_once!("`uv python find` is experimental and may change without warning");
} }
let request = match request { let request = match request {

View file

@ -35,7 +35,7 @@ pub(crate) async fn install(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv python install` is experimental and may change without warning."); warn_user_once!("`uv python install` is experimental and may change without warning");
} }
let start = std::time::Instant::now(); let start = std::time::Instant::now();

View file

@ -38,7 +38,7 @@ pub(crate) async fn list(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv python list` is experimental and may change without warning."); warn_user_once!("`uv python list` is experimental and may change without warning");
} }
let mut output = BTreeSet::new(); let mut output = BTreeSet::new();

View file

@ -26,7 +26,7 @@ pub(crate) async fn pin(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv python pin` is experimental and may change without warning."); warn_user_once!("`uv python pin` is experimental and may change without warning");
} }
let Some(request) = request else { let Some(request) = request else {
@ -37,7 +37,7 @@ pub(crate) async fn pin(
} }
return Ok(ExitStatus::Success); return Ok(ExitStatus::Success);
} }
bail!("No pinned Python version found.") bail!("No pinned Python version found")
}; };
let request = PythonRequest::parse(&request); let request = PythonRequest::parse(&request);

View file

@ -25,7 +25,7 @@ pub(crate) async fn uninstall(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv python uninstall` is experimental and may change without warning."); warn_user_once!("`uv python uninstall` is experimental and may change without warning");
} }
let start = std::time::Instant::now(); let start = std::time::Instant::now();

View file

@ -95,7 +95,7 @@ pub(crate) async fn self_update(printer: Printer) -> Result<ExitStatus> {
printer.stderr(), printer.stderr(),
"{}", "{}",
format_args!( format_args!(
"{}{} You're on the latest version of uv ({}).", "{}{} You're on the latest version of uv ({})",
"success".green().bold(), "success".green().bold(),
":".bold(), ":".bold(),
format!("v{}", env!("CARGO_PKG_VERSION")).bold().white() format!("v{}", env!("CARGO_PKG_VERSION")).bold().white()

View file

@ -10,7 +10,7 @@ use uv_warnings::warn_user_once;
/// Show the tool directory. /// Show the tool directory.
pub(crate) fn dir(bin: bool, preview: PreviewMode) -> anyhow::Result<()> { pub(crate) fn dir(bin: bool, preview: PreviewMode) -> anyhow::Result<()> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv tool dir` is experimental and may change without warning."); warn_user_once!("`uv tool dir` is experimental and may change without warning");
} }
if bin { if bin {

View file

@ -55,7 +55,7 @@ pub(crate) async fn install(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv tool install` is experimental and may change without warning."); warn_user_once!("`uv tool install` is experimental and may change without warning");
} }
let client_builder = BaseClientBuilder::new() let client_builder = BaseClientBuilder::new()

View file

@ -20,7 +20,7 @@ pub(crate) async fn list(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv tool list` is experimental and may change without warning."); warn_user_once!("`uv tool list` is experimental and may change without warning");
} }
let installed_tools = InstalledTools::from_settings()?; let installed_tools = InstalledTools::from_settings()?;

View file

@ -69,7 +69,7 @@ pub(crate) async fn run(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`{invocation_source}` is experimental and may change without warning."); warn_user_once!("`{invocation_source}` is experimental and may change without warning");
} }
let (target, args) = command.split(); let (target, args) = command.split();

View file

@ -21,7 +21,7 @@ pub(crate) async fn uninstall(
printer: Printer, printer: Printer,
) -> Result<ExitStatus> { ) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv tool uninstall` is experimental and may change without warning."); warn_user_once!("`uv tool uninstall` is experimental and may change without warning");
} }
let installed_tools = InstalledTools::from_settings()?.init()?; let installed_tools = InstalledTools::from_settings()?.init()?;

View file

@ -19,7 +19,7 @@ use crate::printer::Printer;
/// Ensure that the executable directory is in PATH. /// Ensure that the executable directory is in PATH.
pub(crate) async fn update_shell(preview: PreviewMode, printer: Printer) -> Result<ExitStatus> { pub(crate) async fn update_shell(preview: PreviewMode, printer: Printer) -> Result<ExitStatus> {
if preview.is_disabled() { if preview.is_disabled() {
warn_user_once!("`uv tool update-shell` is experimental and may change without warning."); warn_user_once!("`uv tool update-shell` is experimental and may change without warning");
} }
let executable_directory = find_executable_directory()?; let executable_directory = find_executable_directory()?;
@ -36,7 +36,7 @@ pub(crate) async fn update_shell(preview: PreviewMode, printer: Printer) -> Resu
"Updated PATH to include executable directory {}", "Updated PATH to include executable directory {}",
executable_directory.simplified_display().cyan() executable_directory.simplified_display().cyan()
)?; )?;
writeln!(printer.stderr(), "Restart your shell to apply changes.")?; writeln!(printer.stderr(), "Restart your shell to apply changes")?;
} else { } else {
writeln!( writeln!(
printer.stderr(), printer.stderr(),
@ -58,18 +58,18 @@ pub(crate) async fn update_shell(preview: PreviewMode, printer: Printer) -> Resu
} else { } else {
// Determine the current shell. // Determine the current shell.
let Some(shell) = Shell::from_env() else { let Some(shell) = Shell::from_env() else {
return Err(anyhow::anyhow!("The executable directory {} is not in PATH, but the current shell could not be determined.", executable_directory.simplified_display().cyan())); return Err(anyhow::anyhow!("The executable directory {} is not in PATH, but the current shell could not be determined", executable_directory.simplified_display().cyan()));
}; };
// Look up the configuration files (e.g., `.bashrc`, `.zshrc`) for the shell. // Look up the configuration files (e.g., `.bashrc`, `.zshrc`) for the shell.
let files = shell.configuration_files(); let files = shell.configuration_files();
if files.is_empty() { if files.is_empty() {
return Err(anyhow::anyhow!("The executable directory {} is not in PATH, but updating {shell} is currently unsupported.", executable_directory.simplified_display().cyan())); return Err(anyhow::anyhow!("The executable directory {} is not in PATH, but updating {shell} is currently unsupported", executable_directory.simplified_display().cyan()));
} }
// Prepare the command (e.g., `export PATH="$HOME/.cargo/bin:$PATH"`). // Prepare the command (e.g., `export PATH="$HOME/.cargo/bin:$PATH"`).
let Some(command) = shell.prepend_path(&executable_directory) else { let Some(command) = shell.prepend_path(&executable_directory) else {
return Err(anyhow::anyhow!("The executable directory {} is not in PATH, but the necessary command to update {shell} could not be determined.", executable_directory.simplified_display().cyan())); return Err(anyhow::anyhow!("The executable directory {} is not in PATH, but the necessary command to update {shell} could not be determined", executable_directory.simplified_display().cyan()));
}; };
// Update each file, as necessary. // Update each file, as necessary.
@ -133,10 +133,10 @@ pub(crate) async fn update_shell(preview: PreviewMode, printer: Printer) -> Resu
} }
if updated { if updated {
writeln!(printer.stderr(), "Restart your shell to apply changes.")?; writeln!(printer.stderr(), "Restart your shell to apply changes")?;
Ok(ExitStatus::Success) Ok(ExitStatus::Success)
} else { } else {
Err(anyhow::anyhow!("The executable directory {} is not in PATH, but the {shell} configuration files are already up-to-date.", executable_directory.simplified_display().cyan())) Err(anyhow::anyhow!("The executable directory {} is not in PATH, but the {shell} configuration files are already up-to-date", executable_directory.simplified_display().cyan()))
} }
} }
} }

View file

@ -101,7 +101,7 @@ fn prune_cached_env() {
pytest 8.0.0 pytest 8.0.0
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]

View file

@ -30,7 +30,7 @@ fn add_registry() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv add` is experimental and may change without warning. warning: `uv add` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
@ -118,7 +118,7 @@ fn add_registry() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 4 packages in [TIME] Audited 4 packages in [TIME]
"###); "###);
@ -145,7 +145,7 @@ fn add_git() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"###); "###);
@ -155,7 +155,7 @@ fn add_git() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
+ anyio==3.7.0 + anyio==3.7.0
@ -276,7 +276,7 @@ fn add_git() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 5 packages in [TIME] Audited 5 packages in [TIME]
"###); "###);
@ -303,7 +303,7 @@ fn add_git_raw() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"###); "###);
@ -313,7 +313,7 @@ fn add_git_raw() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
+ anyio==3.7.0 + anyio==3.7.0
@ -422,7 +422,7 @@ fn add_git_raw() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 5 packages in [TIME] Audited 5 packages in [TIME]
"###); "###);
@ -512,7 +512,7 @@ fn add_unnamed() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 2 packages in [TIME] Audited 2 packages in [TIME]
"###); "###);
@ -539,7 +539,7 @@ fn add_remove_dev() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv add` is experimental and may change without warning. warning: `uv add` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
@ -632,7 +632,7 @@ fn add_remove_dev() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 4 packages in [TIME] Audited 4 packages in [TIME]
"###); "###);
@ -643,7 +643,7 @@ fn add_remove_dev() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv remove` is experimental and may change without warning. warning: `uv remove` is experimental and may change without warning
warning: `anyio` is a development dependency; try calling `uv remove --dev` warning: `anyio` is a development dependency; try calling `uv remove --dev`
error: The dependency `anyio` could not be found in `dependencies` error: The dependency `anyio` could not be found in `dependencies`
"###); "###);
@ -655,7 +655,7 @@ fn add_remove_dev() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv remove` is experimental and may change without warning. warning: `uv remove` is experimental and may change without warning
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Uninstalled 4 packages in [TIME] Uninstalled 4 packages in [TIME]
@ -711,7 +711,7 @@ fn add_remove_dev() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 1 package in [TIME] Audited 1 package in [TIME]
"###); "###);
@ -738,7 +738,7 @@ fn add_remove_optional() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv add` is experimental and may change without warning. warning: `uv add` is experimental and may change without warning
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 1 package in [TIME] Installed 1 package in [TIME]
@ -792,7 +792,7 @@ fn add_remove_optional() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 1 package in [TIME] Audited 1 package in [TIME]
"###); "###);
@ -803,7 +803,7 @@ fn add_remove_optional() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv remove` is experimental and may change without warning. warning: `uv remove` is experimental and may change without warning
warning: `anyio` is an optional dependency; try calling `uv remove --optional io` warning: `anyio` is an optional dependency; try calling `uv remove --optional io`
error: The dependency `anyio` could not be found in `dependencies` error: The dependency `anyio` could not be found in `dependencies`
"###); "###);
@ -815,7 +815,7 @@ fn add_remove_optional() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv remove` is experimental and may change without warning. warning: `uv remove` is experimental and may change without warning
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Uninstalled 1 package in [TIME] Uninstalled 1 package in [TIME]
@ -868,7 +868,7 @@ fn add_remove_optional() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 1 package in [TIME] Audited 1 package in [TIME]
"###); "###);
@ -999,7 +999,7 @@ fn add_remove_workspace() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 2 packages in [TIME] Audited 2 packages in [TIME]
"###); "###);
@ -1010,7 +1010,7 @@ fn add_remove_workspace() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv remove` is experimental and may change without warning. warning: `uv remove` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Uninstalled 2 packages in [TIME] Uninstalled 2 packages in [TIME]
@ -1068,7 +1068,7 @@ fn add_remove_workspace() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 1 package in [TIME] Audited 1 package in [TIME]
"###); "###);
@ -1179,7 +1179,7 @@ fn add_workspace_editable() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 2 packages in [TIME] Audited 2 packages in [TIME]
"###); "###);
@ -1208,7 +1208,7 @@ fn update() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
"###); "###);
@ -1218,7 +1218,7 @@ fn update() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 6 packages in [TIME] Prepared 6 packages in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
+ certifi==2024.2.2 + certifi==2024.2.2
@ -1236,7 +1236,7 @@ fn update() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv add` is experimental and may change without warning. warning: `uv add` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Uninstalled 1 package in [TIME] Uninstalled 1 package in [TIME]
@ -1270,7 +1270,7 @@ fn update() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv add` is experimental and may change without warning. warning: `uv add` is experimental and may change without warning
Resolved 8 packages in [TIME] Resolved 8 packages in [TIME]
Prepared 3 packages in [TIME] Prepared 3 packages in [TIME]
Uninstalled 1 package in [TIME] Uninstalled 1 package in [TIME]
@ -1306,8 +1306,8 @@ fn update() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv add` is experimental and may change without warning. warning: `uv add` is experimental and may change without warning
warning: `uv.sources` is experimental and may change without warning. warning: `uv.sources` is experimental and may change without warning
Resolved 8 packages in [TIME] Resolved 8 packages in [TIME]
Prepared 2 packages in [TIME] Prepared 2 packages in [TIME]
Uninstalled 2 packages in [TIME] Uninstalled 2 packages in [TIME]
@ -1455,7 +1455,7 @@ fn update() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 8 packages in [TIME] Audited 8 packages in [TIME]
"###); "###);
@ -1484,7 +1484,7 @@ fn add_no_clean() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"###); "###);
@ -1494,7 +1494,7 @@ fn add_no_clean() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
+ anyio==3.7.0 + anyio==3.7.0
@ -1518,7 +1518,7 @@ fn add_no_clean() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv add` is experimental and may change without warning. warning: `uv add` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
Prepared 2 packages in [TIME] Prepared 2 packages in [TIME]
Uninstalled 1 package in [TIME] Uninstalled 1 package in [TIME]
@ -1583,7 +1583,7 @@ fn add_no_clean() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 2 packages in [TIME] Audited 2 packages in [TIME]
"###); "###);
@ -1594,7 +1594,7 @@ fn add_no_clean() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Uninstalled 3 packages in [TIME] Uninstalled 3 packages in [TIME]
- anyio==3.7.0 - anyio==3.7.0
- idna==3.6 - idna==3.6
@ -1624,7 +1624,7 @@ fn remove_registry() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"###); "###);
@ -1634,7 +1634,7 @@ fn remove_registry() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
+ anyio==3.7.0 + anyio==3.7.0
@ -1649,7 +1649,7 @@ fn remove_registry() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv remove` is experimental and may change without warning. warning: `uv remove` is experimental and may change without warning
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Uninstalled 4 packages in [TIME] Uninstalled 4 packages in [TIME]
@ -1702,7 +1702,7 @@ fn remove_registry() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Audited 1 package in [TIME] Audited 1 package in [TIME]
"###); "###);
@ -1731,7 +1731,7 @@ fn add_preserves_indentation_in_pyproject_toml() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv add` is experimental and may change without warning. warning: `uv add` is experimental and may change without warning
Resolved 8 packages in [TIME] Resolved 8 packages in [TIME]
Prepared 8 packages in [TIME] Prepared 8 packages in [TIME]
Installed 8 packages in [TIME] Installed 8 packages in [TIME]
@ -1787,7 +1787,7 @@ fn add_puts_default_indentation_in_pyproject_toml_if_not_observed() -> Result<()
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv add` is experimental and may change without warning. warning: `uv add` is experimental and may change without warning
Resolved 8 packages in [TIME] Resolved 8 packages in [TIME]
Prepared 8 packages in [TIME] Prepared 8 packages in [TIME]
Installed 8 packages in [TIME] Installed 8 packages in [TIME]
@ -1844,7 +1844,7 @@ fn add_frozen() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv add` is experimental and may change without warning. warning: `uv add` is experimental and may change without warning
"###); "###);
let pyproject_toml = fs_err::read_to_string(context.temp_dir.join("pyproject.toml"))?; let pyproject_toml = fs_err::read_to_string(context.temp_dir.join("pyproject.toml"))?;

View file

@ -52,7 +52,7 @@ fn lock_wheel_registry() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"###); "###);
@ -116,7 +116,7 @@ fn lock_wheel_registry() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
+ anyio==3.7.0 + anyio==3.7.0
@ -151,7 +151,7 @@ fn lock_sdist_registry() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -190,7 +190,7 @@ fn lock_sdist_registry() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 2 packages in [TIME] Prepared 2 packages in [TIME]
Installed 2 packages in [TIME] Installed 2 packages in [TIME]
+ project==0.1.0 (from file://[TEMP_DIR]/) + project==0.1.0 (from file://[TEMP_DIR]/)
@ -223,7 +223,7 @@ fn lock_sdist_git() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -261,7 +261,7 @@ fn lock_sdist_git() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 2 packages in [TIME] Prepared 2 packages in [TIME]
Installed 2 packages in [TIME] Installed 2 packages in [TIME]
+ project==0.1.0 (from file://[TEMP_DIR]/) + project==0.1.0 (from file://[TEMP_DIR]/)
@ -294,7 +294,7 @@ fn lock_wheel_url() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"###); "###);
@ -357,7 +357,7 @@ fn lock_wheel_url() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 3 packages in [TIME] Prepared 3 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
+ anyio==4.3.0 (from https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl) + anyio==4.3.0 (from https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl)
@ -392,7 +392,7 @@ fn lock_sdist_url() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"###); "###);
@ -453,7 +453,7 @@ fn lock_sdist_url() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
+ anyio==4.3.0 (from https://files.pythonhosted.org/packages/db/4d/3970183622f0330d3c23d9b8a5f52e365e50381fd484d08e3285104333d3/anyio-4.3.0.tar.gz) + anyio==4.3.0 (from https://files.pythonhosted.org/packages/db/4d/3970183622f0330d3c23d9b8a5f52e365e50381fd484d08e3285104333d3/anyio-4.3.0.tar.gz)
@ -491,7 +491,7 @@ fn lock_project_extra() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 5 packages in [TIME] Resolved 5 packages in [TIME]
"###); "###);
@ -569,7 +569,7 @@ fn lock_project_extra() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
+ anyio==3.7.0 + anyio==3.7.0
@ -585,7 +585,7 @@ fn lock_project_extra() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 1 package in [TIME] Installed 1 package in [TIME]
+ iniconfig==2.0.0 + iniconfig==2.0.0
@ -618,7 +618,7 @@ fn lock_project_with_overrides() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 9 packages in [TIME] Resolved 9 packages in [TIME]
"###); "###);
@ -629,7 +629,7 @@ fn lock_project_with_overrides() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 8 packages in [TIME] Prepared 8 packages in [TIME]
Installed 8 packages in [TIME] Installed 8 packages in [TIME]
+ blinker==1.7.0 + blinker==1.7.0
@ -667,7 +667,7 @@ fn lock_dependency_extra() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 10 packages in [TIME] Resolved 10 packages in [TIME]
"###); "###);
@ -811,7 +811,7 @@ fn lock_dependency_extra() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 9 packages in [TIME] Prepared 9 packages in [TIME]
Installed 9 packages in [TIME] Installed 9 packages in [TIME]
+ blinker==1.7.0 + blinker==1.7.0
@ -853,7 +853,7 @@ fn lock_conditional_dependency_extra() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 7 packages in [TIME] Resolved 7 packages in [TIME]
"###); "###);
@ -1040,7 +1040,7 @@ fn lock_conditional_dependency_extra() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 6 packages in [TIME] Prepared 6 packages in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
+ certifi==2024.2.2 + certifi==2024.2.2
@ -1064,7 +1064,7 @@ fn lock_conditional_dependency_extra() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 7 packages in [TIME] Prepared 7 packages in [TIME]
Installed 7 packages in [TIME] Installed 7 packages in [TIME]
+ certifi==2024.2.2 + certifi==2024.2.2
@ -1102,9 +1102,9 @@ fn lock_dependency_non_existent_extra() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 9 packages in [TIME] Resolved 9 packages in [TIME]
warning: The package `flask==3.0.2` does not have an extra named `foo`. warning: The package `flask==3.0.2` does not have an extra named `foo`
"###); "###);
let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap();
@ -1233,7 +1233,7 @@ fn lock_dependency_non_existent_extra() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 8 packages in [TIME] Prepared 8 packages in [TIME]
Installed 8 packages in [TIME] Installed 8 packages in [TIME]
+ blinker==1.7.0 + blinker==1.7.0
@ -1272,7 +1272,7 @@ fn lock_upgrade_log() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 9 packages in [TIME] Resolved 9 packages in [TIME]
"###); "###);
@ -1402,7 +1402,7 @@ fn lock_upgrade_log() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 9 packages in [TIME] Resolved 9 packages in [TIME]
"###); "###);
@ -1424,7 +1424,7 @@ fn lock_upgrade_log() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 9 packages in [TIME] Resolved 9 packages in [TIME]
Updating flask v2.3.3 -> v3.0.2 Updating flask v2.3.3 -> v3.0.2
"###); "###);
@ -1574,7 +1574,7 @@ fn lock_upgrade_log_multi_version() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 10 packages in [TIME] Resolved 10 packages in [TIME]
"###); "###);
@ -1721,7 +1721,7 @@ fn lock_upgrade_log_multi_version() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 10 packages in [TIME] Resolved 10 packages in [TIME]
"###); "###);
@ -1743,7 +1743,7 @@ fn lock_upgrade_log_multi_version() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 9 packages in [TIME] Resolved 9 packages in [TIME]
Updating flask v2.3.3, 3.0.0 -> v3.0.2 Updating flask v2.3.3, 3.0.0 -> v3.0.2
"###); "###);
@ -1892,7 +1892,7 @@ fn lock_preference() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -1947,7 +1947,7 @@ fn lock_preference() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -1993,7 +1993,7 @@ fn lock_preference() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -2056,7 +2056,7 @@ fn lock_git_sha() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -2109,7 +2109,7 @@ fn lock_git_sha() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -2149,7 +2149,7 @@ fn lock_git_sha() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -2211,7 +2211,7 @@ fn lock_requires_python() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
× No solution found when resolving dependencies: × No solution found when resolving dependencies:
Because the requested Python version (>=3.7) does not satisfy Python>=3.8 and the requested Python version (>=3.7) does not satisfy Python>=3.7.9,<3.8, we can conclude that Python>=3.7.9 is incompatible. Because the requested Python version (>=3.7) does not satisfy Python>=3.8 and the requested Python version (>=3.7) does not satisfy Python>=3.7.9,<3.8, we can conclude that Python>=3.7.9 is incompatible.
And because pygls>=1.1.0,<=1.2.1 depends on Python>=3.7.9,<4 and only pygls<=1.3.0 is available, we can conclude that any of: And because pygls>=1.1.0,<=1.2.1 depends on Python>=3.7.9,<4 and only pygls<=1.3.0 is available, we can conclude that any of:
@ -2249,7 +2249,7 @@ fn lock_requires_python() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 10 packages in [TIME] Resolved 10 packages in [TIME]
"###); "###);
@ -2397,7 +2397,7 @@ fn lock_requires_python() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 9 packages in [TIME] Resolved 9 packages in [TIME]
"###); "###);
@ -2535,7 +2535,7 @@ fn lock_requires_python() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 5 packages in [TIME] Resolved 5 packages in [TIME]
"###); "###);
@ -2630,7 +2630,7 @@ fn lock_requires_python() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
error: No interpreter found for Python >=3.12 in system path error: No interpreter found for Python >=3.12 in system path
"###); "###);
@ -2663,7 +2663,7 @@ fn lock_requires_python_wheels() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Using Python 3.12.[X] interpreter at: [PYTHON-3.12] Using Python 3.12.[X] interpreter at: [PYTHON-3.12]
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -2732,7 +2732,7 @@ fn lock_requires_python_wheels() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Using Python 3.11.[X] interpreter at: [PYTHON-3.11] Using Python 3.11.[X] interpreter at: [PYTHON-3.11]
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -2812,7 +2812,7 @@ fn lock_requires_python_star() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
"###); "###);
@ -2921,7 +2921,7 @@ fn lock_requires_python_pre() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
"###); "###);
@ -3028,7 +3028,7 @@ fn lock_requires_python_unbounded() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
warning: The workspace `requires-python` field does not contain a lower bound: `<=3.12`. Set a lower bound to indicate the minimum compatible Python version (e.g., `>=3.11`). warning: The workspace `requires-python` field does not contain a lower bound: `<=3.12`. Set a lower bound to indicate the minimum compatible Python version (e.g., `>=3.11`).
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -3105,7 +3105,7 @@ fn lock_python_version_marker_complement() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"###); "###);
@ -3189,7 +3189,7 @@ fn lock_dev() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 3 packages in [TIME] Resolved 3 packages in [TIME]
"###); "###);
@ -3244,7 +3244,7 @@ fn lock_dev() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 2 packages in [TIME] Prepared 2 packages in [TIME]
Installed 2 packages in [TIME] Installed 2 packages in [TIME]
+ iniconfig==2.0.0 + iniconfig==2.0.0
@ -3258,7 +3258,7 @@ fn lock_dev() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Installed 1 package in [TIME] Installed 1 package in [TIME]
+ typing-extensions==4.12.2 (from https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl) + typing-extensions==4.12.2 (from https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl)
"###); "###);
@ -3289,7 +3289,7 @@ fn lock_conditional_unconditional() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -3350,7 +3350,7 @@ fn lock_multiple_markers() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"###); "###);
@ -3514,7 +3514,7 @@ fn lock_cycles() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 11 packages in [TIME] Resolved 11 packages in [TIME]
"###); "###);
@ -3660,7 +3660,7 @@ fn lock_cycles() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 11 packages in [TIME] Prepared 11 packages in [TIME]
Installed 11 packages in [TIME] Installed 11 packages in [TIME]
+ argparse==1.4.0 + argparse==1.4.0
@ -3989,7 +3989,7 @@ fn lock_invalid_hash() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
error: Failed to prepare distributions error: Failed to prepare distributions
Caused by: Failed to fetch wheel: idna==3.6 Caused by: Failed to fetch wheel: idna==3.6
Caused by: Hash mismatch for `idna==3.6` Caused by: Hash mismatch for `idna==3.6`

View file

@ -70,7 +70,7 @@ fn fork_allows_non_conflicting_non_overlapping_dependencies() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"### "###
); );
@ -166,7 +166,7 @@ fn fork_allows_non_conflicting_repeated_dependencies() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"### "###
); );
@ -251,7 +251,7 @@ fn fork_basic() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 3 packages in [TIME] Resolved 3 packages in [TIME]
"### "###
); );
@ -361,7 +361,7 @@ fn conflict_in_fork() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
× No solution found when resolving dependencies for split (sys_platform == 'darwin'): × No solution found when resolving dependencies for split (sys_platform == 'darwin'):
Because only package-b==1.0.0 is available and package-b==1.0.0 depends on package-d==1, we can conclude that all versions of package-b depend on package-d==1. Because only package-b==1.0.0 is available and package-b==1.0.0 depends on package-d==1, we can conclude that all versions of package-b depend on package-d==1.
And because package-c==1.0.0 depends on package-d==2 and only package-c==1.0.0 is available, we can conclude that all versions of package-b and all versions of package-c are incompatible. And because package-c==1.0.0 depends on package-d==2 and only package-c==1.0.0 is available, we can conclude that all versions of package-b and all versions of package-c are incompatible.
@ -430,7 +430,7 @@ fn fork_conflict_unsatisfiable() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
× No solution found when resolving dependencies: × No solution found when resolving dependencies:
Because project==0.1.0 depends on package-a>=2 and package-a<2, we can conclude that project==0.1.0 cannot be used. Because project==0.1.0 depends on package-a>=2 and package-a<2, we can conclude that project==0.1.0 cannot be used.
And because only project==0.1.0 is available and you require project, we can conclude that the requirements are unsatisfiable. And because only project==0.1.0 is available and you require project, we can conclude that the requirements are unsatisfiable.
@ -512,7 +512,7 @@ fn fork_filter_sibling_dependencies() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 7 packages in [TIME] Resolved 7 packages in [TIME]
"### "###
); );
@ -663,7 +663,7 @@ fn fork_incomplete_markers() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 5 packages in [TIME] Resolved 5 packages in [TIME]
"### "###
); );
@ -790,7 +790,7 @@ fn fork_marker_accrue() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"### "###
); );
@ -907,7 +907,7 @@ fn fork_marker_disjoint() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
× No solution found when resolving dependencies: × No solution found when resolving dependencies:
Because project==0.1.0 depends on package-a{sys_platform == 'linux'}>=2 and package-a{sys_platform == 'linux'}<2, we can conclude that project==0.1.0 cannot be used. Because project==0.1.0 depends on package-a{sys_platform == 'linux'}>=2 and package-a{sys_platform == 'linux'}<2, we can conclude that project==0.1.0 cannot be used.
And because only project==0.1.0 is available and you require project, we can conclude that the requirements are unsatisfiable. And because only project==0.1.0 is available and you require project, we can conclude that the requirements are unsatisfiable.
@ -979,7 +979,7 @@ fn fork_marker_inherit_combined_allowed() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
"### "###
); );
@ -1123,7 +1123,7 @@ fn fork_marker_inherit_combined_disallowed() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 5 packages in [TIME] Resolved 5 packages in [TIME]
"### "###
); );
@ -1256,7 +1256,7 @@ fn fork_marker_inherit_combined() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 5 packages in [TIME] Resolved 5 packages in [TIME]
"### "###
); );
@ -1383,7 +1383,7 @@ fn fork_marker_inherit_isolated() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"### "###
); );
@ -1505,7 +1505,7 @@ fn fork_marker_inherit_transitive() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 5 packages in [TIME] Resolved 5 packages in [TIME]
"### "###
); );
@ -1634,7 +1634,7 @@ fn fork_marker_inherit() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 3 packages in [TIME] Resolved 3 packages in [TIME]
"### "###
); );
@ -1744,7 +1744,7 @@ fn fork_marker_limited_inherit() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 5 packages in [TIME] Resolved 5 packages in [TIME]
"### "###
); );
@ -1873,7 +1873,7 @@ fn fork_marker_selection() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"### "###
); );
@ -2001,7 +2001,7 @@ fn fork_marker_track() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 5 packages in [TIME] Resolved 5 packages in [TIME]
"### "###
); );
@ -2127,7 +2127,7 @@ fn fork_non_fork_marker_transitive() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"### "###
); );
@ -2247,7 +2247,7 @@ fn fork_non_local_fork_marker_direct() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
× No solution found when resolving dependencies: × No solution found when resolving dependencies:
Because package-b{sys_platform == 'darwin'}==1.0.0 depends on package-c>=2.0.0 and package-a{sys_platform == 'linux'}==1.0.0 depends on package-c<2.0.0, we can conclude that package-a{sys_platform == 'linux'}==1.0.0 and package-b{sys_platform == 'darwin'}==1.0.0 are incompatible. Because package-b{sys_platform == 'darwin'}==1.0.0 depends on package-c>=2.0.0 and package-a{sys_platform == 'linux'}==1.0.0 depends on package-c<2.0.0, we can conclude that package-a{sys_platform == 'linux'}==1.0.0 and package-b{sys_platform == 'darwin'}==1.0.0 are incompatible.
And because project==0.1.0 depends on package-a{sys_platform == 'linux'}==1.0.0 and package-b{sys_platform == 'darwin'}==1.0.0, we can conclude that project==0.1.0 cannot be used. And because project==0.1.0 depends on package-a{sys_platform == 'linux'}==1.0.0 and package-b{sys_platform == 'darwin'}==1.0.0, we can conclude that project==0.1.0 cannot be used.
@ -2322,7 +2322,7 @@ fn fork_non_local_fork_marker_transitive() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
× No solution found when resolving dependencies: × No solution found when resolving dependencies:
Because package-b==1.0.0 depends on package-c{sys_platform == 'darwin'}>=2.0.0 and only package-c{sys_platform == 'darwin'}<=2.0.0 is available, we can conclude that package-b==1.0.0 depends on package-c{sys_platform == 'darwin'}==2.0.0. Because package-b==1.0.0 depends on package-c{sys_platform == 'darwin'}>=2.0.0 and only package-c{sys_platform == 'darwin'}<=2.0.0 is available, we can conclude that package-b==1.0.0 depends on package-c{sys_platform == 'darwin'}==2.0.0.
And because only the following versions of package-c{sys_platform == 'linux'} are available: And because only the following versions of package-c{sys_platform == 'linux'} are available:
@ -2383,7 +2383,7 @@ fn fork_requires_python_full_prerelease() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
"### "###
); );
@ -2455,7 +2455,7 @@ fn fork_requires_python_full() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
"### "###
); );
@ -2530,7 +2530,7 @@ fn fork_requires_python_patch_overlap() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"### "###
); );
@ -2612,7 +2612,7 @@ fn fork_requires_python() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv lock` is experimental and may change without warning. warning: `uv lock` is experimental and may change without warning
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
"### "###
); );

View file

@ -109,7 +109,7 @@ fn check_incompatible_packages() -> Result<()> {
Installed 1 package in [TIME] Installed 1 package in [TIME]
- idna==3.6 - idna==3.6
+ idna==2.4 + idna==2.4
warning: The package `requests` requires `idna<4,>=2.5`, but `2.4` is installed. warning: The package `requests` requires `idna<4,>=2.5`, but `2.4` is installed
"### "###
); );
@ -121,7 +121,7 @@ fn check_incompatible_packages() -> Result<()> {
----- stderr ----- ----- stderr -----
Checked 5 packages in [TIME] Checked 5 packages in [TIME]
Found 1 incompatibility Found 1 incompatibility
The package `requests` requires `idna<4,>=2.5`, but `2.4` is installed. The package `requests` requires `idna<4,>=2.5`, but `2.4` is installed
"### "###
); );
@ -180,8 +180,8 @@ fn check_multiple_incompatible_packages() -> Result<()> {
+ idna==2.4 + idna==2.4
- urllib3==2.2.1 - urllib3==2.2.1
+ urllib3==1.20 + urllib3==1.20
warning: The package `requests` requires `idna<4,>=2.5`, but `2.4` is installed. warning: The package `requests` requires `idna<4,>=2.5`, but `2.4` is installed
warning: The package `requests` requires `urllib3<3,>=1.21.1`, but `1.20` is installed. warning: The package `requests` requires `urllib3<3,>=1.21.1`, but `1.20` is installed
"### "###
); );
@ -193,8 +193,8 @@ fn check_multiple_incompatible_packages() -> Result<()> {
----- stderr ----- ----- stderr -----
Checked 5 packages in [TIME] Checked 5 packages in [TIME]
Found 2 incompatibilities Found 2 incompatibilities
The package `requests` requires `idna<4,>=2.5`, but `2.4` is installed. The package `requests` requires `idna<4,>=2.5`, but `2.4` is installed
The package `requests` requires `urllib3<3,>=1.21.1`, but `1.20` is installed. The package `requests` requires `urllib3<3,>=1.21.1`, but `1.20` is installed
"### "###
); );

View file

@ -2906,7 +2906,7 @@ fn compile_yanked_version_direct() -> Result<()> {
----- stderr ----- ----- stderr -----
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
warning: `attrs==21.1.0` is yanked (reason: "Installable but not importable on Python 3.4."). warning: `attrs==21.1.0` is yanked (reason: "Installable but not importable on Python 3.4.")
"### "###
); );
@ -3349,7 +3349,7 @@ fn missing_registry_extra() -> Result<()> {
----- stderr ----- ----- stderr -----
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
warning: The package `black==23.10.1` does not have an extra named `tensorboard`. warning: The package `black==23.10.1` does not have an extra named `tensorboard`
"### "###
); );
@ -3389,7 +3389,7 @@ fn missing_url_extra() -> Result<()> {
----- stderr ----- ----- stderr -----
Resolved 7 packages in [TIME] Resolved 7 packages in [TIME]
warning: The package `flask @ https://files.pythonhosted.org/packages/36/42/015c23096649b908c809c69388a805a571a3bea44362fe87e33fc3afa01f/flask-3.0.0-py3-none-any.whl` does not have an extra named `tensorboard`. warning: The package `flask @ https://files.pythonhosted.org/packages/36/42/015c23096649b908c809c69388a805a571a3bea44362fe87e33fc3afa01f/flask-3.0.0-py3-none-any.whl` does not have an extra named `tensorboard`
"### "###
); );
@ -5084,7 +5084,7 @@ fn allow_unsafe() -> Result<()> {
# via -r requirements.in # via -r requirements.in
----- stderr ----- ----- stderr -----
warning: pip-compile's `--allow-unsafe` has no effect (uv can safely pin `pip` and other packages). warning: pip-compile's `--allow-unsafe` has no effect (uv can safely pin `pip` and other packages)
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
"### "###
); );
@ -5107,7 +5107,7 @@ fn resolver_legacy() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
error: pip-compile's `--resolver=legacy` is unsupported (uv always backtracks). error: pip-compile's `--resolver=legacy` is unsupported (uv always backtracks)
"### "###
); );
@ -6064,7 +6064,7 @@ fn no_deps_invalid_extra() -> Result<()> {
----- stderr ----- ----- stderr -----
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
warning: The package `flask==3.0.2` does not have an extra named `empty`. warning: The package `flask==3.0.2` does not have an extra named `empty`
"### "###
); );
@ -6161,7 +6161,7 @@ fn editable_invalid_extra() -> Result<()> {
----- stderr ----- ----- stderr -----
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
warning: The package `black @ file://[WORKSPACE]/scripts/packages/black_editable` does not have an extra named `empty`. warning: The package `black @ file://[WORKSPACE]/scripts/packages/black_editable` does not have an extra named `empty`
"###); "###);
Ok(()) Ok(())

View file

@ -95,7 +95,7 @@ fn freeze_duplicate() -> Result<()> {
pip==22.1.1 pip==22.1.1
----- stderr ----- ----- stderr -----
warning: The package `pip` has multiple installed distributions: warning: The package `pip` has multiple installed distributions:
- [SITE_PACKAGES]/pip-21.3.1.dist-info - [SITE_PACKAGES]/pip-21.3.1.dist-info
- [SITE_PACKAGES]/pip-22.1.1.dist-info - [SITE_PACKAGES]/pip-22.1.1.dist-info
"### "###
@ -129,8 +129,8 @@ fn freeze_url() -> Result<()> {
iniconfig @ https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl iniconfig @ https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl
----- stderr ----- ----- stderr -----
warning: The package `anyio` requires `idna>=2.8`, but it's not installed. warning: The package `anyio` requires `idna>=2.8`, but it's not installed
warning: The package `anyio` requires `sniffio>=1.1`, but it's not installed. warning: The package `anyio` requires `sniffio>=1.1`, but it's not installed
"### "###
); );
@ -167,8 +167,8 @@ fn freeze_with_editable() -> Result<()> {
-e file://[WORKSPACE]/scripts/packages/poetry_editable -e file://[WORKSPACE]/scripts/packages/poetry_editable
----- stderr ----- ----- stderr -----
warning: The package `anyio` requires `idna>=2.8`, but it's not installed. warning: The package `anyio` requires `idna>=2.8`, but it's not installed
warning: The package `anyio` requires `sniffio>=1.1`, but it's not installed. warning: The package `anyio` requires `sniffio>=1.1`, but it's not installed
"### "###
); );
@ -182,8 +182,8 @@ fn freeze_with_editable() -> Result<()> {
anyio==4.3.0 anyio==4.3.0
----- stderr ----- ----- stderr -----
warning: The package `anyio` requires `idna>=2.8`, but it's not installed. warning: The package `anyio` requires `idna>=2.8`, but it's not installed
warning: The package `anyio` requires `sniffio>=1.1`, but it's not installed. warning: The package `anyio` requires `sniffio>=1.1`, but it's not installed
"### "###
); );

View file

@ -761,7 +761,7 @@ fn allow_incompatibilities() -> Result<()> {
Installed 1 package in [TIME] Installed 1 package in [TIME]
- jinja2==3.1.3 - jinja2==3.1.3
+ jinja2==2.11.3 + jinja2==2.11.3
warning: The package `flask` requires `jinja2>=3.1.2`, but `2.11.3` is installed. warning: The package `flask` requires `jinja2>=3.1.2`, but `2.11.3` is installed
"### "###
); );
@ -2262,11 +2262,11 @@ fn no_deps() {
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 1 package in [TIME] Installed 1 package in [TIME]
+ flask==3.0.2 + flask==3.0.2
warning: The package `flask` requires `werkzeug>=3.0.0`, but it's not installed. warning: The package `flask` requires `werkzeug>=3.0.0`, but it's not installed
warning: The package `flask` requires `jinja2>=3.1.2`, but it's not installed. warning: The package `flask` requires `jinja2>=3.1.2`, but it's not installed
warning: The package `flask` requires `itsdangerous>=2.1.2`, but it's not installed. warning: The package `flask` requires `itsdangerous>=2.1.2`, but it's not installed
warning: The package `flask` requires `click>=8.1.3`, but it's not installed. warning: The package `flask` requires `click>=8.1.3`, but it's not installed
warning: The package `flask` requires `blinker>=1.6.2`, but it's not installed. warning: The package `flask` requires `blinker>=1.6.2`, but it's not installed
"### "###
); );
@ -5727,7 +5727,7 @@ fn tool_uv_sources_is_in_preview() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv.sources` is experimental and may change without warning. warning: `uv.sources` is experimental and may change without warning
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 1 package in [TIME] Installed 1 package in [TIME]

View file

@ -701,7 +701,7 @@ fn missing_extra() {
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 1 package in [TIME] Installed 1 package in [TIME]
+ package-a==1.0.0 + package-a==1.0.0
warning: The package `package-a==1.0.0` does not have an extra named `extra`. warning: The package `package-a==1.0.0` does not have an extra named `extra`
"###); "###);
// Missing extras are ignored during resolution. // Missing extras are ignored during resolution.
@ -1074,7 +1074,7 @@ fn extra_does_not_exist_backtrack() {
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 1 package in [TIME] Installed 1 package in [TIME]
+ package-a==3.0.0 + package-a==3.0.0
warning: The package `package-a==3.0.0` does not have an extra named `extra`. warning: The package `package-a==3.0.0` does not have an extra named `extra`
"###); "###);
// The resolver should not backtrack to `a==1.0.0` because missing extras are // The resolver should not backtrack to `a==1.0.0` because missing extras are
@ -4769,7 +4769,7 @@ fn transitive_package_only_yanked_in_range_opt_in() {
Installed 2 packages in [TIME] Installed 2 packages in [TIME]
+ package-a==0.1.0 + package-a==0.1.0
+ package-b==1.0.0 + package-b==1.0.0
warning: `package-b==1.0.0` is yanked (reason: "Yanked for testing"). warning: `package-b==1.0.0` is yanked (reason: "Yanked for testing")
"###); "###);
// Since the user included a dependency on `b` with an exact specifier, the yanked // Since the user included a dependency on `b` with an exact specifier, the yanked
@ -4901,7 +4901,7 @@ fn transitive_yanked_and_unyanked_dependency_opt_in() {
+ package-a==1.0.0 + package-a==1.0.0
+ package-b==1.0.0 + package-b==1.0.0
+ package-c==2.0.0 + package-c==2.0.0
warning: `package-c==2.0.0` is yanked (reason: "Yanked for testing"). warning: `package-c==2.0.0` is yanked (reason: "Yanked for testing")
"###); "###);
// Since the user explicitly selected the yanked version of `c`, it can be // Since the user explicitly selected the yanked version of `c`, it can be

View file

@ -933,7 +933,7 @@ fn warn_on_yanked() -> Result<()> {
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 1 package in [TIME] Installed 1 package in [TIME]
+ colorama==0.4.2 + colorama==0.4.2
warning: `colorama==0.4.2` is yanked (reason: "Bad build, missing files, will not install"). warning: `colorama==0.4.2` is yanked (reason: "Bad build, missing files, will not install")
"### "###
); );
@ -961,7 +961,7 @@ fn warn_on_yanked_dry_run() -> Result<()> {
Would download 1 package Would download 1 package
Would install 1 package Would install 1 package
+ colorama==0.4.2 + colorama==0.4.2
warning: `colorama==0.4.2` is yanked (reason: "Bad build, missing files, will not install"). warning: `colorama==0.4.2` is yanked (reason: "Bad build, missing files, will not install")
"### "###
); );
@ -1742,7 +1742,7 @@ fn install_url_built_dist_cached() -> Result<()> {
requirements_txt.write_str("tqdm @ https://files.pythonhosted.org/packages/00/e5/f12a80907d0884e6dff9c16d0c0114d81b8cd07dc3ae54c5e962cc83037e/tqdm-4.66.1-py3-none-any.whl")?; requirements_txt.write_str("tqdm @ https://files.pythonhosted.org/packages/00/e5/f12a80907d0884e6dff9c16d0c0114d81b8cd07dc3ae54c5e962cc83037e/tqdm-4.66.1-py3-none-any.whl")?;
let filters = if cfg!(windows) { let filters = if cfg!(windows) {
[("warning: The package `tqdm` requires `colorama ; platform_system == 'Windows'`, but it's not installed.\n", "")] [("warning: The package `tqdm` requires `colorama ; platform_system == 'Windows'`, but it's not installed\n", "")]
.into_iter() .into_iter()
.chain(context.filters()) .chain(context.filters())
.collect() .collect()
@ -2278,11 +2278,11 @@ fn sync_editable_and_registry() -> Result<()> {
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 1 package in [TIME] Installed 1 package in [TIME]
+ black==24.1.0 + black==24.1.0
warning: The package `black` requires `click>=8.0.0`, but it's not installed. warning: The package `black` requires `click>=8.0.0`, but it's not installed
warning: The package `black` requires `mypy-extensions>=0.4.3`, but it's not installed. warning: The package `black` requires `mypy-extensions>=0.4.3`, but it's not installed
warning: The package `black` requires `packaging>=22.0`, but it's not installed. warning: The package `black` requires `packaging>=22.0`, but it's not installed
warning: The package `black` requires `pathspec>=0.9.0`, but it's not installed. warning: The package `black` requires `pathspec>=0.9.0`, but it's not installed
warning: The package `black` requires `platformdirs>=2`, but it's not installed. warning: The package `black` requires `platformdirs>=2`, but it's not installed
"### "###
); );
@ -2351,11 +2351,11 @@ fn sync_editable_and_registry() -> Result<()> {
Installed 1 package in [TIME] Installed 1 package in [TIME]
- black==0.1.0 (from file://[TEMP_DIR]/black_editable) - black==0.1.0 (from file://[TEMP_DIR]/black_editable)
+ black==23.10.0 + black==23.10.0
warning: The package `black` requires `click>=8.0.0`, but it's not installed. warning: The package `black` requires `click>=8.0.0`, but it's not installed
warning: The package `black` requires `mypy-extensions>=0.4.3`, but it's not installed. warning: The package `black` requires `mypy-extensions>=0.4.3`, but it's not installed
warning: The package `black` requires `packaging>=22.0`, but it's not installed. warning: The package `black` requires `packaging>=22.0`, but it's not installed
warning: The package `black` requires `pathspec>=0.9.0`, but it's not installed. warning: The package `black` requires `pathspec>=0.9.0`, but it's not installed
warning: The package `black` requires `platformdirs>=2`, but it's not installed. warning: The package `black` requires `platformdirs>=2`, but it's not installed
"### "###
); );

View file

@ -17,6 +17,6 @@ fn python_dir() {
[TEMP_DIR]/python [TEMP_DIR]/python
----- stderr ----- ----- stderr -----
warning: `uv python dir` is experimental and may change without warning. warning: `uv python dir` is experimental and may change without warning
"###); "###);
} }

View file

@ -20,7 +20,7 @@ fn python_pin() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
error: No pinned Python version found. error: No pinned Python version found
"###); "###);
// Given an argument, we pin to that version // Given an argument, we pin to that version

View file

@ -171,7 +171,7 @@ fn run_args() -> Result<()> {
Python 3.12.[X] Python 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv run` is experimental and may change without warning. warning: `uv run` is experimental and may change without warning
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 1 package in [TIME] Installed 1 package in [TIME]
@ -186,7 +186,7 @@ fn run_args() -> Result<()> {
Python 3.12.[X] Python 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv run` is experimental and may change without warning. warning: `uv run` is experimental and may change without warning
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
Audited 1 package in [TIME] Audited 1 package in [TIME]
"###); "###);
@ -324,7 +324,7 @@ fn run_managed_false() -> Result<()> {
Python 3.12.[X] Python 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv run` is experimental and may change without warning. warning: `uv run` is experimental and may change without warning
"###); "###);
Ok(()) Ok(())
@ -357,7 +357,7 @@ fn run_with() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv run` is experimental and may change without warning. warning: `uv run` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
@ -378,7 +378,7 @@ fn run_with() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv run` is experimental and may change without warning. warning: `uv run` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Audited 4 packages in [TIME] Audited 4 packages in [TIME]
"###); "###);
@ -390,7 +390,7 @@ fn run_with() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv run` is experimental and may change without warning. warning: `uv run` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Audited 4 packages in [TIME] Audited 4 packages in [TIME]
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
@ -424,7 +424,7 @@ fn run_locked() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv run` is experimental and may change without warning. warning: `uv run` is experimental and may change without warning
error: Unable to find lockfile at `uv.lock`. To create a lockfile, run `uv lock` or `uv sync`. error: Unable to find lockfile at `uv.lock`. To create a lockfile, run `uv lock` or `uv sync`.
"###); "###);
@ -451,7 +451,7 @@ fn run_locked() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv run` is experimental and may change without warning. warning: `uv run` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
error: The lockfile at `uv.lock` needs to be updated, but `--locked` was provided. To update the lockfile, run `uv lock`. error: The lockfile at `uv.lock` needs to be updated, but `--locked` was provided. To update the lockfile, run `uv lock`.
"###); "###);
@ -472,7 +472,7 @@ fn run_locked() -> Result<()> {
Python 3.12.[X] Python 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv run` is experimental and may change without warning. warning: `uv run` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
Prepared 2 packages in [TIME] Prepared 2 packages in [TIME]
Installed 2 packages in [TIME] Installed 2 packages in [TIME]
@ -505,7 +505,7 @@ fn run_frozen() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv run` is experimental and may change without warning. warning: `uv run` is experimental and may change without warning
error: Unable to find lockfile at `uv.lock`. To create a lockfile, run `uv lock` or `uv sync`. error: Unable to find lockfile at `uv.lock`. To create a lockfile, run `uv lock` or `uv sync`.
"###); "###);
@ -530,7 +530,7 @@ fn run_frozen() -> Result<()> {
Python 3.12.[X] Python 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv run` is experimental and may change without warning. warning: `uv run` is experimental and may change without warning
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
+ anyio==3.7.0 + anyio==3.7.0

View file

@ -30,7 +30,7 @@ fn sync() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
Prepared 2 packages in [TIME] Prepared 2 packages in [TIME]
Installed 2 packages in [TIME] Installed 2 packages in [TIME]
@ -65,7 +65,7 @@ fn locked() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
error: Unable to find lockfile at `uv.lock`. To create a lockfile, run `uv lock` or `uv sync`. error: Unable to find lockfile at `uv.lock`. To create a lockfile, run `uv lock` or `uv sync`.
"###); "###);
@ -92,7 +92,7 @@ fn locked() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Resolved 2 packages in [TIME] Resolved 2 packages in [TIME]
error: The lockfile at `uv.lock` needs to be updated, but `--locked` was provided. To update the lockfile, run `uv lock`. error: The lockfile at `uv.lock` needs to be updated, but `--locked` was provided. To update the lockfile, run `uv lock`.
"###); "###);
@ -127,7 +127,7 @@ fn frozen() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
error: Unable to find lockfile at `uv.lock`. To create a lockfile, run `uv lock` or `uv sync`. error: Unable to find lockfile at `uv.lock`. To create a lockfile, run `uv lock` or `uv sync`.
"###); "###);
@ -151,7 +151,7 @@ fn frozen() -> Result<()> {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv sync` is experimental and may change without warning. warning: `uv sync` is experimental and may change without warning
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
+ anyio==3.7.0 + anyio==3.7.0

View file

@ -21,7 +21,7 @@ fn tool_dir() {
[TEMP_DIR]/tools [TEMP_DIR]/tools
----- stderr ----- ----- stderr -----
warning: `uv tool dir` is experimental and may change without warning. warning: `uv tool dir` is experimental and may change without warning
"###); "###);
} }
@ -40,6 +40,6 @@ fn tool_dir_bin() {
[TEMP_DIR]/bin [TEMP_DIR]/bin
----- stderr ----- ----- stderr -----
warning: `uv tool dir` is experimental and may change without warning. warning: `uv tool dir` is experimental and may change without warning
"###); "###);
} }

View file

@ -33,7 +33,7 @@ fn tool_install() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -109,7 +109,7 @@ fn tool_install() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -192,7 +192,7 @@ fn tool_install_suggest_other_packages_with_executable() {
Did you mean `uv tool install fastapi-cli`? Did you mean `uv tool install fastapi-cli`?
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved 35 packages in [TIME] Resolved 35 packages in [TIME]
Prepared 35 packages in [TIME] Prepared 35 packages in [TIME]
Installed 35 packages in [TIME] Installed 35 packages in [TIME]
@ -251,7 +251,7 @@ fn tool_install_version() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 6 packages in [TIME] Prepared 6 packages in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
@ -337,7 +337,7 @@ fn tool_install_from() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 6 packages in [TIME] Prepared 6 packages in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
@ -363,7 +363,7 @@ fn tool_install_from() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
error: Package name (`flask`) provided with `--from` does not match install request (`black`) error: Package name (`flask`) provided with `--from` does not match install request (`black`)
"###); "###);
@ -380,7 +380,7 @@ fn tool_install_from() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
error: Package requirement (`black==24.3.0`) provided with `--from` conflicts with install request (`black==24.2.0`) error: Package requirement (`black==24.3.0`) provided with `--from` conflicts with install request (`black==24.2.0`)
"###); "###);
} }
@ -405,7 +405,7 @@ fn tool_install_already_installed() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -471,7 +471,7 @@ fn tool_install_already_installed() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
`black` is already installed `black` is already installed
"###); "###);
@ -507,7 +507,7 @@ fn tool_install_already_installed() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Uninstalled [N] packages in [TIME] Uninstalled [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -540,7 +540,7 @@ fn tool_install_already_installed() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Uninstalled [N] packages in [TIME] Uninstalled [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -563,7 +563,7 @@ fn tool_install_already_installed() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Uninstalled [N] packages in [TIME] Uninstalled [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -596,7 +596,7 @@ fn tool_install_entry_point_exists() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -636,7 +636,7 @@ fn tool_install_entry_point_exists() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
+ black==24.3.0 + black==24.3.0
@ -677,7 +677,7 @@ fn tool_install_entry_point_exists() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
+ black==24.3.0 + black==24.3.0
@ -701,7 +701,7 @@ fn tool_install_entry_point_exists() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
+ black==24.3.0 + black==24.3.0
@ -727,7 +727,7 @@ fn tool_install_entry_point_exists() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Installed 2 executables: black, blackd Installed 2 executables: black, blackd
"###); "###);
@ -744,7 +744,7 @@ fn tool_install_entry_point_exists() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
`black` is already installed `black` is already installed
"###); "###);
@ -762,7 +762,7 @@ fn tool_install_entry_point_exists() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Uninstalled [N] packages in [TIME] Uninstalled [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -868,7 +868,7 @@ fn tool_install_home() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 6 packages in [TIME] Prepared 6 packages in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
@ -906,7 +906,7 @@ fn tool_install_xdg_data_home() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 6 packages in [TIME] Prepared 6 packages in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
@ -943,7 +943,7 @@ fn tool_install_xdg_bin_home() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 6 packages in [TIME] Prepared 6 packages in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
@ -979,7 +979,7 @@ fn tool_install_no_entrypoints() {
No executables are provided by package `iniconfig`. No executables are provided by package `iniconfig`.
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved 1 package in [TIME] Resolved 1 package in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 1 package in [TIME] Installed 1 package in [TIME]
@ -1005,7 +1005,7 @@ fn tool_install_unnamed_package() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 6 packages in [TIME] Prepared 6 packages in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
@ -1092,7 +1092,7 @@ fn tool_install_unnamed_conflict() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
error: Package name (`iniconfig`) provided with `--from` does not match install request (`black`) error: Package name (`iniconfig`) provided with `--from` does not match install request (`black`)
"###); "###);
} }
@ -1117,7 +1117,7 @@ fn tool_install_unnamed_from() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 6 packages in [TIME] Prepared 6 packages in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
@ -1203,7 +1203,7 @@ fn tool_install_unnamed_with() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved 7 packages in [TIME] Resolved 7 packages in [TIME]
Prepared 7 packages in [TIME] Prepared 7 packages in [TIME]
Installed 7 packages in [TIME] Installed 7 packages in [TIME]
@ -1293,7 +1293,7 @@ fn tool_install_upgrade() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -1332,7 +1332,7 @@ fn tool_install_upgrade() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Installed 2 executables: black, blackd Installed 2 executables: black, blackd
"###); "###);
@ -1363,7 +1363,7 @@ fn tool_install_upgrade() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -1401,7 +1401,7 @@ fn tool_install_upgrade() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Uninstalled [N] packages in [TIME] Uninstalled [N] packages in [TIME]
@ -1449,7 +1449,7 @@ fn tool_install_python_request() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -1475,7 +1475,7 @@ fn tool_install_python_request() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
`black` is already installed `black` is already installed
"###); "###);
@ -1492,7 +1492,7 @@ fn tool_install_python_request() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Existing environment for `black` does not satisfy the requested Python interpreter Existing environment for `black` does not satisfy the requested Python interpreter
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
@ -1527,7 +1527,7 @@ fn tool_install_preserve_environment() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -1553,7 +1553,7 @@ fn tool_install_preserve_environment() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
error: Because black==24.1.1 depends on packaging>=22.0 and you require black==24.1.1, we can conclude that you require packaging>=22.0. error: Because black==24.1.1 depends on packaging>=22.0 and you require black==24.1.1, we can conclude that you require packaging>=22.0.
And because you require packaging==0.0.1, we can conclude that the requirements are unsatisfiable. And because you require packaging==0.0.1, we can conclude that the requirements are unsatisfiable.
"###); "###);
@ -1569,7 +1569,7 @@ fn tool_install_preserve_environment() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
`black==24.1.1` is already installed `black==24.1.1` is already installed
"###); "###);
} }
@ -1595,7 +1595,7 @@ fn tool_install_warn_path() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]

View file

@ -35,7 +35,7 @@ fn tool_list() {
- blackd - blackd
----- stderr ----- ----- stderr -----
warning: `uv tool list` is experimental and may change without warning. warning: `uv tool list` is experimental and may change without warning
"###); "###);
} }
@ -65,7 +65,7 @@ fn tool_list_paths() {
- blackd ([TEMP_DIR]/bin/blackd) - blackd ([TEMP_DIR]/bin/blackd)
----- stderr ----- ----- stderr -----
warning: `uv tool list` is experimental and may change without warning. warning: `uv tool list` is experimental and may change without warning
"###); "###);
} }
@ -83,7 +83,7 @@ fn tool_list_empty() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool list` is experimental and may change without warning. warning: `uv tool list` is experimental and may change without warning
No tools installed No tools installed
"###); "###);
} }
@ -113,7 +113,7 @@ fn tool_list_missing_receipt() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool list` is experimental and may change without warning. warning: `uv tool list` is experimental and may change without warning
warning: Ignoring malformed tool `black` (run `uv tool uninstall black` to remove) warning: Ignoring malformed tool `black` (run `uv tool uninstall black` to remove)
"###); "###);
} }
@ -163,7 +163,7 @@ fn tool_list_bad_environment() -> Result<()> {
- ruff - ruff
----- stderr ----- ----- stderr -----
warning: `uv tool list` is experimental and may change without warning. warning: `uv tool list` is experimental and may change without warning
Python interpreter not found at `[TEMP_DIR]/tools/black/[BIN]/python` Python interpreter not found at `[TEMP_DIR]/tools/black/[BIN]/python`
"### "###
); );

View file

@ -39,7 +39,7 @@ fn tool_run_args() {
pytest 8.1.1 pytest 8.1.1
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -62,7 +62,7 @@ fn tool_run_args() {
pytest 8.1.1 pytest 8.1.1
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
"###); "###);
} }
@ -84,7 +84,7 @@ fn tool_run_at_version() {
pytest 8.0.0 pytest 8.0.0
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
@ -105,7 +105,7 @@ fn tool_run_at_version() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
error: Failed to parse: `pytest@` error: Failed to parse: `pytest@`
Caused by: Expected URL Caused by: Expected URL
pytest@ pytest@
@ -123,7 +123,7 @@ fn tool_run_at_version() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
error: Distribution not found at: file://[TEMP_DIR]/invalid error: Distribution not found at: file://[TEMP_DIR]/invalid
"###); "###);
@ -154,7 +154,7 @@ fn tool_run_at_version() {
- pytest - pytest
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
@ -185,7 +185,7 @@ fn tool_run_from_version() {
pytest 8.0.0 pytest 8.0.0
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
Prepared 4 packages in [TIME] Prepared 4 packages in [TIME]
Installed 4 packages in [TIME] Installed 4 packages in [TIME]
@ -217,7 +217,7 @@ fn tool_run_suggest_valid_commands() {
- blackd - blackd
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 6 packages in [TIME] Prepared 6 packages in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
@ -240,7 +240,7 @@ fn tool_run_suggest_valid_commands() {
The executable `fastapi-cli` was not found. The executable `fastapi-cli` was not found.
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved 3 packages in [TIME] Resolved 3 packages in [TIME]
Prepared 3 packages in [TIME] Prepared 3 packages in [TIME]
Installed 3 packages in [TIME] Installed 3 packages in [TIME]
@ -274,7 +274,7 @@ fn tool_run_warn_executable_not_in_from() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved 35 packages in [TIME] Resolved 35 packages in [TIME]
Prepared 35 packages in [TIME] Prepared 35 packages in [TIME]
Installed 35 packages in [TIME] Installed 35 packages in [TIME]
@ -344,7 +344,7 @@ fn tool_run_from_install() {
Python (CPython) 3.12.[X] Python (CPython) 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
"###); "###);
// Verify that `--isolated` uses an isolated environment. // Verify that `--isolated` uses an isolated environment.
@ -361,7 +361,7 @@ fn tool_run_from_install() {
Python (CPython) 3.12.[X] Python (CPython) 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
@ -386,7 +386,7 @@ fn tool_run_from_install() {
Python (CPython) 3.12.[X] Python (CPython) 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
@ -415,7 +415,7 @@ fn tool_run_from_install() {
Python (CPython) 3.12.[X] Python (CPython) 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved 7 packages in [TIME] Resolved 7 packages in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 7 packages in [TIME] Installed 7 packages in [TIME]
@ -443,7 +443,7 @@ fn tool_run_from_install() {
Python (CPython) 3.12.[X] Python (CPython) 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Prepared 1 package in [TIME] Prepared 1 package in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
@ -477,7 +477,7 @@ fn tool_run_cache() {
Python (CPython) 3.12.[X] Python (CPython) 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -504,7 +504,7 @@ fn tool_run_cache() {
Python (CPython) 3.12.[X] Python (CPython) 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
"###); "###);
@ -523,7 +523,7 @@ fn tool_run_cache() {
Python (CPython) 3.11.[X] Python (CPython) 3.11.[X]
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -550,7 +550,7 @@ fn tool_run_cache() {
Python (CPython) 3.12.[X] Python (CPython) 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
"###); "###);
@ -571,7 +571,7 @@ fn tool_run_cache() {
Python (CPython) 3.12.[X] Python (CPython) 3.12.[X]
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]
@ -606,7 +606,7 @@ fn tool_run_url() {
Werkzeug 3.0.1 Werkzeug 3.0.1
----- stderr ----- ----- stderr -----
warning: `uv tool run` is experimental and may change without warning. warning: `uv tool run` is experimental and may change without warning
Resolved [N] packages in [TIME] Resolved [N] packages in [TIME]
Prepared [N] packages in [TIME] Prepared [N] packages in [TIME]
Installed [N] packages in [TIME] Installed [N] packages in [TIME]

View file

@ -30,7 +30,7 @@ fn tool_uninstall() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool uninstall` is experimental and may change without warning. warning: `uv tool uninstall` is experimental and may change without warning
Uninstalled 2 executables: black, blackd Uninstalled 2 executables: black, blackd
"###); "###);
@ -43,7 +43,7 @@ fn tool_uninstall() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool list` is experimental and may change without warning. warning: `uv tool list` is experimental and may change without warning
No tools installed No tools installed
"###); "###);
@ -58,7 +58,7 @@ fn tool_uninstall() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool install` is experimental and may change without warning. warning: `uv tool install` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
Installed 6 packages in [TIME] Installed 6 packages in [TIME]
+ black==24.2.0 + black==24.2.0
@ -85,7 +85,7 @@ fn tool_uninstall_not_installed() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool uninstall` is experimental and may change without warning. warning: `uv tool uninstall` is experimental and may change without warning
error: `black` is not installed error: `black` is not installed
"###); "###);
} }
@ -115,7 +115,7 @@ fn tool_uninstall_missing_receipt() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: `uv tool uninstall` is experimental and may change without warning. warning: `uv tool uninstall` is experimental and may change without warning
Removed dangling environment for `black` Removed dangling environment for `black`
"###); "###);
} }

View file

@ -38,7 +38,7 @@ fn nested_dependencies() -> Result<()> {
threadpoolctl v3.4.0 threadpoolctl v3.4.0
----- stderr ----- ----- stderr -----
warning: `uv tree` is experimental and may change without warning. warning: `uv tree` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
"### "###
); );
@ -84,7 +84,7 @@ fn invert() -> Result<()> {
(*) Package tree already displayed (*) Package tree already displayed
----- stderr ----- ----- stderr -----
warning: `uv tree` is experimental and may change without warning. warning: `uv tree` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
"### "###
); );
@ -107,7 +107,7 @@ fn invert() -> Result<()> {
project v0.1.0 project v0.1.0
----- stderr ----- ----- stderr -----
warning: `uv tree` is experimental and may change without warning. warning: `uv tree` is experimental and may change without warning
Resolved 6 packages in [TIME] Resolved 6 packages in [TIME]
"### "###
); );
@ -141,7 +141,7 @@ fn frozen() -> Result<()> {
sniffio v1.3.1 sniffio v1.3.1
----- stderr ----- ----- stderr -----
warning: `uv tree` is experimental and may change without warning. warning: `uv tree` is experimental and may change without warning
Resolved 4 packages in [TIME] Resolved 4 packages in [TIME]
"### "###
); );
@ -174,7 +174,7 @@ fn frozen() -> Result<()> {
sniffio v1.3.1 sniffio v1.3.1
----- stderr ----- ----- stderr -----
warning: `uv tree` is experimental and may change without warning. warning: `uv tree` is experimental and may change without warning
"### "###
); );

View file

@ -553,7 +553,7 @@ fn virtualenv_compatibility() {
----- stdout ----- ----- stdout -----
----- stderr ----- ----- stderr -----
warning: virtualenv's `--clear` has no effect (uv always clears the virtual environment). warning: virtualenv's `--clear` has no effect (uv always clears the virtual environment)
Using Python 3.12.[X] interpreter at: [PYTHON-3.12] Using Python 3.12.[X] interpreter at: [PYTHON-3.12]
Creating virtualenv at: .venv Creating virtualenv at: .venv
Activate with: source .venv/bin/activate Activate with: source .venv/bin/activate