mirror of
https://github.com/rasbt/LLMs-from-scratch.git
synced 2026-04-10 12:33:42 +00:00
Uv workflow improvements (#531)
* Uv workflow improvements * Uv workflow improvements * linter improvements * pytproject.toml fixes * pytproject.toml fixes * pytproject.toml fixes * pytproject.toml fixes * pytproject.toml fixes * pytproject.toml fixes * windows fixes * windows fixes * windows fixes * windows fixes * windows fixes * windows fixes * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix * win32 fix
This commit is contained in:
committed by
GitHub
parent
29353c74d8
commit
a08d7aaa84
27
.github/workflows/basic-tests-linux.yml
vendored
27
.github/workflows/basic-tests-linux.yml
vendored
@@ -32,27 +32,24 @@ jobs:
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install uv
|
||||
uv venv --python=python3.10
|
||||
source .venv/bin/activate
|
||||
uv pip install pytest nbval
|
||||
if [ -f requirements.txt ]; then uv pip install -r requirements.txt; fi
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
uv python install 3.10
|
||||
uv add . --dev
|
||||
uv pip install -r ch05/07_gpt_to_llama/tests/test-requirements-extra.txt
|
||||
uv pip install pytest
|
||||
uv add pytest-ruff nbval
|
||||
|
||||
- name: Test Selected Python Scripts
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
pytest setup/02_installing-python-libraries/tests.py
|
||||
pytest ch04/01_main-chapter-code/tests.py
|
||||
pytest ch05/01_main-chapter-code/tests.py
|
||||
pytest ch05/07_gpt_to_llama/tests/tests.py
|
||||
pytest ch06/01_main-chapter-code/tests.py
|
||||
pytest --ruff setup/02_installing-python-libraries/tests.py
|
||||
pytest --ruff ch04/01_main-chapter-code/tests.py
|
||||
pytest --ruff ch05/01_main-chapter-code/tests.py
|
||||
pytest --ruff ch05/07_gpt_to_llama/tests/tests.py
|
||||
pytest --ruff ch06/01_main-chapter-code/tests.py
|
||||
|
||||
- name: Validate Selected Jupyter Notebooks
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
pytest --nbval ch02/01_main-chapter-code/dataloader.ipynb
|
||||
pytest --nbval ch03/01_main-chapter-code/multihead-attention.ipynb
|
||||
pytest --nbval ch02/04_bonus_dataloader-intuition/dataloader-intuition.ipynb
|
||||
pytest --ruff --nbval ch02/01_main-chapter-code/dataloader.ipynb
|
||||
pytest --ruff --nbval ch03/01_main-chapter-code/multihead-attention.ipynb
|
||||
pytest --ruff --nbval ch02/04_bonus_dataloader-intuition/dataloader-intuition.ipynb
|
||||
|
||||
27
.github/workflows/basic-tests-macos.yml
vendored
27
.github/workflows/basic-tests-macos.yml
vendored
@@ -32,27 +32,24 @@ jobs:
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install uv
|
||||
uv venv --python=python3.10
|
||||
source .venv/bin/activate
|
||||
uv pip install pytest nbval
|
||||
if [ -f requirements.txt ]; then uv pip install -r requirements.txt; fi
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
uv python install 3.10
|
||||
uv add . --dev
|
||||
uv pip install -r ch05/07_gpt_to_llama/tests/test-requirements-extra.txt
|
||||
uv pip install pytest
|
||||
uv add pytest-ruff nbval
|
||||
|
||||
- name: Test Selected Python Scripts
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
pytest setup/02_installing-python-libraries/tests.py
|
||||
pytest ch04/01_main-chapter-code/tests.py
|
||||
pytest ch05/01_main-chapter-code/tests.py
|
||||
pytest ch05/07_gpt_to_llama/tests/tests.py
|
||||
pytest ch06/01_main-chapter-code/tests.py
|
||||
pytest --ruff setup/02_installing-python-libraries/tests.py
|
||||
pytest --ruff ch04/01_main-chapter-code/tests.py
|
||||
pytest --ruff ch05/01_main-chapter-code/tests.py
|
||||
pytest --ruff ch05/07_gpt_to_llama/tests/tests.py
|
||||
pytest --ruff ch06/01_main-chapter-code/tests.py
|
||||
|
||||
- name: Validate Selected Jupyter Notebooks
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
pytest --nbval ch02/01_main-chapter-code/dataloader.ipynb
|
||||
pytest --nbval ch03/01_main-chapter-code/multihead-attention.ipynb
|
||||
pytest --nbval ch02/04_bonus_dataloader-intuition/dataloader-intuition.ipynb
|
||||
pytest --ruff --nbval ch02/01_main-chapter-code/dataloader.ipynb
|
||||
pytest --ruff --nbval ch03/01_main-chapter-code/multihead-attention.ipynb
|
||||
pytest --ruff --nbval ch02/04_bonus_dataloader-intuition/dataloader-intuition.ipynb
|
||||
|
||||
29
.github/workflows/basic-tests-old-pytorch.yml
vendored
29
.github/workflows/basic-tests-old-pytorch.yml
vendored
@@ -35,28 +35,25 @@ jobs:
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip setuptools wheel
|
||||
pip install uv
|
||||
uv venv --python=python3.10
|
||||
source .venv/bin/activate
|
||||
uv pip install pytest nbval
|
||||
uv pip install torch==${{ matrix.pytorch-version }}
|
||||
uv pip install -r requirements.txt
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
uv python install 3.10
|
||||
uv add . --dev
|
||||
uv pip install -r ch05/07_gpt_to_llama/tests/test-requirements-extra.txt
|
||||
uv pip install pytest
|
||||
uv add torch==${{ matrix.pytorch-version }}
|
||||
uv add pytest-ruff nbval
|
||||
|
||||
- name: Test Selected Python Scripts
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
pytest setup/02_installing-python-libraries/tests.py
|
||||
pytest ch04/01_main-chapter-code/tests.py
|
||||
pytest ch05/01_main-chapter-code/tests.py
|
||||
pytest ch05/07_gpt_to_llama/tests/tests.py
|
||||
pytest ch06/01_main-chapter-code/tests.py
|
||||
pytest --ruff setup/02_installing-python-libraries/tests.py
|
||||
pytest --ruff ch04/01_main-chapter-code/tests.py
|
||||
pytest --ruff ch05/01_main-chapter-code/tests.py
|
||||
pytest --ruff ch05/07_gpt_to_llama/tests/tests.py
|
||||
pytest --ruff ch06/01_main-chapter-code/tests.py
|
||||
|
||||
- name: Validate Selected Jupyter Notebooks
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
pytest --nbval ch02/01_main-chapter-code/dataloader.ipynb
|
||||
pytest --nbval ch03/01_main-chapter-code/multihead-attention.ipynb
|
||||
pytest --nbval ch02/04_bonus_dataloader-intuition/dataloader-intuition.ipynb
|
||||
pytest --ruff --nbval ch02/01_main-chapter-code/dataloader.ipynb
|
||||
pytest --ruff --nbval ch03/01_main-chapter-code/multihead-attention.ipynb
|
||||
pytest --ruff --nbval ch02/04_bonus_dataloader-intuition/dataloader-intuition.ipynb
|
||||
|
||||
27
.github/workflows/basic-tests-pytorch-rc.yml
vendored
27
.github/workflows/basic-tests-pytorch-rc.yml
vendored
@@ -31,28 +31,25 @@ jobs:
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install uv
|
||||
uv venv --python=python3.10
|
||||
source .venv/bin/activate
|
||||
uv pip install pytest nbval
|
||||
if [ -f requirements.txt ]; then uv pip install -r requirements.txt; fi
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
uv python install 3.10
|
||||
uv add . --dev
|
||||
uv pip install -r ch05/07_gpt_to_llama/tests/test-requirements-extra.txt
|
||||
uv add pytest-ruff nbval
|
||||
uv pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
|
||||
uv pip install pytest
|
||||
|
||||
- name: Test Selected Python Scripts
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
pytest setup/02_installing-python-libraries/tests.py
|
||||
pytest ch04/01_main-chapter-code/tests.py
|
||||
pytest ch05/01_main-chapter-code/tests.py
|
||||
pytest ch05/07_gpt_to_llama/tests/tests.py
|
||||
pytest ch06/01_main-chapter-code/tests.py
|
||||
pytest --ruff setup/02_installing-python-libraries/tests.py
|
||||
pytest --ruff ch04/01_main-chapter-code/tests.py
|
||||
pytest --ruff ch05/01_main-chapter-code/tests.py
|
||||
pytest --ruff ch05/07_gpt_to_llama/tests/tests.py
|
||||
pytest --ruff ch06/01_main-chapter-code/tests.py
|
||||
|
||||
- name: Validate Selected Jupyter Notebooks
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
pytest --nbval ch02/01_main-chapter-code/dataloader.ipynb
|
||||
pytest --nbval ch03/01_main-chapter-code/multihead-attention.ipynb
|
||||
pytest --nbval ch02/04_bonus_dataloader-intuition/dataloader-intuition.ipynb
|
||||
pytest --ruff --nbval ch02/01_main-chapter-code/dataloader.ipynb
|
||||
pytest --ruff --nbval ch03/01_main-chapter-code/multihead-attention.ipynb
|
||||
pytest --ruff --nbval ch02/04_bonus_dataloader-intuition/dataloader-intuition.ipynb
|
||||
|
||||
57
.github/workflows/basic-tests-windows-pip.yml
vendored
Normal file
57
.github/workflows/basic-tests-windows-pip.yml
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
name: Code tests (Windows pip)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- '**/*.py'
|
||||
- '**/*.ipynb'
|
||||
- '**/*.yaml'
|
||||
- '**/*.yml'
|
||||
- '**/*.sh'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- '**/*.py'
|
||||
- '**/*.ipynb'
|
||||
- '**/*.yaml'
|
||||
- '**/*.yml'
|
||||
- '**/*.sh'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Install dependencies
|
||||
shell: pwsh
|
||||
run: |
|
||||
pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
pip install tensorflow-io-gcs-filesystem==0.31.0 # Explicit for Windows
|
||||
pip install -r ch05/07_gpt_to_llama/tests/test-requirements-extra.txt
|
||||
pip install pytest-ruff nbval
|
||||
|
||||
- name: Run Python Tests
|
||||
shell: pwsh
|
||||
run: |
|
||||
pytest --ruff setup/02_installing-python-libraries/tests.py
|
||||
pytest --ruff ch04/01_main-chapter-code/tests.py
|
||||
pytest --ruff ch05/01_main-chapter-code/tests.py
|
||||
pytest --ruff ch05/07_gpt_to_llama/tests/tests.py
|
||||
pytest --ruff ch06/01_main-chapter-code/tests.py
|
||||
|
||||
- name: Run Jupyter Notebook Tests
|
||||
shell: pwsh
|
||||
run: |
|
||||
pytest --ruff --nbval ch02/01_main-chapter-code/dataloader.ipynb
|
||||
pytest --ruff --nbval ch03/01_main-chapter-code/multihead-attention.ipynb
|
||||
pytest --ruff --nbval ch02/04_bonus_dataloader-intuition/dataloader-intuition.ipynb
|
||||
57
.github/workflows/basic-tests-windows-uv.yml.disabled
vendored
Normal file
57
.github/workflows/basic-tests-windows-uv.yml.disabled
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
name: Code tests (Windows)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- '**/*.py'
|
||||
- '**/*.ipynb'
|
||||
- '**/*.yaml'
|
||||
- '**/*.yml'
|
||||
- '**/*.sh'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- '**/*.py'
|
||||
- '**/*.ipynb'
|
||||
- '**/*.yaml'
|
||||
- '**/*.yml'
|
||||
- '**/*.sh'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install uv
|
||||
shell: pwsh
|
||||
run: |
|
||||
Invoke-WebRequest -Uri "https://astral.sh/uv/install.ps1" -OutFile "uv_install.ps1"
|
||||
& .\uv_install.ps1
|
||||
|
||||
- name: Install dependencies with uv
|
||||
shell: pwsh
|
||||
run: |
|
||||
uv venv --python=python3.10
|
||||
uv pip install tensorflow-io-gcs-filesystem==0.31.0 # Explicit for Windows
|
||||
uv pip install -r requirements.txt
|
||||
uv pip install pytest-ruff
|
||||
|
||||
- name: Run Python Tests
|
||||
shell: pwsh
|
||||
run: |
|
||||
uv run pytest --ruff setup/02_installing-python-libraries/tests.py
|
||||
uv run pytest --ruff ch04/01_main-chapter-code/tests.py
|
||||
uv run pytest --ruff ch05/01_main-chapter-code/tests.py
|
||||
uv run pytest --ruff ch05/07_gpt_to_llama/tests/tests.py
|
||||
uv run pytest --ruff ch06/01_main-chapter-code/tests.py
|
||||
|
||||
- name: Run Jupyter Notebook Tests
|
||||
shell: pwsh
|
||||
run: |
|
||||
uv run pytest --ruff --nbval ch02/01_main-chapter-code/dataloader.ipynb
|
||||
uv run pytest --ruff --nbval ch03/01_main-chapter-code/multihead-attention.ipynb
|
||||
uv run pytest --ruff --nbval ch02/04_bonus_dataloader-intuition/dataloader-intuition.ipynb
|
||||
57
.github/workflows/basic-tests-windows.yml
vendored
57
.github/workflows/basic-tests-windows.yml
vendored
@@ -1,57 +0,0 @@
|
||||
name: Code tests (Windows)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- '**/*.py' # Run workflow for changes in Python files
|
||||
- '**/*.ipynb'
|
||||
- '**/*.yaml'
|
||||
- '**/*.yml'
|
||||
- '**/*.sh'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- '**/*.py'
|
||||
- '**/*.ipynb'
|
||||
- '**/*.yaml'
|
||||
- '**/*.yml'
|
||||
- '**/*.sh'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Install dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install pytest nbval
|
||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||
pip install matplotlib==3.9.0
|
||||
pip install -r ch05/07_gpt_to_llama/tests/test-requirements-extra.txt
|
||||
|
||||
- name: Test Selected Python Scripts
|
||||
shell: bash
|
||||
run: |
|
||||
pytest setup/02_installing-python-libraries/tests.py
|
||||
pytest ch04/01_main-chapter-code/tests.py
|
||||
pytest ch05/01_main-chapter-code/tests.py
|
||||
pytest ch05/07_gpt_to_llama/tests/tests.py
|
||||
pytest ch06/01_main-chapter-code/tests.py
|
||||
|
||||
- name: Validate Selected Jupyter Notebooks
|
||||
shell: bash
|
||||
run: |
|
||||
pytest --nbval ch02/01_main-chapter-code/dataloader.ipynb
|
||||
pytest --nbval ch03/01_main-chapter-code/multihead-attention.ipynb
|
||||
pytest --nbval ch02/04_bonus_dataloader-intuition/dataloader-intuition.ipynb
|
||||
12
.github/workflows/check-links.yml
vendored
12
.github/workflows/check-links.yml
vendored
@@ -22,18 +22,16 @@ jobs:
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install uv
|
||||
uv venv --python=python3.10
|
||||
source .venv/bin/activate
|
||||
uv pip install pytest pytest-check-links
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
uv python install 3.10
|
||||
uv add . --dev
|
||||
uv add pytest-ruff pytest-check-links
|
||||
# Current version of retry doesn't work well if there are broken non-URL links
|
||||
# pip install pytest pytest-check-links pytest-retry
|
||||
uv pip install pytest pytest-check-links
|
||||
|
||||
- name: Check links
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
pytest --check-links ./ --check-links-ignore "https://platform.openai.com/*" --check-links-ignore "https://openai.com/*" --check-links-ignore "https://arena.lmsys.org" --check-links-ignore https://unsloth.ai/blog/gradient --check-links-ignore "https://www.reddit.com/r/*" --check-links-ignore "https://code.visualstudio.com/*" --check-links-ignore https://arxiv.org/* --check-links-ignore "https://ai.stanford.edu/~amaas/data/sentiment/"
|
||||
pytest --ruff --check-links ./ --check-links-ignore "https://platform.openai.com/*" --check-links-ignore "https://openai.com/*" --check-links-ignore "https://arena.lmsys.org" --check-links-ignore https://unsloth.ai/blog/gradient --check-links-ignore "https://www.reddit.com/r/*" --check-links-ignore "https://code.visualstudio.com/*" --check-links-ignore https://arxiv.org/* --check-links-ignore "https://ai.stanford.edu/~amaas/data/sentiment/"
|
||||
# pytest --check-links ./ --check-links-ignore "https://platform.openai.com/*" --check-links-ignore "https://arena.lmsys.org" --retries 2 --retry-delay 5
|
||||
|
||||
|
||||
9
.github/workflows/check-spelling-errors.yml
vendored
9
.github/workflows/check-spelling-errors.yml
vendored
@@ -22,11 +22,10 @@ jobs:
|
||||
|
||||
- name: Install codespell
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install uv
|
||||
uv venv --python=python3.10
|
||||
source .venv/bin/activate
|
||||
uv pip install codespell
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
uv python install 3.10
|
||||
uv add . --dev
|
||||
uv add codespell
|
||||
|
||||
- name: Run codespell
|
||||
run: |
|
||||
|
||||
15
.github/workflows/pep8-linter.yml
vendored
15
.github/workflows/pep8-linter.yml
vendored
@@ -15,15 +15,14 @@ jobs:
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.10'
|
||||
- name: Install flake8
|
||||
- name: Install ruff (a faster flake 8 equivalent)
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install uv
|
||||
uv venv --python=python3.10
|
||||
source .venv/bin/activate
|
||||
uv pip install flake8
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
uv python install 3.10
|
||||
uv add . --dev
|
||||
uv add ruff
|
||||
|
||||
- name: Run flake8 with exceptions
|
||||
- name: Run ruff with exceptions
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
flake8 . --max-line-length=140 --ignore=W504,E402,E731,C406,E741,E722,E226 --exclude .venv
|
||||
ruff check .
|
||||
|
||||
Reference in New Issue
Block a user