|View source on GitHub|
Base class for resolver.
Resolver is the logical unit that will be used optionally for input selection.
A resolver subclass must override the resolve_artifacts() function which takes
a dict of
tfx.orchestration.metadata.Metadata, source_channels: Dict[Text,
tfx.types.Channel] ) ->
Resolves artifacts from channels by querying MLMD.
||PipelineInfo of the current pipeline. We do not want to query artifacts across pipeline boundary.|
||a read-only handler to query MLMD.|
||a key -> channel dict which contains the info of the source channels.|
|a ResolveResult instance.|
||when it is called.|
tfx.orchestration.metadata.Metadata, input_dict: Dict[Text, List[types.Artifact]] ) -> Optional[Dict[Text, List[types.Artifact]]]
Resolves artifacts from channels, optionally querying MLMD if needed.
In asynchronous execution mode, resolver classes may composed in sequence where the resolve_artifacts() result from the previous resolver instance would be passed to the next resolver instance's resolve_artifacts() inputs.
If resolve_artifacts() returns None, it is considered as "no inputs available", and the remaining resolvers will not be executed.
Also if resolve_artifacts() omits any key from the input_dict it will not be available from the downstream resolver instances. General recommendation is to preserve all keys in the input_dict unless you have specific reason.
||A metadata handler to access MLMD store.|
||The input_dict to resolve from.|
|If all entries has enough data after the resolving, returns the resolved input_dict. Otherise, return None.|