A lot of the code/experiments needs access to static information such as:
device name
experiment name
subject id
session id
data directory
record duration
It would probably be a good idea to add a dataclass for this, that'll be easier to pass around without having to repeat the same set of arguments every time.
The idea would be that once you've constructed a ExperimentSpec, you can:
Run the experiment: expspec.run()
Get an EEG instance: expspec.device (generated from input arguments at initialization)
Generate a savefile: expspec.generate_output_file() (see #74)
Write new experiments by simply having their present functions accept the single argument spec which contains all metadata possibly needed by the experiment.
This can maybe be implemented with a simple configuration files instead of starting a whole new dataclass but perhaps being able to do things like expspec.run() might be useful so I will play around with this.
A lot of the code/experiments needs access to static information such as:
It would probably be a good idea to add a dataclass for this, that'll be easier to pass around without having to repeat the same set of arguments every time.
The idea would be that once you've constructed a ExperimentSpec, you can:
expspec.run()
EEG
instance:expspec.device
(generated from input arguments at initialization)expspec.generate_output_file()
(see #74)present
functions accept the single argumentspec
which contains all metadata possibly needed by the experiment.Essentially: