スキル一覧に戻る

python-conventions

JoernStoehler / msc-viterbo

0🍴 0📅 2026年1月17日

Work on Python experiments in packages/python_viterbo. Use for layout conventions, stage entrypoints, lint/test commands, and asset/plot handling.

SKILL.md

---
name: python-conventions
description: Work on Python experiments in packages/python_viterbo. Use for layout conventions, stage entrypoints, lint/test commands, and asset/plot handling.
---

# Python Conventions (python_viterbo)

## Purpose and layout

- Experiments live in `src/viterbo/experiments/<experiment>/`.
- Stage entrypoints: `stage_<stage>.py`.
- Shared helpers: `src/viterbo/common/` (avoid premature abstraction).
- Configs: `configs/experiments/<consumer>/<variant>.json`.
- Data artifacts: `data/experiments/<producer>/<variant>/` (Git LFS).

## Commands

- Lint: `scripts/lint.sh` (`ruff format`, `ruff check --fix`, `pyright`).
- Smoke tests: `scripts/smoke-test.sh` (`pytest tests/smoke`).
- Targeted tests: `uv run pytest <args>`.

## Stage invocation

- `uv run python -m viterbo.experiments.<experiment>.stage_<stage> --config configs/experiments/<experiment>/<variant>.json`

## Conventions

- Follow best practices for ML/data‑science code.
- Docstrings include inputs/outputs, side effects, shapes/dtypes, and contract.
- Prefer pure functions where practical.
- Comments explain the why behind non‑obvious decisions.

## Plots and assets

- LaTeX only includes assets; Python generates layout/style.
- Store outputs under `packages/latex_viterbo/assets/<experiment>/...`.