Repository: whittle-org/whittle (language: python)

Issue:
use `uv` for github actions workflows
use the [setup-uv](https://github.com/marketplace/actions/astral-sh-setup-uv) github action instead of `actions/setup-python` 


Discussion / hints:

Fix patch:
diff --git a/.github/workflows/run-examples.yml b/.github/workflows/run-examples.yml
index 60f5bbd..99e2951 100644
--- a/.github/workflows/run-examples.yml
+++ b/.github/workflows/run-examples.yml
@@ -13,22 +13,22 @@ jobs:
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        # Run in all these versions of Python
-        python-version: [ "3.11" ]
+        python-version: ["3.11"]
     steps:
       - uses: actions/checkout@v4
-      - name: Set up Python ${{ matrix.python-version }}
-        uses: actions/setup-python@v5
+      - name: install the latest version uv
+        uses: astral-sh/setup-uv@v3
         with:
-          python-version: ${{ matrix.python-version }}
-          cache: 'pip'
+          version: latest
+      - name: create virtual environment
+        run: uv venv --python ${{ matrix.python-version }}
       - name: Install
-        run: pip install .
+        run: uv pip install ".[dev]"
       - name: Run sine curves example
         run: |
-          python -m examples.sine_curves.sinc_nas
-          python -m examples.sine_curves.search
+          uv run python -m examples.sine_curves.sinc_nas
+          uv run python -m examples.sine_curves.search
       - name: Run fashion MNIST example
         run: |
-          python -m examples.fashion_mnist.train_fashion_mnist
-          python -m examples.fashion_mnist.search_fashion_mnist
\ No newline at end of file
+          uv run python -m examples.fashion_mnist.train_fashion_mnist
+          uv run python -m examples.fashion_mnist.search_fashion_mnist


Test patch:
diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml
index 6d1b86d..826d0fc 100644
--- a/.github/workflows/unit-test.yml
+++ b/.github/workflows/unit-test.yml
@@ -3,6 +3,7 @@ concurrency:
   group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
   cancel-in-progress: true
 on:
+  workflow_dispatch:
   push:
     branches: [ main ]
   pull_request:
@@ -12,16 +13,16 @@ jobs:
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        # Run in all these versions of Python
         python-version: ["3.9", "3.10", "3.11"]
     steps:
       - uses: actions/checkout@v4
-      - name: Set up Python ${{ matrix.python-version }}
-        uses: actions/setup-python@v5
+      - name: install the latest version uv
+        uses: astral-sh/setup-uv@v3
         with:
-          python-version: ${{ matrix.python-version }}
-          cache: 'pip'
+          version: latest
+      - name: create virtual environment
+        run: uv venv --python ${{ matrix.python-version }}
       - name: Install
-        run: pip install ".[dev]"
+        run: uv pip install ".[dev]"
       - name: Run pytest
-        run: pytest -vvv
\ No newline at end of file
+        run: uv run pytest -vvv
\ No newline at end of file