As discussed with @gsell we should implement base classes for plotting in order to avoid the if-statements
if not isinstance(ds, DatasetBase): raise TypeError("Dataset '" + ds.filename + "' not derived from 'DatasetBase'.") if not ds.filetype == FileType.OPTIMIZER: raise TypeError(ds.filename + ' is not an optimizer dataset.')
Each dataset would also be derived from the appropriate plotter class. This would also simplify adding new methods and avoiding errors.