Added support for the uv package and project manager #408
+74
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR integrates uv — a fast Python package and project manager written in Rust by the team that made the ruff linter — as an environment manager. Updates made to the Makefile and CLI to support this.
Key Changes
make create_environment
- Added a target to creates a virtual environment with uv and installs the requested python version using uvmake requirements
simply installs dependencies withuv pip install -r requirements.txt
which is faster than normal pip. This does not generate a lockfile and the dependencies will be removed ifuv sync
is run. (see below for more info)Testing
uv
added as an additional environment manager intest_creation.py
and a harness was added in similar style to the other environment managers. Tests passing locally.Recommendations
pyproject.toml
only. This allows for using the higher-level and convenientuv sync
oruv add
commands which generate a lockfile. This is also becoming more standard.uv add -r requirements.txt
after removing-e .
from the file will add the dependencies topyproject.toml
and generate the lockfile. This might be a better implementation formake requirements