mirror of https://github.com/astral-sh/uv
Don't warn when `--output-file` is empty (#9417)
## Summary Closes https://github.com/astral-sh/uv/issues/9410.
This commit is contained in:
parent
f0c4865d3f
commit
0158717ae6
|
|
@ -5396,7 +5396,6 @@ dependencies = [
|
||||||
"uv-normalize",
|
"uv-normalize",
|
||||||
"uv-pep508",
|
"uv-pep508",
|
||||||
"uv-pypi-types",
|
"uv-pypi-types",
|
||||||
"uv-warnings",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ uv-client = { workspace = true }
|
||||||
uv-fs = { workspace = true }
|
uv-fs = { workspace = true }
|
||||||
uv-normalize = { workspace = true }
|
uv-normalize = { workspace = true }
|
||||||
uv-configuration = { workspace = true }
|
uv-configuration = { workspace = true }
|
||||||
uv-warnings = { workspace = true }
|
|
||||||
|
|
||||||
fs-err = { workspace = true }
|
fs-err = { workspace = true }
|
||||||
regex = { workspace = true }
|
regex = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,6 @@ use uv_distribution_types::{UnresolvedRequirement, UnresolvedRequirementSpecific
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_pep508::{expand_env_vars, Pep508Error, RequirementOrigin, VerbatimUrl};
|
use uv_pep508::{expand_env_vars, Pep508Error, RequirementOrigin, VerbatimUrl};
|
||||||
use uv_pypi_types::{Requirement, VerbatimParsedUrl};
|
use uv_pypi_types::{Requirement, VerbatimParsedUrl};
|
||||||
use uv_warnings::warn_user;
|
|
||||||
|
|
||||||
use crate::requirement::EditableError;
|
use crate::requirement::EditableError;
|
||||||
pub use crate::requirement::RequirementsTxtRequirement;
|
pub use crate::requirement::RequirementsTxtRequirement;
|
||||||
|
|
@ -219,16 +218,6 @@ impl RequirementsTxt {
|
||||||
file: requirements_txt.to_path_buf(),
|
file: requirements_txt.to_path_buf(),
|
||||||
error: err,
|
error: err,
|
||||||
})?;
|
})?;
|
||||||
if data == Self::default() {
|
|
||||||
if requirements_txt == Path::new("-") {
|
|
||||||
warn_user!("No dependencies found in stdin");
|
|
||||||
} else {
|
|
||||||
warn_user!(
|
|
||||||
"Requirements file {} does not contain any dependencies",
|
|
||||||
requirements_txt.user_display()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(data)
|
Ok(data)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ use uv_pep508::{MarkerTree, UnnamedRequirement, UnnamedRequirementUrl};
|
||||||
use uv_pypi_types::Requirement;
|
use uv_pypi_types::Requirement;
|
||||||
use uv_pypi_types::VerbatimParsedUrl;
|
use uv_pypi_types::VerbatimParsedUrl;
|
||||||
use uv_requirements_txt::{RequirementsTxt, RequirementsTxtRequirement};
|
use uv_requirements_txt::{RequirementsTxt, RequirementsTxtRequirement};
|
||||||
|
use uv_warnings::warn_user;
|
||||||
use uv_workspace::pyproject::PyProjectToml;
|
use uv_workspace::pyproject::PyProjectToml;
|
||||||
|
|
||||||
use crate::RequirementsSource;
|
use crate::RequirementsSource;
|
||||||
|
|
@ -113,6 +114,18 @@ impl RequirementsSpecification {
|
||||||
}
|
}
|
||||||
|
|
||||||
let requirements_txt = RequirementsTxt::parse(path, &*CWD, client_builder).await?;
|
let requirements_txt = RequirementsTxt::parse(path, &*CWD, client_builder).await?;
|
||||||
|
|
||||||
|
if requirements_txt == RequirementsTxt::default() {
|
||||||
|
if path == Path::new("-") {
|
||||||
|
warn_user!("No dependencies found in stdin");
|
||||||
|
} else {
|
||||||
|
warn_user!(
|
||||||
|
"Requirements file `{}` does not contain any dependencies",
|
||||||
|
path.user_display()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
requirements: requirements_txt
|
requirements: requirements_txt
|
||||||
.requirements
|
.requirements
|
||||||
|
|
|
||||||
|
|
@ -132,7 +132,7 @@ fn missing_venv() -> Result<()> {
|
||||||
# uv pip compile --cache-dir [CACHE_DIR] requirements.in
|
# uv pip compile --cache-dir [CACHE_DIR] requirements.in
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: Requirements file requirements.in does not contain any dependencies
|
warning: Requirements file `requirements.in` does not contain any dependencies
|
||||||
Resolved in [TIME]
|
Resolved in [TIME]
|
||||||
"###
|
"###
|
||||||
);
|
);
|
||||||
|
|
@ -142,6 +142,35 @@ fn missing_venv() -> Result<()> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn empty_output() -> Result<()> {
|
||||||
|
let context = TestContext::new("3.12");
|
||||||
|
context
|
||||||
|
.temp_dir
|
||||||
|
.child("requirements.in")
|
||||||
|
.write_str("iniconfig==1.1.1")?;
|
||||||
|
context.temp_dir.child("requirements.txt").touch()?;
|
||||||
|
|
||||||
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
|
.arg("requirements.in")
|
||||||
|
.arg("--output-file")
|
||||||
|
.arg("requirements.txt"), @r###"
|
||||||
|
success: true
|
||||||
|
exit_code: 0
|
||||||
|
----- stdout -----
|
||||||
|
# This file was autogenerated by uv via the following command:
|
||||||
|
# uv pip compile --cache-dir [CACHE_DIR] requirements.in --output-file requirements.txt
|
||||||
|
iniconfig==1.1.1
|
||||||
|
# via -r requirements.in
|
||||||
|
|
||||||
|
----- stderr -----
|
||||||
|
Resolved 1 package in [TIME]
|
||||||
|
"###
|
||||||
|
);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
/// Resolve a specific version of `anyio` from a `pyproject.toml` file.
|
/// Resolve a specific version of `anyio` from a `pyproject.toml` file.
|
||||||
#[test]
|
#[test]
|
||||||
fn compile_pyproject_toml() -> Result<()> {
|
fn compile_pyproject_toml() -> Result<()> {
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ fn empty_requirements_txt() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: Requirements file requirements.txt does not contain any dependencies
|
warning: Requirements file `requirements.txt` does not contain any dependencies
|
||||||
Audited in [TIME]
|
Audited in [TIME]
|
||||||
"###
|
"###
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -360,7 +360,7 @@ fn pip_sync_empty() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: Requirements file requirements.txt does not contain any dependencies
|
warning: Requirements file `requirements.txt` does not contain any dependencies
|
||||||
No requirements found (hint: use `--allow-empty-requirements` to clear the environment)
|
No requirements found (hint: use `--allow-empty-requirements` to clear the environment)
|
||||||
"###
|
"###
|
||||||
);
|
);
|
||||||
|
|
@ -373,7 +373,7 @@ fn pip_sync_empty() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: Requirements file requirements.txt does not contain any dependencies
|
warning: Requirements file `requirements.txt` does not contain any dependencies
|
||||||
Resolved in [TIME]
|
Resolved in [TIME]
|
||||||
Audited in [TIME]
|
Audited in [TIME]
|
||||||
"###
|
"###
|
||||||
|
|
@ -397,7 +397,7 @@ fn pip_sync_empty() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: Requirements file requirements.txt does not contain any dependencies
|
warning: Requirements file `requirements.txt` does not contain any dependencies
|
||||||
Resolved in [TIME]
|
Resolved in [TIME]
|
||||||
Uninstalled 1 package in [TIME]
|
Uninstalled 1 package in [TIME]
|
||||||
- iniconfig==2.0.0
|
- iniconfig==2.0.0
|
||||||
|
|
|
||||||
|
|
@ -1751,7 +1751,7 @@ fn run_empty_requirements_txt() -> Result<()> {
|
||||||
+ foo==1.0.0 (from file://[TEMP_DIR]/)
|
+ foo==1.0.0 (from file://[TEMP_DIR]/)
|
||||||
+ idna==3.6
|
+ idna==3.6
|
||||||
+ sniffio==1.3.1
|
+ sniffio==1.3.1
|
||||||
warning: Requirements file requirements.txt does not contain any dependencies
|
warning: Requirements file `requirements.txt` does not contain any dependencies
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
// Then reused in subsequent invocations
|
// Then reused in subsequent invocations
|
||||||
|
|
@ -1763,7 +1763,7 @@ fn run_empty_requirements_txt() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 6 packages in [TIME]
|
Resolved 6 packages in [TIME]
|
||||||
Audited 4 packages in [TIME]
|
Audited 4 packages in [TIME]
|
||||||
warning: Requirements file requirements.txt does not contain any dependencies
|
warning: Requirements file `requirements.txt` does not contain any dependencies
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue