Refactor constants management to use Pydantic BaseModel for configuration

- Replaced module-level path variables in constants.py with a structured Pydantic Config class.
- Updated all relevant modules (train.py, augmentation.py, exports.py, dataset-visualiser.py, manual_run.py) to access paths through the new config structure.
- Fixed bugs related to image processing and model saving.
- Enhanced test infrastructure to accommodate the new configuration approach.

This refactor improves code maintainability and clarity by centralizing configuration management.
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-03-27 18:18:30 +02:00
parent b68c07b540
commit 142c6c4de8
106 changed files with 5706 additions and 654 deletions
@@ -0,0 +1,31 @@
# Resource Limit Test Scenarios
## RL-AUG-01: Augmentation output count bounded
- **Input**: 1 image
- **Action**: Run `augment_inner()`
- **Expected**: Returns exactly 8 outputs (never more, even with retries)
- **Traces**: AC: 8× augmentation ratio (1 original + 7 augmented)
## RL-DSF-01: Dataset split ratios sum to 100%
- **Input**: Any number of images
- **Action**: Check `train_set + valid_set + test_set`
- **Expected**: Equals 100
- **Traces**: AC: 70/20/10 split
## RL-DSF-02: No data duplication across splits
- **Input**: 100 images
- **Action**: Run `form_dataset()`, collect all filenames across train/valid/test
- **Expected**: No filename appears in more than one split
- **Traces**: AC: Dataset integrity
## RL-ENC-01: Encrypted output size bounded
- **Input**: N bytes plaintext
- **Action**: Encrypt
- **Expected**: Ciphertext size ≤ N + 32 bytes (16 IV + up to 16 padding)
- **Traces**: Restriction: AES-256-CBC overhead
## RL-CLS-01: Total class count is exactly 80
- **Input**: `classes.json`
- **Action**: Generate class list for YAML
- **Expected**: Exactly 80 entries (17 named × 3 weather + 29 placeholders = 80)
- **Traces**: AC: 80 total class slots