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.
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
DM-21448: Clean up DatasetRef comparisons and immutability #210
DM-21448: Clean up DatasetRef comparisons and immutability #210
Changes from all commits
59b3083
9647e5b
be39541
0409f17
2652dad
82b2ec9
a450932
4ed4e0b
d815bee
d020192
e203fa2
e792d73
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
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 think this should also mention that the components supplied here overwrite any existing components but also merged with the existing ones. If this is a resolved datasetRef should we check that all the components have resolved dataset refs? Should we check they have the same run? What if there are some unresolved components and this call only overwrites some of them with resolved versions?
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.
So, I'm pretty sure we have concrete uses for:
DatasetRefs
with componentsDatasetRefs
without componentsDatasetRefs
without componentswhere by "without components" I mean that the
DatasetRef
doesn't know about any components it might have, even if they exist, because it's just a wasteful to do anything with them because we know they won't be used.The dataset-insertion interplay between
Registry
andDatastore
is also a lot simpler if we allow the components to be updated in-place in aDatasetRef
(and I think that's okay w.r.t. immutability, since components aren't used in__eq__
/__hash__
).Anyhow, with all that in mind, how about this:
components
toNone
on an unresolvedDatasetRef
. We raise in__init__
if components are passed withoutid
andrun
, and merge inresolved()
only if re-resolving an already resolvedDatasetRef
.DatasetRefs
are resolved, and that names are valid according to the storage class.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.
Sounds good to me.