mirror of
				https://github.com/astral-sh/uv.git
				synced 2025-10-31 03:55:33 +00:00 
			
		
		
		
	Allow prereleases, locals, and URLs in non-editable path requirements (#2671)
## Summary This PR enables the resolver to "accept" URLs, prereleases, and local version specifiers for direct dependencies of path dependencies. As a result, `uv pip install .` and `uv pip install -e .` now behave identically, in that neither has a restriction on URL dependencies and the like. Closes https://github.com/astral-sh/uv/issues/2643. Closes https://github.com/astral-sh/uv/issues/1853.
This commit is contained in:
		
							parent
							
								
									4b69ad4281
								
							
						
					
					
						commit
						cf30932831
					
				
					 17 changed files with 484 additions and 77 deletions
				
			
		|  | @ -66,6 +66,11 @@ impl PreReleaseStrategy { | |||
|                     .chain(manifest.constraints.iter()) | ||||
|                     .chain(manifest.overrides.iter()) | ||||
|                     .filter(|requirement| requirement.evaluate_markers(markers, &[])) | ||||
|                     .chain(manifest.lookaheads.iter().flat_map(|lookahead| { | ||||
|                         lookahead.requirements().iter().filter(|requirement| { | ||||
|                             requirement.evaluate_markers(markers, lookahead.extras()) | ||||
|                         }) | ||||
|                     })) | ||||
|                     .chain(manifest.editables.iter().flat_map(|(editable, metadata)| { | ||||
|                         metadata.requires_dist.iter().filter(|requirement| { | ||||
|                             requirement.evaluate_markers(markers, &editable.extras) | ||||
|  | @ -95,6 +100,11 @@ impl PreReleaseStrategy { | |||
|                     .chain(manifest.constraints.iter()) | ||||
|                     .chain(manifest.overrides.iter()) | ||||
|                     .filter(|requirement| requirement.evaluate_markers(markers, &[])) | ||||
|                     .chain(manifest.lookaheads.iter().flat_map(|lookahead| { | ||||
|                         lookahead.requirements().iter().filter(|requirement| { | ||||
|                             requirement.evaluate_markers(markers, lookahead.extras()) | ||||
|                         }) | ||||
|                     })) | ||||
|                     .chain(manifest.editables.iter().flat_map(|(editable, metadata)| { | ||||
|                         metadata.requires_dist.iter().filter(|requirement| { | ||||
|                             requirement.evaluate_markers(markers, &editable.extras) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Charlie Marsh
						Charlie Marsh