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
+44
View File
@@ -0,0 +1,44 @@
# Model Split Tests
**Task**: AZ-158_test_model_split
**Name**: Model Split Tests
**Description**: Implement 2 blackbox tests for model split storage — size constraint and reassembly integrity
**Complexity**: 1 point
**Dependencies**: AZ-152_test_infrastructure
**Component**: Blackbox Tests
**Jira**: AZ-158
**Epic**: AZ-151
## Problem
Encrypted models are split into small and big parts for CDN storage. Tests must verify the split respects size constraints and reassembly produces the original.
## Outcome
- 2 passing pytest tests in `tests/test_model_split.py`
## Scope
### Included
- BT-SPL-01: Split respects size constraint (small ≤ max(3072 bytes, 20% of total))
- BT-SPL-02: Reassembly produces original (small + big == encrypted bytes)
### Excluded
- CDN upload/download (requires external service)
## Acceptance Criteria
**AC-1: Size constraint**
Given 10000 encrypted bytes
When split into small + big
Then small ≤ max(3072, total × 0.2); big = remainder
**AC-2: Reassembly**
Given split parts from 10000 encrypted bytes
When small + big concatenated
Then equals original encrypted bytes
## Constraints
- Uses generated binary data (no fixture files needed)
- References SMALL_SIZE_KB constant from constants.py