Changelog
All notable changes to yaml2plot will be documented in this file.
Version 1.0.0 (2025-07-XX)
🚀 Major Release – Complete API Overhaul
⚠️ Breaking Changes
Legacy API Removed – The following symbols no longer exist: *
SpiceDataclass andreader.pymodule *SpicePlotterclass andplotter.pymodule * Helper functions:explore_signals(),load_spice(),config_from_file(),config_from_yaml(),validate_config()* Configuration modelPlotConfigConfiguration Keys Lower-cased –
X/Y→x/yfor consistency.Single Data Interface – Only
load_spice_raw(returnsWaveDataset+ dict of NumPy arrays) is supported.Unified Plot Function –
plot()now accepts either a file path or pre-loaded data plus aPlotSpec.Package Namespace Trimmed – Public API now exposes exactly four symbols:
load_spice_raw,PlotSpec,plot, andWaveDataset.
🎉 New Features & Improvements
PlotSpec 1.0 – Pydantic-validated model with helpers
PlotSpec.from_yamlandPlotSpec.model_validate.Standalone Plotting Module – Refactored
core.plottingwith cleaner helpers, automatic zoom config, correct Y-axis ordering, and ~75 % complexity reduction.Processed-Data Integration – Pass arbitrary NumPy arrays via
processed_datafor mixed raw/derived traces.Complex-Number Handling – Transparent plotting of AC analysis results; magnitude/phase examples in docs.
Automatic Renderer Detection – Chooses the best Plotly renderer for Jupyter vs. CLI.
Higher Test Coverage – 91 % overall (96 % plotting, 88 % PlotSpec).
Documentation Revamp – Quick-start, configuration guide, API reference, and examples updated for the new workflow.
🔧 Internal / Developer
Pure
src/layout with zero legacy code remaining.Clean CLI built on
WaveDataset+plot.Extensive refactor of unit tests; legacy tests archived.
—
Version 0.1.0 (2025-01-XX)
Initial Release
Features
Core API Functions:
plot()- Main plotting function with required configuration parameterexplore_signals()- Signal discovery with categorized outputload_spice()- SPICE file loading with Path object supportvalidate_config()- Configuration validation with helpful warnings
Configuration System:
config_from_file()- Load configuration from YAML filesconfig_from_yaml()- Create configuration from YAML stringsconfig_from_dict()- Create configuration from Python dictionariesMulti-figure support for complex layouts
Comprehensive validation with clear error messages
SPICE Data Handling:
Case-insensitive signal access (all normalized to lowercase)
Automatic signal categorization (voltage, current, other)
Modern pathlib integration throughout API
Support for processed data integration
Advanced Plotting:
Plotly-based interactive plots
Logarithmic scale support (both X and Y axes)
Customizable plot titles, labels, and styling
Grid and legend control
Multi-subplot layouts
Architecture
Clean 3-Step Workflow: Discovery → Configuration → Plotting
Explicit over Implicit: No hidden magic, all behavior transparent
Modern src/ Layout: Ready for PyPI publication
Comprehensive Test Suite: 226 tests with 92% coverage
Dependencies
plotly >= 5.0.0
numpy >= 1.20.0
PyYAML >= 6.0
spicelib >= 1.0.0
Supported Python
Python 3.8+
Tested on Python 3.8, 3.9, 3.10, 3.11, 3.12
Known Issues
None at initial release
—
Legend:
🎉 New Features: New functionality added
🐛 Bug Fixes: Issues resolved
📝 Documentation: Documentation improvements
⚠️ Breaking Changes: Changes that break backward compatibility
🔧 Internal: Internal improvements not affecting public API