Add uv (Astral Python package manager) support

- Add uv package manager implementation following pip pattern
- Configure MITM proxy with CA bundle for PyPI packages
- Add shell integration (bash/zsh/fish/PowerShell)
- Conditional on --include-python flag
- Add 33 comprehensive E2E tests covering:
  - uv pip install/sync/compile commands
  - uv add for project dependencies
  - uv tool install for global tools
  - uv run --with for ephemeral dependencies
  - uv sync for project syncing
  - Malware blocking verification for all methods
- Update documentation and package.json
- Install uv in Docker test environment
This commit is contained in:
Reinier Criel 2025-11-25 14:10:20 -08:00
parent 5b6fe659c2
commit cab3a0aba3
14 changed files with 739 additions and 9 deletions

View file

@ -10,6 +10,9 @@ import {
} from "./pnpm/createPackageManager.js";
import { createYarnPackageManager } from "./yarn/createPackageManager.js";
import { createPipPackageManager } from "./pip/createPackageManager.js";
import { createUvPackageManager } from "./uv/createUvPackageManager.js";
import { PIP_PACKAGE_MANAGER } from "./pip/pipSettings.js";
import { UV_PACKAGE_MANAGER } from "./uv/uvSettings.js";
/**
* @type {{packageManagerName: PackageManager | null}}
@ -52,8 +55,10 @@ export function initializePackageManager(packageManagerName) {
state.packageManagerName = createBunPackageManager();
} else if (packageManagerName === "bunx") {
state.packageManagerName = createBunxPackageManager();
} else if (packageManagerName === "pip") {
} else if (packageManagerName === PIP_PACKAGE_MANAGER) {
state.packageManagerName = createPipPackageManager();
} else if (packageManagerName === UV_PACKAGE_MANAGER) {
state.packageManagerName = createUvPackageManager();
} else {
throw new Error("Unsupported package manager: " + packageManagerName);
}