Test dependencies with Python 3.13 (#843)

* Custom python 3.13 entry in pyproject.toml

* amend

* update

* update

* update

* Update pyproject.toml

* Update pyproject.toml

* Update pyproject.toml

* update
This commit is contained in:
Sebastian Raschka
2025-09-27 08:38:07 -05:00
committed by GitHub
parent 47867bc1cb
commit 458f2d9b67
5 changed files with 63 additions and 11 deletions

View File

@@ -0,0 +1,51 @@
name: Test latest PyTorch-compatible Python version
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: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Install dependencies
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync --dev --python=3.13
uv add pytest-ruff nbval
- name: Test Selected Python Scripts
run: |
source .venv/bin/activate
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 ch06/01_main-chapter-code/tests.py
- name: Validate Selected Jupyter Notebooks
run: |
source .venv/bin/activate
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

View File

@@ -39,7 +39,7 @@ jobs:
shell: bash
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync --dev --python=3.10 # tests for backwards compatibility
uv sync --dev # tests for backwards compatibility
uv pip install -r ch05/07_gpt_to_llama/tests/test-requirements-extra.txt
uv add pytest-ruff nbval

View File

@@ -38,8 +38,7 @@ jobs:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync --dev --python=3.10 # tests for backwards compatibility
uv pip install -r ch05/07_gpt_to_llama/tests/test-requirements-extra.txt
uv add torch==${{ matrix.pytorch-version }}
uv add pytest-ruff nbval
uv pip install torch==${{ matrix.pytorch-version }} pytest-ruff nbval
- name: Test Selected Python Scripts
run: |

View File

@@ -32,7 +32,7 @@ jobs:
- name: Install dependencies
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync --dev --python=3.10 # tests for backwards compatibility
uv sync --dev # tests for backwards compatibility
uv add pytest-ruff nbval
uv pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu

View File

@@ -7,16 +7,19 @@ name = "llms-from-scratch"
version = "1.0.18"
description = "Implement a ChatGPT-like LLM in PyTorch from scratch, step by step"
readme = "README.md"
requires-python = ">=3.10,<=3.13"
requires-python = ">=3.10,<3.14"
dependencies = [
"torch>=2.2.2,<2.6; sys_platform == 'darwin' and platform_machine == 'x86_64' and python_version < '3.13'",
"torch>=2.2.2; sys_platform == 'darwin' and platform_machine == 'arm64'",
"torch>=2.2.2; sys_platform == 'linux'",
"torch>=2.2.2; sys_platform == 'win32'",
'torch>=2.6; python_version >= "3.13"',
"torch>=2.2.2,<2.6; sys_platform == 'darwin' and platform_machine == 'x86_64' and python_version < '3.12'",
"torch>=2.2.2; sys_platform == 'darwin' and platform_machine == 'arm64' and python_version < '3.12'",
"torch>=2.2.2; sys_platform == 'linux' and python_version < '3.12'",
"torch>=2.2.2; sys_platform == 'win32' and python_version < '3.12'",
"tensorflow>=2.16.2; sys_platform == 'darwin' and platform_machine == 'x86_64'",
"tensorflow>=2.18.0; sys_platform == 'darwin' and platform_machine == 'arm64'",
"tensorflow>=2.18.0; sys_platform == 'linux'",
"tensorflow>=2.18.0; sys_platform == 'win32'",
"jupyterlab>=4.0",
"tiktoken>=0.5.1",
"matplotlib>=3.7.1",
@@ -33,9 +36,8 @@ llms-from-scratch = { workspace = true }
[dependency-groups]
dev = [
"build>=1.2.2.post1",
"llms-from-scratch",
"twine>=6.1.0",
"tokenizers>=0.21.1",
"tokenizers>=0.22.0",
"safetensors>=0.6.2",
]