Support absolute()
method for numeric series
#2545
Merged
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 adds support for getting the absolute value of a numeric series.
The motivating use case is being able easily to check whether two dates are within a certain range of each other without caring which comes first (see the related thread).
Note that we've chosen not to support the standard Python builtin
abs()
here. While that will be more familiar to experienced Python users, it's weirdly inconsistent with the rest of ehrQL which uses methods over function calls. Given that only a minority of our users are experienced with Python we've generally chosen to prioritise internal consistency over being Pythonic.To avoid confusing more experienced users we make the
abs()
function raise an explicit error when called with a numeric series which points the user to the.absolute()
method.We can always revisit this decision later if needed.
Closes #2544