uv/crates/gourgeist
Charlie Marsh c9ffe976f9
Centralize virtualenv path construction (#2102)
## Summary

Right now, we have virtualenv construction encoded in a few different
places. Namely, it happens in both `gourgeist` and
`virtualenv_layout.rs` -- _and_ `interpreter.rs` also encodes some
knowledge about how they work, by way of reconstructing the
`SysconfigPaths`.

Instead, `gourgeist` now returns the complete layout, enumerating all
the directories it created. So, rather than returning a root directory,
and re-creating all those paths in `uv-interpreter`, we pass the data
directly back to it.
2024-03-01 15:52:48 +00:00
..
src Centralize virtualenv path construction (#2102) 2024-03-01 15:52:48 +00:00
static Copy over `gourgeist` crate (#61) 2023-10-08 14:37:09 -04:00
Cargo.toml Normalize `VIRTUAL_ENV` path in activation scripts (#1817) 2024-02-21 15:52:32 +00:00
README.md Enable release builds via `cargo-dist` (#79) 2023-10-09 20:48:55 +00:00
benchmark.sh Gourgeist updates (#862) 2024-01-09 23:04:15 +00:00
compare_in_git.sh Copy over `gourgeist` crate (#61) 2023-10-08 14:37:09 -04:00
imasnake.py Copy over `gourgeist` crate (#61) 2023-10-08 14:37:09 -04:00
oranda.json Copy over `gourgeist` crate (#61) 2023-10-08 14:37:09 -04:00
venv_checker.py Unify python interpreter abstractions (#178) 2023-10-25 20:11:36 +00:00

README.md

Gourgeist

Gourgeist is a rust library to create python virtual environments. It also has a CLI.

It currently supports only unix (linux/mac), windows support is missing.

Rust

use camino::Utf8PathBuf;
use gourgeist::{create_venv, get_interpreter_info, parse_python_cli};

let location = cli.path.unwrap_or(Utf8PathBuf::from(".venv"));
let python = parse_python_cli(cli.python)?;
let data = get_interpreter_info(&python)?;
create_venv(&location, &python, &data, cli.bare)?;

CLI

Use python as base for a virtualenv .venv:

gourgeist

Or use custom defaults:

gourgeist -p 3.11 my_env

Jessie's gourgeist

Jessie's gourgeist, a pokemon with a jack o'lantern as body