-
Notifications
You must be signed in to change notification settings - Fork 0
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
Make "combine cubes" function public. #82
base: load_refactor
Are you sure you want to change the base?
Conversation
9c7df0b
to
8986330
Compare
@@ -634,6 +634,67 @@ def concatenate( | |||
check_derived_coords=check_derived_coords, | |||
) | |||
|
|||
def combine(self, options=None, merge_require_unique=False, **kwargs): | |||
"""Combine cubes according to :class:`iris~.io.loading.LoadPolicy` options. |
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 wonder if there may be some confusion caused by the link between CubeList.combine
and LoadPolicy
as it may not be intuitive that changing the latter would affect the former. There may be a way of naming this method so that this connection is clearer. Something like "apply_load_policy" or "combine_like_load".
I suppose there is an idea of having separate objects controlling loading and combining (i.e. a CombinePolicy object), but I think that would probably overcomplicate things.
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 wonder if there may be some confusion caused by the link between
CubeList.combine
andLoadPolicy
... a way of naming this method ... like "apply_load_policy" or "combine_like_load".
As discussed today in @SciTools/peloton :
@pp-mo yes I do agree that this is a bit mixed up.
TBH I think it's a result of my hurrying to get LOAD_POLICY + friends into the Iris 3.11 release, while not including combine_cubes
, or referring to it, because there was not time (!)
In retrospect, I wish the loading controls referred to combine_cubes
directly as in a former draft. And since @stephenworsley suggested making 'combine_cubes' a public thing, making all this "one thing" would have been preferable!
So with some hindsight, I would now favour :
- rename LoadPolicy as CombinePolicy
- include the "merge_unique" keyword as an option (attribute) of CombinePolicy
- explicitly reference
combine_cubes
in the docs for LOAD_POLICY
@trexfeathers pointed out, a desire to rename 'LoadPolicy' is not worth making an rc1 release for. But we can still do all the above, subsequent to 3.11, while leaving LoadPolicy
in the top-level Iris API, as an (effective) alias of CombinePolicy
.
Where from here ?
I'll set about making those changes here + we can see what it looks like
NOTE: converted to draft. |
WIP : we will want to wait on Iris#6199 before merging.
For now, I'm targetting that PR rather than Iris/main, so it's clear what the actual changes here are.