# Архитектурный обзор Python-части

## 1. Верхнеуровневая схема
Python-часть разделена на следующие пакеты:
- `gui`: desktop UI на PyQt6 + pyqtgraph.
- `models`: dataclass-модели runtime-конфига и датасетов.
- `orchestration`: управление runtime-конфигом, процессами и SHM-ридерами.
- `storage`: persistent storage для calibration/reference и runtime snapshots.
- `hardware_full`: Python-обертки над LibreVNA и switch drivers.
- `workflows`: сценарии калибровки/референса/последовательного захвата.
- `scripts`: эксплуатационные и отладочные скрипты.

## 2. Ключевые архитектурные решения
- GUI оставлен единой точкой входа (`AppWindow`), но тяжелая логика вынесена в `sections`, `plotting` и `runtime` helpers.
- Конфиг разделен на schema/codec/validation:
  - `run_config_schema.py`
  - `run_config_codec.py`
  - `run_config_validation.py`
  - `run_config_model.py` как фасадный модуль.
- Storage разделен на подпакет `storage/npz/*`:
  - `paths.py`
  - `serialize.py`
  - `snapshot_numpy.py`
  - `store.py`
- SHM-декодирование разделено на `orchestration/shm/*`:
  - `binary_cursor.py`
  - `decoder.py`
  - `ring_reader.py`
  - `shm_reader.py` как фасад.
- LibreVNA service переведен на backend-подход (`librevna_backends.py`) с orchestration-оберткой `librevna_service.py`.

## 3. Инварианты
- Формат `run_config.json` сохраняется совместимым с C++ pipeline.
- Форматы snapshot (`binary`, `numpy-directory-v1`) сохраняются.
- Сигнатуры ключевых пользовательских входов (`gui/main.py`, scripts) сохраняются.
- Данные в `python_app/data` и runtime-файлы в `python_app/runtime` не реорганизуются автоматически.

## 4. Основные зависимости
- GUI: `PyQt6`, `pyqtgraph`, `numpy`.
- Hardware: `libusb1` через драйвер в `hardware_full/librevna_driver`.
- Storage/processing tools: `numpy`, stdlib JSON/Path/mmap/subprocess.

## 5. Точки расширения
- Новые processing modes: через live-config + GUI section + C++ processor.
- Новые storage backends: реализовать `StoreApi`.
- Новые hardware adapters: добавить backend/driver и подключить в service/factory.
