Skip to content

Development Guide

Detailed guide for SPADE_LLM development and testing.

Development Environment

Prerequisites

Tool Requirement Purpose
git Required Version control
uv Required Python management
just Optional Task runner

Setup

# Clone repository
git clone https://github.com/javipalanca/spade_llm.git
# If you forked, clone your fork instead
cd spade_llm

# Install development dependencies
uv sync --extra dev

Testing

Running Tests

# Run all tests
uv run pytest

# Run with coverage
uv run pytest --cov=spade_llm

# Run just to see available tasks (tests, linting, etc.)
just

Documentation Standards

Docstring Format

def example_function(param1: str, param2: int = 0) -> str:
    """Brief description of the function.

    Longer description if needed. Explain the purpose,
    behavior, and any important details.

    Args:
        param1: Description of first parameter
        param2: Description of second parameter with default value

    Returns:
        Description of return value

    Raises:
        ValueError: When invalid input is provided
        ConnectionError: When service is unavailable

    Example:
        ```python
        result = example_function("hello", 42)
        print(result)  # Output: processed result
        ```
    """
    # Implementation here
    pass

Class Documentation

class ExampleClass:
    """Brief description of the class.

    Longer description explaining the class purpose,
    usage patterns, and important behavior.

    Attributes:
        attribute1: Description of attribute
        attribute2: Description of another attribute

    Example:
        ```python
        instance = ExampleClass(param="value")
        result = instance.method()
        ```
    """

    def __init__(self, param: str):
        """Initialize the class.

        Args:
            param: Configuration parameter
        """
        self.attribute1 = param

This development guide should help you contribute to SPADE_LLM. For specific questions, check the existing issues or create a new one.