why using a generator? the psds of all channels across trials is small. Not bigger than epochs.get_data()

I'd have compute_epochs_psd return (psds, freqs) where psds.shape = n_epochs, n_channels, n_freqs
basically times is replaced by frequency