class_docstr: Selection that is guaranteed to have an option available.
class_docstr_tok: ["Selection","that","is","guaranteed","to","have","an","option","available","."]
code: def _validate_options(self, proposal):
      if isinstance(proposal.value, Iterable) and not isinstance(
          proposal.value, Mapping
      ):
          proposal.value = tuple(proposal.value)
      # throws an error if there is a problem converting to full form
      self._options_full = _make_options(proposal.value)
      if len(self._options_full) == 0:
          raise TraitError("Option list must be nonempty")
      return proposal.value
  
imports: from itertools import chain
  from .widget_description import DescriptionWidget, DescriptionStyle
  from .valuewidget import ValueWidget
  from .widget_core import CoreWidget
  from .widget_style import Style
  from .trait_types import InstanceDict, TypedTuple
  from .widget import register, widget_serialization
  from .docutils import doc_subst
  from traitlets import Unicode, Bool, Int, Any, Dict, TraitError, CaselessStrEnum, Tuple, Union, observe, validate
  from ipython_genutils.py3compat import unicode_type
label_desc: Use image node_id 2 for calling the _MultipleSelectionNonempty obj's underlying member method code with example usage: obj._validate_options(proposal) and returns: proposal