Changelog
=========
All notable changes to FACETpy are documented in this file.
The format is based on `Keep a Changelog `_,
and this project adheres to `Semantic Versioning `_.
[2.0.0] - 2025-10-31
--------------------
Major refactoring and modernization of FACETpy.
Added
~~~~~
**Core Architecture**
- New processor-based architecture with ``Processor`` base class
- ``ProcessingContext`` for immutable data flow
- ``Pipeline`` for composing processing workflows
- ``ProcessorRegistry`` for plugin discovery
- ``ParallelExecutor`` for automatic parallelization
**Processors**
*I/O:*
- ``Loader`` - Load EEG data with automatic format detection (EDF, BDF, GDF, BrainVision, EEGLAB, FIF)
- ``BIDSLoader`` - Load BIDS format data
- ``EDFExporter`` - Export to EDF format
- ``BIDSExporter`` - Export to BIDS format
*Preprocessing:*
- ``HighPassFilter``, ``LowPassFilter``, ``BandPassFilter``, ``NotchFilter``
- ``UpSample``, ``DownSample``, ``Resample``
- ``TriggerDetector``, ``QRSTriggerDetector``, ``MissingTriggerDetector``
- ``TriggerAligner``, ``SubsampleAligner``
*Correction:*
- ``AASCorrection`` - Averaged Artifact Subtraction (refactored)
- ``ANCCorrection`` - Adaptive Noise Cancellation (refactored)
- ``PCACorrection`` - PCA-based correction (refactored)
*Evaluation:*
- ``SNRCalculator`` - Signal-to-noise ratio
- ``RMSCalculator`` - RMS ratio
- ``MedianArtifactCalculator`` - Median artifact amplitude
- ``MetricsReport`` - Formatted metrics output
*Composite:*
- ``SequenceProcessor`` - Sequential execution
- ``ConditionalProcessor`` - Conditional execution
- ``SwitchProcessor`` - Switch between processors
- ``NoOpProcessor`` - No-op placeholder
- ``LambdaProcessor`` - Lambda function wrapper
**Features**
- Full type hints throughout codebase
- Parallel processing support (channel-wise parallelization)
- Plugin system with decorator-based registration
- Processing history tracking
- Immutable context pattern
- First-class MNE integration
- Detailed logging with loguru
**Documentation**
- Complete API reference
- User guide (architecture, pipelines, processors, parallel processing, custom processors)
- Migration notes in examples and updated API docstrings
- Tutorial and examples
- Comprehensive docstrings (NumPy style)
**Testing**
- Unit tests for all processors
- Integration tests for workflows
- Test fixtures and utilities
- Coverage tracking
- Pytest markers for test organization