class_docstr: Type for making click options mutually exclusive.
  
  Usage:
  ```
  @option(
      '--arg-1',
      cls=MutuallyExclusiveOption,
      mutually_exclusive=["arg_2"],
      # ...
  )
  @option(
      '--arg-2',
      cls=MutuallyExclusiveOption,
      mutually_exclusive=["arg_1"],
      # ...
  )
  ```
class_docstr_tok: ["Type","for","making","click","options","mutually","exclusive",".","Usage",":","``","`","@","option","(","'","--","arg-1","'",",","cls=MutuallyExclusiveOption",",","mutually_exclusive=","[","``","arg_2","''","]",",","#","...",")","@","option","(","'","--","arg-2","'",",","cls=MutuallyExclusiveOption",",","mutually_exclusive=","[","``","arg_1","''","]",",","#","...",")","``","`"]
docstr: Initialize the option.
  
  mutually_exclusive: A list of strings that indicate incompatible options.
docstr_tok: ["Initialize","the","option",".","mutually_exclusive",":","A","list","of","strings","that","indicate","incompatible","options","."]
code: def __init__(  # type: ignore
      self,
      *args,
      **kwargs,
  ):
      """Initialize the option.
  
      mutually_exclusive: A list of strings that indicate incompatible options.
      """
      self.mutually_exclusive = frozenset(
          kwargs.pop("mutually_exclusive", [])
      )
      if len(self.mutually_exclusive) > 0:
          exclude_str = ",".join(self.mutually_exclusive)
          kwargs["help"] += f" [mutually_exclusive({exclude_str})]"
  
      super(MutuallyExclusiveOption, self).__init__(*args, **kwargs)
  
file_path: metricflow/metricflow/cli/custom_click_types.py
imports: from __future__ import annotations
  from typing import Any, Callable, Dict, Generic, List, Optional, Sequence, Tuple, TypeVar
  import click
label_desc: Use image node_id 1 to create a new MutuallyExclusiveOption object from inherited base classes: click with example: obj = MutuallyExclusiveOption()