Initial commit — gin-config strict-pattern coding standard

Code-style guide and reference patterns for DL/CV research at the
ЛИСАД laboratory (NADEZHDA / SOFIA CVGL projects).

Files:
- Стандарт написания кода для DL CV исследований (CVGL).md
- Правила написания Python-кода (Gin-Config Strict Pattern).md
- REQUIREMENTS_GIN_STYLE.md
- Gin-Config Strict Pattern Reference Examples.md
- Переход от argparse и dataclass к gin-config.md
- gin-parse.md
- Рекомендуемые gin-config категории.md
- config_loader_reference.py
- README.md (this commit)
- .gitignore (Python artifacts)
This commit is contained in:
2026-04-27 17:12:38 +03:00
commit 3278322a17
10 changed files with 1970 additions and 0 deletions

48
README.md Normal file
View File

@@ -0,0 +1,48 @@
# style_code_lisad
Code-style guide and reference patterns for DL/CV research at the **ЛИСАД laboratory** (CVGL projects: NADEZHDA / SOFIA).
## Contents
| File | Purpose |
|------|---------|
| `Стандарт написания кода для DL CV исследований (CVGL).md` | Master coding standard for the lab |
| `Правила написания Python-кода (Gin-Config Strict Pattern).md` | Quick-reference rule sheet |
| `REQUIREMENTS_GIN_STYLE.md` | Detailed gin-config requirements |
| `Gin-Config Strict Pattern Reference Examples.md` | Annotated example files |
| `Переход от argparse и dataclass к gin-config.md` | Migration guide |
| `gin-parse.md` | Notes on gin parsing semantics |
| `Рекомендуемые gin-config категории.md` | Suggested groupings of gin-configurable classes |
| `config_loader_reference.py` | Reference implementation of `get_*_cfg()` loader pattern |
## Core principles
1. **Configuration via `gin-config`** (no `argparse`, no `dataclass`).
2. `@gin.configurable` on **classes only** — all defaults live in `__init__`.
3. Loader pattern: `get_<name>_cfg(path: str) -> Instance` that calls
`gin.parse_config_file(path)` then constructs the class.
4. Pass configs **explicitly** via constructor arguments, never via global
gin state.
5. Strict typing on all public APIs, Google-style docstrings, English code.
See the full standard in `Стандарт написания кода...md`.
## Layout for derived projects
```
project_root/
├── in/
│ └── config_files/ # one .gin file per config class
├── src/
│ ├── conf/ # config classes + get_*_cfg() loaders
│ ├── augmentor/ # business logic (or other domain modules)
│ └── ...
├── tests/
└── README.md
```
## License & usage
Internal lab reference. Apply when writing new CVGL research code (e.g.
`code_sofia_v71/` should follow this standard — current dataclass-based
config is a known deviation that will be migrated in a separate refactor).