Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is
veryhacky - just showing how something like this could look.Code needs tidying
and removing a bunch of copy pastes!Add LiveAnalysisThis is similar to DefaultAnalysis, but with a stripped back implementation to handle only reading result channels and pushing to other datasetsAdds LiveAnalysisRunner, which handles the live_analysis passed from
ExpFragment.get_live_analyses
The required CustomAnalysis classes are determined at build time through similar filters
A change that is worth discussion, at run time the
dataset_prefix
is passed from theTopLevelRunner
to the fragment. This allows the fragment to access datasets at run time which is very useful for the live analysis.Most of the changes toFragment
stem from theScanRunner
not having access to theTopLevelRunner
. For theDefaultAnalysis
this is run after theScanRunner
is done and so isn't an issue.We could pass theTopLevelRunner
as an argument toScanRunner.run
and then call thelive_analysis
onTopLevelRunner
.Alternatively (and perhaps most sensibly) we pass the
LiveAnalysis
objects down to theScanRunner
and haveScanRunner
handle them. - Have done this through the LiveAnalysisRunnerOf course, this is all assuming we want to stick with a model roughly like the
LiveAnalysis