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.
19 lines
754 B
Rust
19 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,
|
|
}
|