class_docstr: Immutable container for global conversion flags.
  
  Attributes:
    recursive: bool, whether to recursively convert any user functions or
      classes that the converted function may use.
    user_requested: bool, whether the conversion was explicitly requested by
      the user, as opposed to being performed as a result of other logic. This
      value always auto-resets to False in child conversions.
    optional_features: Union[Feature, Set[Feature]], controls the use of
      optional features in the conversion process. See Feature for available
      options.
code: def __init__(
      self,
      recursive=False,
      user_requested=False,
      internal_convert_user_code=True,
      optional_features=Feature.ALL,
  ):
      self.recursive = recursive
      self.user_requested = user_requested
      # TODO(mdan): Rename to conversion_recursion_depth?
      self.internal_convert_user_code = internal_convert_user_code
  
      if optional_features is None:
          optional_features = ()
      elif isinstance(optional_features, Feature):
          optional_features = (optional_features,)
      optional_features = frozenset(optional_features)
      self.optional_features = optional_features
  
imports: import enum
  from tensorflow.python.autograph.pyct import anno
  from tensorflow.python.autograph.pyct import ast_util
  from tensorflow.python.autograph.pyct import parser
  from tensorflow.python.autograph.pyct import templates
  from tensorflow.python.autograph.pyct import transformer
  from tensorflow.python.util.tf_export import tf_export
label_desc: Use image node_id 1 to create a new ConversionOptions object from inherited base classes: object with example: obj = ConversionOptions(recursive, user_requested, internal_convert_user_code, optional_features)