docs: def repertoire(self, direction, mechanism, purview):
          """Return the cause or effect repertoire based on a direction.
  
          Args:
              direction (Direction): |CAUSE| or |EFFECT|.
              mechanism (tuple[int]): The mechanism for which to calculate the
                  repertoire.
              purview (tuple[int]): The purview over which to calculate the
                  repertoire.
  
          Returns:
              np.ndarray: The cause or effect repertoire of the mechanism over
              the purview.
  
          Raises:
              ValueError: If ``direction`` is invalid.
          """
          if direction == Direction.CAUSE:
              return self.cause_repertoire(mechanism, purview)
          elif direction == Direction.EFFECT:
              return self.effect_repertoire(mechanism, purview)
  
          return validate.direction(direction)