# Development Scripts

This directory contains various utility scripts for development.

## Code Formatting

The project uses the following tools for code formatting:

1. `isort` - Sorts imports alphabetically and automatically separates them into sections
2. `black` - Code formatter that enforces a consistent style
3. `ruff` - Fast Python linter with auto-fixes

### Automatic Formatting with Git Pre-commit Hook

The project has a Git pre-commit hook that automatically formats staged Python files in the following order:

1. `isort`
2. `black` (with line length set to 120)
3. `ruff check --fix`

The pre-commit hook is already installed and should run automatically when you commit changes.

### Manual Formatting

To manually format all Python files in the project, run:

```bash
./scripts/format.sh
```

This script runs the same tools in the same order as the pre-commit hook, but on all Python files in the project.

### Configuration

The tools are configured in the `pyproject.toml` file at the root of the project. This ensures consistent formatting regardless of how the tools are invoked.