Performs a union on underlying ClusterResolvers.
This class performs a union given two or more existing ClusterResolvers. It merges the underlying ClusterResolvers, and returns one unified ClusterSpec when cluster_spec is called. The details of the merge function is documented in the cluster_spec function.
Initializes a UnionClusterResolver with other ClusterResolvers.
ClusterResolverobjects to be unionized.
TypeError: If any argument is not a subclass of
ValueError: If there are no arguments passed.
Returns a union of all the ClusterSpecs from the ClusterResolvers.
A ClusterSpec containing host information merged from all the underlying ClusterResolvers.
KeyError: If there are conflicting keys detected when merging two or more dictionaries, this exception is raised.
If all underlying ClusterSpecs expose the set of workers as lists, we will concatenate the lists of workers, starting with the list of workers from the first ClusterResolver passed into the constructor.
If any of the ClusterSpecs expose the set of workers as a dict, we will
treat all the sets of workers as dicts (even if they are returned as lists)
and will only merge them into a dict if there is no conflicting keys. If
there is a conflicting key, we will raise a
master returns the master address from the first cluster resolver.