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-pep508",
|
||||
"uv-pypi-types",
|
||||
"uv-warnings",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ uv-client = { workspace = true }
|
|||
uv-fs = { workspace = true }
|
||||
uv-normalize = { workspace = true }
|
||||
uv-configuration = { workspace = true }
|
||||
uv-warnings = { workspace = true }
|
||||
|
||||
fs-err = { workspace = true }
|
||||
regex = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -52,7 +52,6 @@ use uv_distribution_types::{UnresolvedRequirement, UnresolvedRequirementSpecific
|
|||
use uv_fs::Simplified;
|
||||
use uv_pep508::{expand_env_vars, Pep508Error, RequirementOrigin, VerbatimUrl};
|
||||
use uv_pypi_types::{Requirement, VerbatimParsedUrl};
|
||||
use uv_warnings::warn_user;
|
||||
|
||||
use crate::requirement::EditableError;
|
||||
pub use crate::requirement::RequirementsTxtRequirement;
|
||||
|
|
@ -219,16 +218,6 @@ impl RequirementsTxt {
|
|||
file: requirements_txt.to_path_buf(),
|
||||
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)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ use uv_pep508::{MarkerTree, UnnamedRequirement, UnnamedRequirementUrl};
|
|||
use uv_pypi_types::Requirement;
|
||||
use uv_pypi_types::VerbatimParsedUrl;
|
||||
use uv_requirements_txt::{RequirementsTxt, RequirementsTxtRequirement};
|
||||
use uv_warnings::warn_user;
|
||||
use uv_workspace::pyproject::PyProjectToml;
|
||||
|
||||
use crate::RequirementsSource;
|
||||
|
|
@ -113,6 +114,18 @@ impl RequirementsSpecification {
|
|||
}
|
||||
|
||||
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 {
|
||||
requirements: requirements_txt
|
||||
.requirements
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ fn missing_venv() -> Result<()> {
|
|||
# uv pip compile --cache-dir [CACHE_DIR] requirements.in
|
||||
|
||||
----- stderr -----
|
||||
warning: Requirements file requirements.in does not contain any dependencies
|
||||
warning: Requirements file `requirements.in` does not contain any dependencies
|
||||
Resolved in [TIME]
|
||||
"###
|
||||
);
|
||||
|
|
@ -142,6 +142,35 @@ fn missing_venv() -> Result<()> {
|
|||
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.
|
||||
#[test]
|
||||
fn compile_pyproject_toml() -> Result<()> {
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ fn empty_requirements_txt() -> Result<()> {
|
|||
----- stdout -----
|
||||
|
||||
----- stderr -----
|
||||
warning: Requirements file requirements.txt does not contain any dependencies
|
||||
warning: Requirements file `requirements.txt` does not contain any dependencies
|
||||
Audited in [TIME]
|
||||
"###
|
||||
);
|
||||
|
|
|
|||
|
|
@ -360,7 +360,7 @@ fn pip_sync_empty() -> Result<()> {
|
|||
----- stdout -----
|
||||
|
||||
----- 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)
|
||||
"###
|
||||
);
|
||||
|
|
@ -373,7 +373,7 @@ fn pip_sync_empty() -> Result<()> {
|
|||
----- stdout -----
|
||||
|
||||
----- stderr -----
|
||||
warning: Requirements file requirements.txt does not contain any dependencies
|
||||
warning: Requirements file `requirements.txt` does not contain any dependencies
|
||||
Resolved in [TIME]
|
||||
Audited in [TIME]
|
||||
"###
|
||||
|
|
@ -397,7 +397,7 @@ fn pip_sync_empty() -> Result<()> {
|
|||
----- stdout -----
|
||||
|
||||
----- stderr -----
|
||||
warning: Requirements file requirements.txt does not contain any dependencies
|
||||
warning: Requirements file `requirements.txt` does not contain any dependencies
|
||||
Resolved in [TIME]
|
||||
Uninstalled 1 package in [TIME]
|
||||
- iniconfig==2.0.0
|
||||
|
|
|
|||
|
|
@ -1751,7 +1751,7 @@ fn run_empty_requirements_txt() -> Result<()> {
|
|||
+ foo==1.0.0 (from file://[TEMP_DIR]/)
|
||||
+ idna==3.6
|
||||
+ 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
|
||||
|
|
@ -1763,7 +1763,7 @@ fn run_empty_requirements_txt() -> Result<()> {
|
|||
----- stderr -----
|
||||
Resolved 6 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(())
|
||||
|
|
|
|||
Loading…
Reference in New Issue