class_docstr: An immutable partition with multiple dimension (str -> int).
  
  Partition is used together with _join as a key to join values.
  
  - If partition dimensions does not overlap at all, then joined result is a
  cartesian product.
  - If partition dimensions are exactly the same, then the joined result is a
  zip().
  - If partition dimensions partially overlaps, then the overlapping dimensions
  are zipped, and distinct dimensions are cartesian producted.
code: def __or__(self, other) -> "Partition":
      common_dims = list(set(self) & set(other))
      other_partial = tuple(other[d] for d in common_dims)
      if self.partial(common_dims) != other_partial:
          raise ValueError(
              f"Cannot merge {self} and {other} on {common_dims}"
          )
      return Partition({**self, **other})
  
file_path: tfx/tfx/orchestration/portable/input_resolution/partition_utils.py
imports: import collections
  from typing import Callable, Mapping, Sequence, Tuple, TypeVar
label_desc: Use image node_id 3 for calling the Partition obj's underlying member method code with example usage: obj.__or__(other) and returns: Partition