Skip to content

An example "getting started" python project based on `uv`

License

Notifications You must be signed in to change notification settings

gdamjan/uv-getting-started

Repository files navigation

An example getting started python project based on uv

uv - An extremely fast Python package and project manager, written in Rust

  • uses pyproject.toml (and uv.lock)
  • follows the src/ directory layout
  • example production optimized Dockerfile
  • github actions ci
  • depends on: httpx, granian and polars, just as an example

Quickstart:

uv sync
uv run granian --interface asginl demo.web:app

Running dev tools:

uv run pyright
uv run ruff format
uv run ruff check

Build container image:

podman build -t uv-demo .
podman run -it --rm -p 8000:8000 uv-demo

Note

Use Podman or Docker - it's the same, podman is rootless on Linux

Running scripts

These scripts will be executed in the context (venv, python) of the project, good for development helper scripts:

uv run scripts/h.py
uv run scripts/p.py
uv run scripts/example.py 1 2 3 hello world 4 5

PEP 723

uv can also run scripts that have the pep-0723 based metadata, like dependencies. There's no need to setup venvs or dependencies in a pyproject.toml file, uv automagically creats an ad-hoc venv for the script.

See:

uv run scripts/pep723.py

About

An example "getting started" python project based on `uv`

Topics

Resources

License

Stars

Watchers

Forks

Packages