--- paths:   - "**/*.py" --- # Правила написания Python-кода (Gin-Config Strict Pattern) ## Окружение - Python 3.10+, PyTorch 2.x - `from __future__ import annotations` — первая строка каждого файла - Код, переменные, комментарии — на **английском языке** ## Типизация и документация - Strict type hints на всех аргументах и return types - Google-style docstrings на всех публичных классах и функциях ## Конфигурация: gin-config (не argparse, не dataclass) - `@gin.configurable` только на классах - Все параметры со значениями по умолчанию в `__init__` - Загрузка: `get__cfg(path2cfg)` → `gin.parse_config_file()` → return instance - Передача конфигов **явно** через аргументы (не через глобальный gin state) - Формат .gin: плоский (`ClassName.param = value`), без макросов ## DL/CV практики - VRAM: sequential model loading, `del model` + `gc.collect()` + `empty_cache()` после использования - Reproducibility: `torch.manual_seed(42)`, `np.random.seed(42)` - Atomic writes: temp file + `os.replace()` для .npy/.json - Inference: `@torch.inference_mode()`, результат на `.cpu()` ## Структура - `in/config_files/` — .gin файлы (1 файл = 1 конфиг-класс) - `src/conf/` — конфиг-классы + get_*_cfg() загрузчики - `src/augmentor/` или `src/` — бизнес-логика (dataset, models, inference, io_utils) Полный стандарт: skill `/code-style`