uv/crates
bluss e46c24d3cf
Implement uv run --directory (#5566)
## Summary

uv run --directory <path> means that one doesn't have to change to a
project's directory to run programs from it. It makes it possible to use
projects as if they are tool installations.

To support this, first the code reading .python-version was updated so
that
it can read such markers outside the current directory. Note the minor
change this causes (if I'm right), described in the commit.

## Test Plan

One test has been added.

## --directory

Not sure what the name of the argument should be, but it's following uv
sync's directory for now.

Other alternatives could be "--project". Uv run and uv tool run should
probably find common agreement on this (relevant for project-locked
tools).

I've implemented this same change in Rye, some time ago, and then we
went
with --pyproject `<`path to pyproject.toml file`>`. I think using
pyproject.toml file path and not directory was probably a mistake, an
overgeneralization one doesn't need.
2024-07-29 15:53:10 -04:00
..
bench Upgrade to Rust 1.80.0 (#5472) 2024-07-27 01:49:47 +00:00
cache-key Use hasher to compute resolution hash (#5495) 2024-07-26 23:24:09 +00:00
distribution-filename Match wheel tags against Requires-Python major-minor (#5289) 2024-07-22 14:33:53 +00:00
distribution-types Warn, but don't error, when encountering tilde .dist-info directories (#5520) 2024-07-28 19:13:06 +00:00
install-wheel-rs feat(venv): add relocatable flag (#5515) 2024-07-29 00:10:11 +00:00
once-map Use lockfile to prefill resolver index (#4495) 2024-07-12 18:49:28 -04:00
pep440-rs Extend Ruff configuration to sort imports (#5528) 2024-07-28 21:49:28 +00:00
pep508-rs Remove some unused methods (#5512) 2024-07-28 17:20:12 +00:00
platform-tags Process completed Python installs and uninstalls as a stream (#5203) 2024-07-19 12:50:38 +00:00
pypi-types Use existing METADATA parser in wheel installer (#5508) 2024-07-27 14:38:16 -04:00
requirements-txt Rename Error::IO to Error::Io (#5174) 2024-07-18 04:13:45 +00:00
uv Implement uv run --directory (#5566) 2024-07-29 15:53:10 -04:00
uv-auth Upgrade to Rust 1.80.0 (#5472) 2024-07-27 01:49:47 +00:00
uv-build feat(venv): add relocatable flag (#5515) 2024-07-29 00:10:11 +00:00
uv-cache Ban --no-cache with --link-mode=symlink (#5519) 2024-07-28 15:01:17 -04:00
uv-cli Implement uv run --directory (#5566) 2024-07-29 15:53:10 -04:00
uv-client Retry on incomplete body (#5555) 2024-07-29 15:53:23 +02:00
uv-configuration Make --reinstall imply --refresh (#5425) 2024-07-25 09:45:58 -04:00
uv-dev Move workspace abstractions to uv-workspace crate (#5236) 2024-07-20 02:15:32 +00:00
uv-dispatch Ban --no-cache with --link-mode=symlink (#5519) 2024-07-28 15:01:17 -04:00
uv-distribution Generate hashes for --find-links entries (#5544) 2024-07-29 08:49:38 +00:00
uv-extract Skip copying to empty entries in seekable zip (#5571) 2024-07-29 19:00:19 +00:00
uv-fs Upgrade to Rust 1.80.0 (#5472) 2024-07-27 01:49:47 +00:00
uv-git Remove some unused methods (#5512) 2024-07-28 17:20:12 +00:00
uv-installer Retain editable designation for cached wheel installs (#5545) 2024-07-28 22:39:48 -04:00
uv-macros Autogenerate possible values for enums in reference documentation (#5137) 2024-07-17 12:37:33 -04:00
uv-normalize Use hasher to compute resolution hash (#5495) 2024-07-26 23:24:09 +00:00
uv-options-metadata Autogenerate possible values for enums in reference documentation (#5137) 2024-07-17 12:37:33 -04:00
uv-python Implement uv run --directory (#5566) 2024-07-29 15:53:10 -04:00
uv-requirements Add support for requirements files in uv run (#4973) 2024-07-23 12:51:09 -04:00
uv-resolver Generate hashes for --find-links entries (#5544) 2024-07-29 08:49:38 +00:00
uv-scripts Upgrade to Rust 1.80.0 (#5472) 2024-07-27 01:49:47 +00:00
uv-settings Make --reinstall imply --refresh (#5425) 2024-07-25 09:45:58 -04:00
uv-shell Add Windows path updates for uv tool (#5029) 2024-07-13 01:55:05 +00:00
uv-state Cache tool environments in uv tool run (#4784) 2024-07-03 19:25:39 -04:00
uv-tool feat(venv): add relocatable flag (#5515) 2024-07-29 00:10:11 +00:00
uv-trampoline Upgrade to Rust 1.80.0 (#5472) 2024-07-27 01:49:47 +00:00
uv-types Enforce hashes in lockfile install (#5170) 2024-07-17 23:10:37 +00:00
uv-version Bump version to v0.2.31 (#5568) 2024-07-29 14:06:20 -04:00
uv-virtualenv feat(venv): add relocatable flag (#5515) 2024-07-29 00:10:11 +00:00
uv-warnings Upgrade to Rust 1.80.0 (#5472) 2024-07-27 01:49:47 +00:00
uv-workspace Compare simplified paths in Windows exclusion tests (#5525) 2024-07-28 17:26:46 -04:00
README.md Move workspace abstractions to uv-workspace crate (#5236) 2024-07-20 02:15:32 +00:00

Crates

bench

Functionality for benchmarking uv.

cache-key

Generic functionality for caching paths, URLs, and other resources across platforms.

distribution-filename

Parse built distribution (wheel) and source distribution (sdist) filenames to extract structured metadata.

distribution-types

Abstractions for representing built distributions (wheels) and source distributions (sdists), and the sources from which they can be downloaded.

install-wheel-rs

Install built distributions (wheels) into a virtual environment.]

once-map

A waitmap-like concurrent hash map for executing tasks exactly once.

pep440-rs

Utilities for interacting with Python version numbers and specifiers.

pep508-rs

Utilities for interacting with PEP 508 dependency specifiers.

platform-host

Functionality for detecting the current platform (operating system, architecture, etc.).

platform-tags

Functionality for parsing and inferring Python platform tags as per PEP 425.

uv

Command-line interface for the uv package manager.

uv-build

A PEP 517-compatible build frontend for uv.

uv-cache

Functionality for caching Python packages and associated metadata.

uv-client

Client for interacting with PyPI-compatible HTTP APIs.

uv-dev

Development utilities for uv.

uv-dispatch

A centralized struct for resolving and building source distributions in isolated environments. Implements the traits defined in uv-types.

uv-distribution

Client for interacting with built distributions (wheels) and source distributions (sdists). Capable of fetching metadata, distribution contents, etc.

uv-extract

Utilities for extracting files from archives.

uv-fs

Utilities for interacting with the filesystem.

uv-git

Functionality for interacting with Git repositories.

uv-installer

Functionality for installing Python packages into a virtual environment.

uv-python

Functionality for detecting and leveraging the current Python interpreter.

uv-normalize

Normalize package and extra names as per Python specifications.

uv-package

Types and functionality for working with Python packages, e.g., parsing wheel files.

uv-requirements

Utilities for reading package requirements from pyproject.toml and requirements.txt files.

uv-resolver

Functionality for resolving Python packages and their dependencies.

uv-shell

Utilities for detecting and manipulating shell environments.

uv-types

Shared traits for uv, to avoid circular dependencies.

pypi-types

General-purpose type definitions for types used in PyPI-compatible APIs.

uv-virtualenv

A venv replacement to create virtual environments in Rust.

uv-warnings

User-facing warnings for uv.

uv-workspace

Workspace abstractions for uv.

requirements-txt

Functionality for parsing requirements.txt files.