mirror of https://github.com/astral-sh/uv
parent
f7976ce5cc
commit
8d247fe95b
|
|
@ -2208,6 +2208,7 @@ dependencies = [
|
|||
"anyhow",
|
||||
"fxhash",
|
||||
"platform-host",
|
||||
"puffin-interpreter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ workspace = true
|
|||
|
||||
[dependencies]
|
||||
platform-host = { path = "../platform-host" }
|
||||
puffin-interpreter = { path = "../puffin-interpreter" }
|
||||
|
||||
anyhow = { workspace = true }
|
||||
fxhash = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ use anyhow::{Error, Result};
|
|||
use fxhash::FxHashMap;
|
||||
|
||||
use platform_host::{Arch, Os, Platform, PlatformError};
|
||||
use puffin_interpreter::Interpreter;
|
||||
|
||||
/// A set of compatible tags for a given Python version and platform.
|
||||
///
|
||||
|
|
@ -33,6 +34,10 @@ impl Tags {
|
|||
Self { map }
|
||||
}
|
||||
|
||||
pub fn from_interpreter(interpreter: &Interpreter) -> Result<Self, PlatformError> {
|
||||
Self::from_env(interpreter.platform(), interpreter.simple_version())
|
||||
}
|
||||
|
||||
/// Returns the compatible tags for the given Python version and platform.
|
||||
pub fn from_env(platform: &Platform, python_version: (u8, u8)) -> Result<Self, PlatformError> {
|
||||
let platform_tags = compatible_tags(platform)?;
|
||||
|
|
|
|||
|
|
@ -121,10 +121,7 @@ pub(crate) async fn pip_compile(
|
|||
);
|
||||
|
||||
// Determine the compatible platform tags.
|
||||
let tags = Tags::from_env(
|
||||
venv.interpreter().platform(),
|
||||
venv.interpreter().simple_version(),
|
||||
)?;
|
||||
let tags = Tags::from_interpreter(venv.interpreter())?;
|
||||
|
||||
// Determine the markers to use for resolution.
|
||||
let markers = python_version.map_or_else(
|
||||
|
|
|
|||
|
|
@ -104,10 +104,7 @@ pub(crate) async fn sync_requirements(
|
|||
}
|
||||
|
||||
// Determine the current environment markers.
|
||||
let tags = Tags::from_env(
|
||||
venv.interpreter().platform(),
|
||||
venv.interpreter().simple_version(),
|
||||
)?;
|
||||
let tags = Tags::from_interpreter(venv.interpreter())?;
|
||||
|
||||
// Instantiate a client.
|
||||
let client = {
|
||||
|
|
|
|||
|
|
@ -56,10 +56,7 @@ pub(crate) async fn resolve_cli(args: ResolveCliArgs) -> Result<()> {
|
|||
);
|
||||
|
||||
// Copied from `BuildDispatch`
|
||||
let tags = Tags::from_env(
|
||||
venv.interpreter().platform(),
|
||||
venv.interpreter().simple_version(),
|
||||
)?;
|
||||
let tags = Tags::from_interpreter(venv.interpreter())?;
|
||||
let resolver = Resolver::new(
|
||||
Manifest::new(
|
||||
args.requirements.clone(),
|
||||
|
|
|
|||
|
|
@ -82,10 +82,7 @@ impl BuildContext for BuildDispatch {
|
|||
requirements: &'a [Requirement],
|
||||
) -> Pin<Box<dyn Future<Output = Result<Vec<Requirement>>> + Send + 'a>> {
|
||||
Box::pin(async {
|
||||
let tags = Tags::from_env(
|
||||
self.interpreter.platform(),
|
||||
self.interpreter.simple_version(),
|
||||
)?;
|
||||
let tags = Tags::from_interpreter(&self.interpreter)?;
|
||||
let resolver = Resolver::new(
|
||||
Manifest::new(requirements.to_vec(), Vec::default(), Vec::default(), None),
|
||||
self.options,
|
||||
|
|
@ -123,10 +120,7 @@ impl BuildContext for BuildDispatch {
|
|||
extraneous,
|
||||
} = InstallPlan::try_from_requirements(requirements, &self.cache, venv)?;
|
||||
|
||||
let tags = Tags::from_env(
|
||||
self.interpreter.platform(),
|
||||
self.interpreter.simple_version(),
|
||||
)?;
|
||||
let tags = Tags::from_interpreter(&self.interpreter)?;
|
||||
|
||||
// Resolve the dependencies.
|
||||
let remote = if remote.is_empty() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue