def resolve( self, metadata_handler: metadata.Metadata, source_channels: Dict[Text, types.Channel], ) -> base_resolver.ResolveResult: artifacts_dict = {} resolve_state_dict = {} for k, c in source_channels.items(): previous_artifacts = sorted(metadata_handler.get_artifacts_by_type( c.type_name), key=lambda m: m.id, reverse=True) if len(previous_artifacts) >= self._desired_num_of_artifact: artifacts_dict[k] = [ _generate_tfx_artifact(a, c.type) for a in previous_artifacts[:self._desired_num_of_artifact] ] resolve_state_dict[k] = True else: artifacts_dict[k] = [ _generate_tfx_artifact(a, c.type) for a in previous_artifacts ] resolve_state_dict[k] = False return base_resolver.ResolveResult( per_key_resolve_result=artifacts_dict, per_key_resolve_state=resolve_state_dict)
def resolve( self, metadata_handler: metadata.Metadata, source_channels: Dict[Text, types.Channel], ) -> base_resolver.ResolveResult: artifacts_dict = {} for k, c in source_channels.items(): previous_artifacts = metadata_handler.get_artifacts_by_type(c.type_name) if previous_artifacts: latest_mlmd_artifact = max(previous_artifacts, key=lambda m: m.id) result_artifact = types.Artifact(type_name=c.type_name) result_artifact.set_artifact(latest_mlmd_artifact) artifacts_dict[k] = ([result_artifact], True) else: artifacts_dict[k] = ([], False) return base_resolver.ResolveResult(per_key_resolve_result=artifacts_dict)