code: def check_option(self, key, subkey, value):
          
          key, subkey = _lower_keys(key, subkey)
          _entry_must_exist(self.gc, key, subkey)
  
          df = self.gc[(self.gc["k1"] == key) & (self.gc["k2"] == subkey)]
          ev.value_eval(value, df["type"].values[0])
          if df["values"].values[0] is not None:
              return value in df["values"].values[0]
          return True
docs: Evaluate if a given value fits the option.
  
          If an option has a limited set of available values, check if the
          provided value is amongst them.
  
          :param str key: First identifier of the option.
          :param str subkey: Second identifier of the option.
          :param value: Value to test (type varies).
  
          :return: :class:`bool` - does ``value`` belong to the options?
  
          :raise:
              :NotRegisteredError: If ``key`` or ``subkey`` do not define any
                  option.
              :ValueError: If the provided value is not the expected
                  type for the option.