Refactor 24 trend#198
Open
gonzalezma wants to merge 478 commits into
Open
Conversation
There is no longer a _raw_metadata parameter
…d return in NDRebin __call__
* Data sketch * Units now available and grouped * More units, towards formatting * Units and accessors draft ready to begin tests on * Some tests * Work towards new data object * Accessor changes * Remove duplicate evaluate function. * Removes duplicate code * Fills out log operations * Adds log evaluation tests * Tidies up operations code * Corrects derivative for Div operation * Adds tests * Refactors Log operation * Ruff format * Removes unnecessary file --------- Co-authored-by: lucas-wilkins <lucas.wilkins@stfc.ac.uk> Co-authored-by: James Crake-Merani <James.Crake-Merani@stfc.ac.uk>
* Adds exp operation and corrects log derivatives * Adjusts math library imports * Adds trig operations * Adds evaluation tests * Corrects unary clean signatures * Adds tests * Adds clean for exp and ln * Adds parameterised fixtures * Addresses review comments
…h is defined by one or the other, and they are not the same. IMO, we assume the width values given in the dQ column correspond to sigma.
…et methods do not exist. Valid solution or should we implement _raw_metadata and children?
…Using a dict now for the axis and changed also name to plural: Trend.trend_axes, so unit tests changed accordingly
There was a problem hiding this comment.
No quality gates enabled for this code.
See analysis details in CodeScene
Quality Gate Profile: Custom Configuration
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.
krzywon
reviewed
Mar 24, 2026
| if self.contents: | ||
| if type(self.contents) is str: | ||
| match self.contents: | ||
| case str(): |
Collaborator
There was a problem hiding this comment.
The string, Quantity and ndarray cases are exactly the same as the default case. Maybe just remove all but the default?
Comment on lines
26
to
+31
| else: | ||
| return current_item.data | ||
| raise ValueError('End of path without finding a dataset.') | ||
| # Not a list, can't navigate further | ||
| raise ValueError('Path does not lead to a valid metadatum.') | ||
|
|
||
| if current_item is None: | ||
| raise ValueError('Path does not lead to a valid metadatum.') |
Collaborator
There was a problem hiding this comment.
Duplicate errors. Combine?
|
|
||
| # Warn about filtered items | ||
| if invalid_indices: | ||
| print(f"Warning: Removed data items at indices {invalid_indices} - not SasData objects or missing/invalid metadata") |
Collaborator
There was a problem hiding this comment.
The print statements should probably be changed to logging.warn.
| for axis_name, axis_config in self.trend_axes.items(): | ||
| if isinstance(axis_config, list) and not isinstance(axis_config[0], str): | ||
| # This is a manual value list (not a path) | ||
| if len(axis_config) != len(self.data): |
|
|
||
| axis_config = self.trend_axes[axis_name] | ||
|
|
||
| if isinstance(axis_config, list) and len(axis_config) > 0 and isinstance(axis_config[0], str): |
Collaborator
There was a problem hiding this comment.
This check is already performed when creating the trend. Is this necessary?
90413d7 to
dd691e0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Proposition to modify the original Trend class. The idea is that one can define as many axes as desired, using a dict to store them. Each axis can be linked to a metadata (given a list with the path to the metadata as before) or generated "on the fly" (in this case one has also to give a list, with the constraints that the first element must NOT be a string and the number of elements in the list must be equal to the number of SasData objects in data. Are these limitations OK)?
If it is agreed that this is the right way, next steps should be to clean up a little bit the code and add new utests.