-
Notifications
You must be signed in to change notification settings - Fork 129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove hdf4 support from NexusCpp #38954
Remove hdf4 support from NexusCpp #38954
Conversation
2cd36c9
to
344015c
Compare
👋 Hi, @peterfpeterson, Conflicts have been detected against the base branch. Please rebase your branch against the base branch. |
14777bf
to
971c9cc
Compare
👋 Hi, @peterfpeterson, Conflicts have been detected against the base branch. Please rebase your branch against the base branch. |
971c9cc
to
4e28a7b
Compare
4e28a7b
to
4717a8b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure how to review LoadILLTOF3, and will need to do that tomorrow. Here are some comments on the rest
@@ -262,7 +262,7 @@ class LoadDetectorInfoTest : public CxxTest::TestSuite { | |||
|
|||
makeTestWorkspace(SmallTestDatFile::NDETECTS, NBINS, m_InoutWS); | |||
loadDetInfo.setPropertyValue("Workspace", m_InoutWS); | |||
loadDetInfo.setPropertyValue("DataFilename", "argus0026287.nxs"); | |||
loadDetInfo.setPropertyValue("DataFilename", "ARGUS00073601.nxs"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why was this change necessary?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That was a fix from Ross. I assume that it was an issue with FileFinder
/ ArchiveSearch
forgetting what the instrument is
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But doesn't changing the file used for the test, effectively change what the test is testing? If it was necessary, it suggests some behavior changed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure why. It is a Ross change
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rosswhitfield Was this change necessary, or is this file just faster to work with?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@MialLewis is this instrument a muon instrument?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This appears to be another hidden hdf4 based usage. For most everything else we've copied the code into the LegacyNexus portion of things. However, the way LoadDetectorInfo
is used by muons isn't entirely clear. We need @MialLewis's advice
$ rg LoadDetectorInfo -l -t cpp -t py | grep -v LoadDetectorInfo
scripts/Inelastic/Direct/RunDescriptor.py
Testing/SystemTests/tests/framework/LoadLotsOfFiles.py
Framework/WorkflowAlgorithms/src/DgsConvertToEnergyTransfer.cpp
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I changed the test data from a HDF4 file to HDF5 just to get the test to pass but we should check if they need LoadDetectorInfo
to support HDF4.
I also removed the HDF4 file from the StartAndEndTimeFromNexusFileExtractorTest
because I didn't see any HDF4 algorithms using the extractStartTime
or extractEndTime
functions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ARGUS
is indeed a Muon instrument - I've passed this question on to a Muon scientist to see if they actually use this algorithm.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Documenting the discussion that happened on slack. This particular issue (ARGUS) is being resolved by deleting it for now. If we need it later, the code will be resurrected.
9d622ee
to
204b4bc
Compare
👋 Hi, @peterfpeterson, Conflicts have been detected against the base branch. Please rebase your branch against the base branch. |
204b4bc
to
292daf3
Compare
This required copying a bunch of code from LoadHelper over into the LoadILLTOF2 cpp file.
292daf3
to
7d9f09d
Compare
By not suggesting a loader, this uses generic load which correctly selects the correct version of LoadILLTOF.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am accepting the ARGUS issue as resolved. That was my only hesitation. All looks good.
This removes hdf4 from
FrameworkNexus
in its entirety.LoadILLTOF2 was converted to use LegacyNexus (to support legacy hdf4 files) and LoadILLTOF3 is a copy that uses Nexus (hdf5). There is also a new set of tests for
FileLoaderRegistry
which helped figure out which loaders support which backend.The change to
LegacyNexus
's make is because I discovered it was usingset_target_properties
incorrectly and the flag was making it in through find cmake find modules.Refs #38332
To test:
This is mostly a refactor of code and additional unit tests were added to help verify it is working.
This does not require release notes because it is part of the nexus API consolidation which will have a more extensive write-up.
Reviewer
Please comment on the points listed below (full description).
Your comments will be used as part of the gatekeeper process, so please comment clearly on what you have checked during your review. If changes are made to the PR during the review process then your final comment will be the most important for gatekeepers. In this comment you should make it clear why any earlier review is still valid, or confirm that all requested changes have been addressed.
Code Review
Functional Tests
Does everything look good? Mark the review as Approve. A member of
@mantidproject/gatekeepers
will take care of it.Gatekeeper
If you need to request changes to a PR then please add a comment and set the review status to "Request changes". This will stop the PR from showing up in the list for other gatekeepers.