mirror of
				https://github.com/astral-sh/uv.git
				synced 2025-10-31 12:06:13 +00:00 
			
		
		
		
	 d8cea2fd49
			
		
	
	
		d8cea2fd49
		
			
		
	
	
	
	
		
			
			## Summary This PR adds `uv export` support for [PEP 751](https://peps.python.org/pep-0751). We don't yet expose a way to consume the generated lockfile, but it's a first step. The logic to go from `uv.lock` to "flat set of packages to include, with markers telling us when to include them" is all shared with the `requirements.txt` export (and extracted in https://github.com/astral-sh/uv/pull/12956). So most of the code is just converting from our internal types to the PEP 751 schema.
		
			
				
	
	
		
			18 lines
		
	
	
	
		
			754 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
	
		
			754 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| /// The format to use when exporting a `uv.lock` file.
 | |
| #[derive(Debug, Default, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
 | |
| #[serde(deny_unknown_fields, rename_all = "kebab-case")]
 | |
| #[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
 | |
| pub enum ExportFormat {
 | |
|     /// Export in `requirements.txt` format.
 | |
|     #[default]
 | |
|     #[serde(rename = "requirements.txt", alias = "requirements-txt")]
 | |
|     #[cfg_attr(
 | |
|         feature = "clap",
 | |
|         clap(name = "requirements.txt", alias = "requirements-txt")
 | |
|     )]
 | |
|     RequirementsTxt,
 | |
|     /// Export in `pylock.toml` format.
 | |
|     #[serde(rename = "pylock.toml", alias = "pylock-toml")]
 | |
|     #[cfg_attr(feature = "clap", clap(name = "pylock.toml", alias = "pylock-toml"))]
 | |
|     PylockToml,
 | |
| }
 |