Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# CLAUDE.md

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

## Project Overview

Python template for libraries and applications with Docker packaging. Uses `uv` for dependency management, `ruff` for linting/formatting, and `pytest` for testing.

## Common Commands

```bash
# Install uv and dependencies
make install

# Run tests
make test

# Run tests with optional markers
uv run pytest --optional

# Run a single test file
uv run pytest tests/test_trivial.py

# Run a single test
uv run pytest tests/test_trivial.py::test_print_version

# Lint and format
make ruff

# Run pre-commit hooks on all files
make hooks

# Run the API locally (port 7000)
uv run python template/api.py

# Build and run Docker container
make docker
```

## Architecture

- `/template`: Main Python package
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La duda que tengo, es parecida a la que puse en el otro repo.
En este CLAUDE.md hay cosas que deben permanecer en el CLAUDE.md de proyecto instanciado (como lo de docstrings estilo numpy); pero hay otras que deben ser cambiadas (como este /template). No se si hay forma de indicar esto o algo así

- `main.py`: CLI entry point using Typer, exposes version via `main` console script
- `api.py`: FastAPI application with `/` (version check) and `/predict` endpoints
- `/tests`: Pytest test suite
- `conftest.py`: Custom `--optional` flag for marking optional tests with `@pytest.mark.optional`

## Code Style

- Python 3.9-3.12 compatible
- Use `from __future__ import annotations` for union type syntax (`A | B`)
- Docstrings follow NumPy convention
- Ruff rules: pycodestyle (E), Pyflakes (F), pyupgrade (UP), flake8-bugbear (B), flake8-simplify (SIM), isort (I), pydocstyle (D)
- mypy strict mode enabled for the `template` package

## Dependencies

- Add dependencies: `uv add <package>`
- Add dev dependencies: `uv add --dev <package>`
- Upgrade all: `uv lock --upgrade`