kirtonBCIlab / bci-essentials-python

Python backend for BCI Essentials
Mozilla Public License 2.0
11 stars 7 forks source link

Injecting classifier into EEG_data #76

Closed gregbci closed 10 months ago

gregbci commented 10 months ago

B4K-216

EEG_data was refactored to take the classifier at init time. If no classifier is provided EEG_data will use Null_classifier instead.

EEG_data's reference to the classifier is protected, meaning only sub classes (ERP_data) can touch it. I cleaned up all the tests/examples that were "reaching into" EEG_data to access the classifier.

Note - some of the EEG_data use cases are a bit tangential, which makes injecting a classifier seem wrong. For example: eeg_lsl_sim.py. This uses EEG_data essentially to load a file. In a few more steps, the data loading will be handled by a class that's injected into EEG_data. That means, eeg_lsl_sim.py won't need to depend on EEG_data and the need to inject a classifier will disappear. For compatibility, I made the default classifier Null_classifier, but I think this should be a required parameter in the future. Refactoring can be like that, getting messier as we step out of the local minima.

brianjohannes commented 10 months ago

Looks great! Thanks Greg!