/python-skills
Shared Python best practices for LlamaFarm. Covers patterns, async, typing, testing, error handling, and security.
$ npx -y skills add llama-farm/llamafarm --skill python-skills --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/python-skills
Context preview
The summary Claude sees to decide when to auto-load this skill.
Shared Python best practices for LlamaFarm. Covers patterns, async, typing, testing, error handling, and security.
SKILL.md
python-skills.SKILL.mdname: python-skills
description: Shared Python best practices for LlamaFarm. Covers patterns, async, typing, testing, error handling, and security.
allowed-tools: Read, Grep, Glob
user-invocable: false
Python Skills for LlamaFarm
Shared Python best practices and code review checklists for all Python components in the LlamaFarm monorepo.
Applicable Components
| Component | Path | Python | Key Dependencies | |-----------|------|--------|-----------------| | Server | `server/` | 3.12+ | FastAPI, Celery, Pydantic, structlog | | RAG | `rag/` | 3.11+ | LlamaIndex, ChromaDB, Celery | | Universal Runtime | `runtimes/universal/` | 3.11+ | PyTorch, transformers, FastAPI | | Config | `config/` | 3.11+ | Pydantic, JSONSchema | | Common | `common/` | 3.10+ | HuggingFace Hub |
Quick Reference
| Topic | File | Key Points | |-------|------|------------| | Patterns | [patterns.md](patterns.md) | Dataclasses, Pydantic, comprehensions, imports | | Async | [async.md](async.md) | async/await, asyncio, concurrent execution | | Typing | [typing.md](typing.md) | Type hints, generics, protocols, Pydantic | | Testing | [testing.md](testing.md) | Pytest fixtures, mocking, async tests | | Errors | [error-handling.md](error-handling.md) | Custom exceptions, logging, context managers | | Security | [security.md](security.md) | Path traversal, injection, secrets, deserialization |
Code Style
LlamaFarm uses `ruff` with shared configuration in `ruff.toml`:
line-length = 88
target-version = "py311"
select = ["E", "F", "I", "B", "UP", "SIM"]
Key rules:
- **E, F**: Core pyflakes and pycodestyle
- **I**: Import sorting (isort)
- **B**: Bugbear (common pitfalls)
- **UP**: Upgrade syntax to modern Python
- **SIM**: Simplify code patterns
Architecture Patterns
Settings with pydantic-settings
from pydantic_settings import BaseSettings
class Settings(BaseSettings, env_file=".env"):
LOG_LEVEL: str = "INFO"
HOST: str = "0.0.0.0"
PORT: int = 14345
settings = Settings() # Singleton at module levelStructured Logging with structlog
from core.logging import FastAPIStructLogger # Server
from core.logging import RAGStructLogger # RAG
from core.logging import UniversalRuntimeLogger # Runtime
logger = FastAPIStructLogger(__name__)
logger.info("Operation completed", extra={"count": 10, "duration_ms": 150})Abstract Base Classes for Extensibility
from abc import ABC, abstractmethod
class Component(ABC):
def __init__(self, name: str, config: dict[str, Any] | None = None):
self.name = name or self.__class__.__name__
self.config = config or {}
@abstractmethod
def process(self, documents: list[Document]) -> ProcessingResult:
passDataclasses for Internal Data
from dataclasses import dataclass, field
@dataclass
class Document:
content: str
metadata: dict[str, Any] = field(default_factory=dict)
id: str = field(default_factory=lambda: str(uuid.uuid4()))Pydantic Models for API Boundaries
from pydantic import BaseModel, Field, ConfigDict
class EmbeddingRequest(BaseModel):
model: str
input: str | list[str]
encoding_format: Literal["float", "base64"] | None = "float"
model_config = ConfigDict(str_strip_whitespace=True)Directory Structure
Each Python component follows this structure:
component/
├── pyproject.toml # UV-managed dependencies
├── core/ # Core functionality
│ ├── __init__.py
│ ├── settings.py # Pydantic Settings
│ └── logging.py # structlog setup
├── services/ # Business logic (server)
├── models/ # ML models (runtime)
├── tasks/ # Celery tasks (rag)
├── utils/ # Utility functions
└── tests/
├── conftest.py # Shared fixtures
└── test_*.pyReview Checklist Summary
When reviewing Python code in LlamaFarm:
1. **Patterns** (Medium priority)
- Modern Python syntax (3.10+ type hints)
- Dataclass vs Pydantic used appropriately
- No mutable default arguments
2. **Async** (High priority)
- No blocking calls in async functions
- Proper asyncio.Lock usage
- Cancellation handled correctly
3. **Typing** (Medium priority)
- Complete return type hints
- Generic types parameterized
- Pydantic v2 patterns
4. **Testing** (Medium priority)
- Fixtures properly scoped
- Async tests use pytest-asyncio
- Mocks cleaned up
5. **Errors** (High priority)
- Custom exceptions with context
- Structured logging with extra dict
- Proper exception chaining
6. **Security** (Critical priority)
- Path traversal prevention
- Input sanitization
- Safe deserialization
See individual topic files for detailed checklists with grep patterns.
Read more
name: python-skills description: Shared Python best practices for LlamaFarm. Covers patterns, async, typing, testing, error handling, and security. allowed-tools: Read, Grep, Glob user-invocable: false
Python Skills for LlamaFarm
Shared Python best practices and code review checklists for all Python components in the LlamaFarm monorepo.
Applicable Components
| Component | Path | Python | Key Dependencies | |-----------|------|--------|-----------------| | Server | `server/` | 3.12+ | FastAPI, Celery, Pydantic, structlog | | RAG | `rag/` | 3.11+ | LlamaIndex, ChromaDB, Celery | | Universal Runtime | `runtimes/universal/` | 3.11+ | PyTorch, transformers, FastAPI | | Config | `config/` | 3.11+ | Pydantic, JSONSchema | | Common | `common/` | 3.10+ | HuggingFace Hub |
Quick Reference
| Topic | File | Key Points | |-------|------|------------| | Patterns | [patterns.md](patterns.md) | Dataclasses, Pydantic, comprehensions, imports | | Async | [async.md](async.md) | async/await, asyncio, concurrent execution | | Typing | [typing.md](typing.md) | Type hints, generics, protocols, Pydantic | | Testing | [testing.md](testing.md) | Pytest fixtures, mocking, async tests | | Errors | [error-handling.md](error-handling.md) | Custom exceptions, logging, context managers | | Security | [security.md](security.md) | Path traversal, injection, secrets, deserialization |
Code Style
LlamaFarm uses `ruff` with shared configuration in `ruff.toml`:
line-length = 88 target-version = "py311" select = ["E", "F", "I", "B", "UP", "SIM"]
Key rules:
- **E, F**: Core pyflakes and pycodestyle
- **I**: Import sorting (isort)
- **B**: Bugbear (common pitfalls)
- **UP**: Upgrade syntax to modern Python
- **SIM**: Simplify code patterns
Architecture Patterns
Settings with pydantic-settings
from pydantic_settings import BaseSettings
class Settings(BaseSettings, env_file=".env"):
LOG_LEVEL: str = "INFO"
HOST: str = "0.0.0.0"
PORT: int = 14345
settings = Settings() # Singleton at module levelStructured Logging with structlog
from core.logging import FastAPIStructLogger # Server
from core.logging import RAGStructLogger # RAG
from core.logging import UniversalRuntimeLogger # Runtime
logger = FastAPIStructLogger(__name__)
logger.info("Operation completed", extra={"count": 10, "duration_ms": 150})Abstract Base Classes for Extensibility
from abc import ABC, abstractmethod
class Component(ABC):
def __init__(self, name: str, config: dict[str, Any] | None = None):
self.name = name or self.__class__.__name__
self.config = config or {}
@abstractmethod
def process(self, documents: list[Document]) -> ProcessingResult:
passDataclasses for Internal Data
from dataclasses import dataclass, field
@dataclass
class Document:
content: str
metadata: dict[str, Any] = field(default_factory=dict)
id: str = field(default_factory=lambda: str(uuid.uuid4()))Pydantic Models for API Boundaries
from pydantic import BaseModel, Field, ConfigDict
class EmbeddingRequest(BaseModel):
model: str
input: str | list[str]
encoding_format: Literal["float", "base64"] | None = "float"
model_config = ConfigDict(str_strip_whitespace=True)Directory Structure
Each Python component follows this structure:
component/
├── pyproject.toml # UV-managed dependencies
├── core/ # Core functionality
│ ├── __init__.py
│ ├── settings.py # Pydantic Settings
│ └── logging.py # structlog setup
├── services/ # Business logic (server)
├── models/ # ML models (runtime)
├── tasks/ # Celery tasks (rag)
├── utils/ # Utility functions
└── tests/
├── conftest.py # Shared fixtures
└── test_*.pyReview Checklist Summary
When reviewing Python code in LlamaFarm:
1. **Patterns** (Medium priority)
- Modern Python syntax (3.10+ type hints)
- Dataclass vs Pydantic used appropriately
- No mutable default arguments
2. **Async** (High priority)
- No blocking calls in async functions
- Proper asyncio.Lock usage
- Cancellation handled correctly
3. **Typing** (Medium priority)
- Complete return type hints
- Generic types parameterized
- Pydantic v2 patterns
4. **Testing** (Medium priority)
- Fixtures properly scoped
- Async tests use pytest-asyncio
- Mocks cleaned up
5. **Errors** (High priority)
- Custom exceptions with context
- Structured logging with extra dict
- Proper exception chaining
6. **Security** (Critical priority)
- Path traversal prevention
- Input sanitization
- Safe deserialization
See individual topic files for detailed checklists with grep patterns.
Enterprise AI capabilities on your own hardware. No cloud required. LlamaFarm is an open-source AI platform that runs entirely on your hardware.
Repo: llama-farm/llamafarm
Other skills on llamafarm.
- /cli-skills
CLI best practices for LlamaFarm. Covers Cobra, Bubbletea, Lipgloss patterns for Go CLI development.
Open skill - /code-review
Comprehensive code review for diffs. Analyzes changed code for security vulnerabilities, anti-patterns, and quality issues. Auto-detects domain (frontend/backend) from file paths.
Open skill - /commit-push-pr
Commit changes, push to GitHub, and open a PR. Includes quality checks (security, patterns, simplification). Use --quick to skip checks.
Open skill - /common-skills
Best practices for the Common utilities package in LlamaFarm. Covers HuggingFace Hub integration, GGUF model management, and shared utilities.
Open skill - /config-skills
Configuration module patterns for LlamaFarm. Covers Pydantic v2 models, JSONSchema generation, YAML processing, and validation.
Open skill - /designer-skills
Designer subsystem patterns for LlamaFarm. Covers React 18, TanStack Query, TailwindCSS, and Radix UI.
Open skill

