Problem
spectrafit new-config -m voigt -n 3 was emitting banned v1 JSON format:
{"fitting": {"peaks": {"1": {...}}}}
The v1 format is hard-rejected by UnifiedFittingConfig since Phase 10.
Solution (implemented in commit 2d6fa967 + be12c14a)
_PARAM_DEFAULTS: dict[str, dict] → dict[str, FitParameter]
_build_component() returns Component (Pydantic model, not raw dict)
_build_config() emits v2 format: {"components": [...], "minimizer": {...}}
- Default output format changed from JSON to TOML
- Removed dead
try/except ImportError for tomli_w (it is a hard dep)
spectrafit init now writes spectrafit.toml project meta file
Verification
uv run spectrafit new-config -m voigt -n 3
# → produces valid [[components]] TOML accepted by UnifiedFittingConfig
Tests: 36 golden-table assertions in tests/unit/test_new_config.py, v2 format check in tests/unit/test_init_command.py.
Problem
spectrafit new-config -m voigt -n 3was emitting banned v1 JSON format:{"fitting": {"peaks": {"1": {...}}}}The v1 format is hard-rejected by
UnifiedFittingConfigsince Phase 10.Solution (implemented in commit 2d6fa967 + be12c14a)
_PARAM_DEFAULTS:dict[str, dict]→dict[str, FitParameter]_build_component()returnsComponent(Pydantic model, not raw dict)_build_config()emits v2 format:{"components": [...], "minimizer": {...}}try/except ImportErrorfortomli_w(it is a hard dep)spectrafit initnow writesspectrafit.tomlproject meta fileVerification
uv run spectrafit new-config -m voigt -n 3 # → produces valid [[components]] TOML accepted by UnifiedFittingConfigTests: 36 golden-table assertions in
tests/unit/test_new_config.py, v2 format check intests/unit/test_init_command.py.