Add uv-workspace crate with settings discovery and deserialization (#3007)

## Summary

This PR adds basic struct definitions along with a "workspace" concept
for discovering settings. (The "workspace" terminology is used to match
Ruff; I did not invent it.)

A few notes:

- We discover any `pyproject.toml` or `uv.toml` file in any parent
directory of the current working directory. (We could adjust this to
look at the directories of the input files.)
- We don't actually do anything with the configuration yet; but those
PRs are large and I want this to be reviewed in isolation.
This commit is contained in:
Charlie Marsh 2024-04-16 13:56:47 -04:00 committed by GitHub
parent c0efeeddf6
commit 295b58ad37
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 433 additions and 20 deletions

View file

@ -7,6 +7,7 @@ use crate::Manifest;
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub enum ResolutionMode {
/// Resolve the highest compatible version of each package.
#[default]