Support editable in pip-sync and pip-compile (#587)

Support `-e path/do/dir` in pip-sync and and pip-compile.
This commit is contained in:
konsti 2023-12-16 23:37:34 +01:00 committed by GitHub
parent f62458f600
commit f059c6e6a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
47 changed files with 1016 additions and 250 deletions

View file

@ -13,13 +13,13 @@ use tracing::{debug, instrument};
use distribution_types::{CachedDist, Metadata, Resolution};
use pep508_rs::Requirement;
use platform_tags::Tags;
use puffin_build::{BuildKind, SourceBuild, SourceBuildContext};
use puffin_build::{SourceBuild, SourceBuildContext};
use puffin_cache::Cache;
use puffin_client::RegistryClient;
use puffin_installer::{Downloader, InstallPlan, Installer, Reinstall};
use puffin_interpreter::{Interpreter, Virtualenv};
use puffin_resolver::{Manifest, ResolutionOptions, Resolver};
use puffin_traits::{BuildContext, OnceMap};
use puffin_traits::{BuildContext, BuildKind, OnceMap};
use pypi_types::IndexUrls;
/// The main implementation of [`BuildContext`], used by the CLI, see [`BuildContext`]
@ -131,7 +131,6 @@ impl BuildContext for BuildDispatch {
venv.root().display(),
);
let markers = self.interpreter.markers();
let tags = Tags::from_interpreter(&self.interpreter)?;
let InstallPlan {
@ -139,13 +138,14 @@ impl BuildContext for BuildDispatch {
remote,
reinstalls,
extraneous,
editables: _,
} = InstallPlan::from_requirements(
&resolution.requirements(),
&Reinstall::None,
&[],
&self.index_urls,
self.cache(),
venv,
markers,
&tags,
)?;
@ -212,12 +212,13 @@ impl BuildContext for BuildDispatch {
})
}
#[instrument(skip_all, fields(source_dist = source_dist, subdirectory = ?subdirectory))]
#[instrument(skip_all, fields(package_id = package_id, subdirectory = ?subdirectory))]
fn setup_build<'a>(
&'a self,
source: &'a Path,
subdirectory: Option<&'a Path>,
source_dist: &'a str,
package_id: &'a str,
build_kind: BuildKind,
) -> Pin<Box<dyn Future<Output = Result<SourceBuild>> + Send + 'a>> {
Box::pin(async move {
if self.no_build {
@ -229,8 +230,8 @@ impl BuildContext for BuildDispatch {
&self.interpreter,
self,
self.source_build_context.clone(),
source_dist.to_string(),
BuildKind::Wheel,
package_id.to_string(),
build_kind,
)
.await?;
Ok(builder)