Implementation:Axolotl ai cloud Axolotl Pyproject Config
| Knowledge Sources | |
|---|---|
| Domains | Build_System, Packaging |
| Last Updated | 2026-02-07 00:00 GMT |
Overview
PEP 621 project configuration defining the Axolotl package metadata, build system, entry points, and development tool settings.
Description
The pyproject.toml is the central package configuration for Axolotl following PEP 621 standards. It declares: (1) Build system using setuptools with setuptools_scm for version management, (2) Project metadata including name (axolotl), description (LLM Trainer), Python >=3.10 requirement, and dynamic version/dependencies, (3) Entry point axolotl = axolotl.cli.main:main for the CLI, (4) Custom setuptools integration via setuptools_axolotl_dynamic_dependencies.BuildPyCommand for runtime dependency resolution, (5) Ruff linter configuration targeting Python 3.10 with select rule sets (E, F, W, C90, B, I) and specific ignores, and (6) Ruff formatter configuration matching Black style. The version is read dynamically from the VERSION file.
Usage
This file is consumed by pip, setuptools, and development tools (ruff, uv). It is the primary interface for installing Axolotl (pip install -e .) and for configuring code quality tooling. Modify it when changing package metadata, adding entry points, or updating linter rules.
Code Reference
Source Location
- Repository: Axolotl
- File: pyproject.toml
- Lines: 1-65
Signature
[build-system]
requires = ["setuptools>=64", "wheel", "setuptools_scm>=8", "packaging==26.0"]
build-backend = "setuptools.build_meta"
[project]
name = "axolotl"
dynamic = ["version", "dependencies", "optional-dependencies"]
description = "LLM Trainer"
requires-python = ">=3.10"
[project.scripts]
axolotl = "axolotl.cli.main:main"
[tool.setuptools.cmdclass]
build_py = "setuptools_axolotl_dynamic_dependencies.BuildPyCommand"
[tool.setuptools.dynamic]
version = { file = "VERSION" }
Import
# Not imported. Consumed by build tools:
pip install -e .
pip install -e ".[flash-attn,deepspeed]"
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| VERSION | File | Yes | Contains the package version string |
| requirements.txt | File | Yes | Core dependencies (parsed dynamically) |
| src/ | Directory | Yes | Python source packages |
Outputs
| Name | Type | Description |
|---|---|---|
| axolotl package | Installable package | Python package installable via pip |
| axolotl CLI | Entry point | Command-line tool at axolotl.cli.main:main |
Usage Examples
Install in Development Mode
# Standard development install
pip install -e .
# With optional extras
pip install -e ".[flash-attn,deepspeed,vllm]"
# Using uv
uv pip install -e .