Files
python-cli-template/{{cookiecutter.project_slug}}/CLAUDE.md
2025-08-11 11:36:10 +02:00

2.2 KiB
Raw Blame History

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

{{ cookiecutter.project_slug }} is a Python library for {{ cookiecutter.description.lower() }}.

Development Commands

Setup

uv sync

Code Quality

  • Linting and formatting: uv run ruff check --fix and uv run ruff format
  • Type checking: uv run mypy .
  • Combined linting: uv run invoke lint (runs ruff check, ruff format --check, and mypy)

Testing

  • Run tests: uv run pytest
  • Run tests with coverage: uv run invoke test

Maintenance

  • Clean untracked files: uv run invoke clean (interactive)
  • Version bumping: uv run bump-my-version bump [patch|minor|major]

Code Architecture

Core Components (src/{{ cookiecutter.package_name }}/core.py)

The library implements the main functionality in the core module. Update this section with:

  1. Key Classes: Describe main classes and their responsibilities
  2. Core Functions: Document important functions and their purpose
  3. Data Flow: Explain how data flows through the system
  4. Dependencies: List and explain key dependencies

Project Structure

src/{{ cookiecutter.package_name }}/
├── __init__.py              # Package initialization
├── core.py                  # Main functionality
└── py.typed                 # Type hints marker

examples/
└── basic_usage.py           # Usage examples

tests/
└── test_{{ cookiecutter.package_name }}.py    # Test suite

Development Notes

  • Uses Python {{ cookiecutter.python_version }}+ with modern type hints (PEP 604)
  • Configured with ruff for linting/formatting and mypy for type checking
  • Built with uv for dependency management
  • Includes invoke tasks for common operations
  • Version {{ cookiecutter.version }} ({{ cookiecutter.year }})

Implementation Guidelines

  • Follow test-driven development practices
  • Use descriptive function names and one-liner docstrings for non-trivial functions
  • Keep files between 300500 lines where possible
  • Don't duplicate code; build upon existing implementations
  • Always use type hints as supported by Python {{ cookiecutter.python_version }}+