mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-04 02:48:17 +00:00
Allow comments in .python-version[s]
(#5350)
## Summary Do the same thing as https://github.com/astral-sh/rye/pull/1038.
This commit is contained in:
parent
6fe9bd8a80
commit
96b24345eb
2 changed files with 60 additions and 4 deletions
|
@ -56,7 +56,17 @@ async fn read_versions_file() -> Result<Option<Vec<String>>, std::io::Error> {
|
||||||
match fs::tokio::read_to_string(PYTHON_VERSIONS_FILENAME).await {
|
match fs::tokio::read_to_string(PYTHON_VERSIONS_FILENAME).await {
|
||||||
Ok(content) => {
|
Ok(content) => {
|
||||||
debug!("Reading requests from `{PYTHON_VERSIONS_FILENAME}`");
|
debug!("Reading requests from `{PYTHON_VERSIONS_FILENAME}`");
|
||||||
Ok(Some(content.lines().map(ToString::to_string).collect()))
|
Ok(Some(
|
||||||
|
content
|
||||||
|
.lines()
|
||||||
|
.filter(|line| {
|
||||||
|
// Skip comments and empty lines.
|
||||||
|
let trimmed = line.trim();
|
||||||
|
!(trimmed.is_empty() || trimmed.starts_with('#'))
|
||||||
|
})
|
||||||
|
.map(ToString::to_string)
|
||||||
|
.collect(),
|
||||||
|
))
|
||||||
}
|
}
|
||||||
Err(err) if err.kind() == std::io::ErrorKind::NotFound => Ok(None),
|
Err(err) if err.kind() == std::io::ErrorKind::NotFound => Ok(None),
|
||||||
Err(err) => Err(err),
|
Err(err) => Err(err),
|
||||||
|
@ -67,7 +77,14 @@ async fn read_version_file() -> Result<Option<String>, std::io::Error> {
|
||||||
match fs::tokio::read_to_string(PYTHON_VERSION_FILENAME).await {
|
match fs::tokio::read_to_string(PYTHON_VERSION_FILENAME).await {
|
||||||
Ok(content) => {
|
Ok(content) => {
|
||||||
debug!("Reading requests from `{PYTHON_VERSION_FILENAME}`");
|
debug!("Reading requests from `{PYTHON_VERSION_FILENAME}`");
|
||||||
Ok(content.lines().next().map(ToString::to_string))
|
Ok(content
|
||||||
|
.lines()
|
||||||
|
.find(|line| {
|
||||||
|
// Skip comments and empty lines.
|
||||||
|
let trimmed = line.trim();
|
||||||
|
!(trimmed.is_empty() || trimmed.starts_with('#'))
|
||||||
|
})
|
||||||
|
.map(ToString::to_string))
|
||||||
}
|
}
|
||||||
Err(err) if err.kind() == std::io::ErrorKind::NotFound => Ok(None),
|
Err(err) if err.kind() == std::io::ErrorKind::NotFound => Ok(None),
|
||||||
Err(err) => Err(err),
|
Err(err) => Err(err),
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
#![cfg(all(feature = "python", feature = "pypi"))]
|
#![cfg(all(feature = "python", feature = "pypi"))]
|
||||||
|
|
||||||
use assert_fs::fixture::{FileWriteStr as _, PathChild as _};
|
use anyhow::Result;
|
||||||
|
use assert_fs::fixture::{FileWriteStr, PathChild};
|
||||||
use common::{uv_snapshot, TestContext};
|
use common::{uv_snapshot, TestContext};
|
||||||
use insta::assert_snapshot;
|
use insta::assert_snapshot;
|
||||||
use uv_python::{
|
use uv_python::{
|
||||||
platform::{Arch, Os},
|
platform::{Arch, Os},
|
||||||
PYTHON_VERSION_FILENAME,
|
PYTHON_VERSIONS_FILENAME, PYTHON_VERSION_FILENAME,
|
||||||
};
|
};
|
||||||
|
|
||||||
mod common;
|
mod common;
|
||||||
|
@ -629,3 +630,41 @@ fn python_pin_resolve() {
|
||||||
"###);
|
"###);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn python_pin_with_comments() -> Result<()> {
|
||||||
|
let context = TestContext::new_with_versions(&[]);
|
||||||
|
|
||||||
|
let content = indoc::indoc! {r"
|
||||||
|
3.12
|
||||||
|
|
||||||
|
# 3.11
|
||||||
|
3.10
|
||||||
|
"};
|
||||||
|
|
||||||
|
let version_file = context.temp_dir.child(PYTHON_VERSION_FILENAME);
|
||||||
|
version_file.write_str(content)?;
|
||||||
|
uv_snapshot!(context.filters(), context.python_pin(), @r###"
|
||||||
|
success: true
|
||||||
|
exit_code: 0
|
||||||
|
----- stdout -----
|
||||||
|
3.12
|
||||||
|
|
||||||
|
----- stderr -----
|
||||||
|
"###);
|
||||||
|
fs_err::remove_file(version_file)?;
|
||||||
|
|
||||||
|
let versions_file = context.temp_dir.child(PYTHON_VERSIONS_FILENAME);
|
||||||
|
versions_file.write_str(content)?;
|
||||||
|
uv_snapshot!(context.filters(), context.python_pin(), @r###"
|
||||||
|
success: true
|
||||||
|
exit_code: 0
|
||||||
|
----- stdout -----
|
||||||
|
3.12
|
||||||
|
3.10
|
||||||
|
|
||||||
|
----- stderr -----
|
||||||
|
"###);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue