Migrate to uv (#52)

* uvx migrate-to-uv

* uv migration

* Fix hatch build

* Fixup

* uv run

* Add tab completion to devcontainer uv

Co-authored-by: Simon Emms <simon@simonemms.com>

* Revert "Add tab completion to devcontainer uv"

This reverts commit a3b7bdd84b.

---------

Co-authored-by: Simon Emms <simon@simonemms.com>
This commit is contained in:
Dan Davison
2025-07-30 13:37:42 -04:00
committed by GitHub
parent 4ed4efbe83
commit 68ac9c40eb
14 changed files with 2518 additions and 3309 deletions

View File

@@ -4,17 +4,19 @@ WORKDIR /app
# Install system dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends gcc build-essential && \
apt-get install -y --no-install-recommends gcc build-essential curl && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Copy requirements first for better caching
RUN pip install --no-cache-dir poetry
# Install uv
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
ENV PATH="$PATH:/root/.local/bin"
# Install Python dependencies without creating a virtualenv
COPY pyproject.toml poetry.lock ./
RUN poetry config virtualenvs.create false \
&& poetry install --without dev --no-interaction --no-ansi --no-root
# Copy dependency files and README (needed for package build)
COPY pyproject.toml uv.lock README.md ./
# Install dependencies and create virtual environment
RUN uv sync --frozen
# Copy application code
COPY . .
@@ -27,4 +29,4 @@ ENV PYTHONPATH=/app
EXPOSE 8000
# Default to running only the API server; worker and train-api are separate Compose services
CMD ["uvicorn", "api.main:app", "--host", "0.0.0.0", "--port", "8000"]
CMD ["uv", "run", "uvicorn", "api.main:app", "--host", "0.0.0.0", "--port", "8000"]