code: def put(self, key: Union[str, Enum], value: Any) -> "FluentDict":
      if value is None:
          pass
      elif isinstance(value, (int, float, str, dict)):
          pass
      elif isinstance(value, FluentDict):
          value = value.to_dict()
      elif isinstance(value, Enum):
          value = value.value
      elif isinstance(value, (list, tuple)):
          if len(value) > 0:
              if isinstance(value[0], Enum):
                  value = list(map(lambda enum: enum.value, value))
      else:
          raise ValueError(
              "Not supported type: " + str(value.__class__)
          )
  
      self._dict[self._key_to_str(key)] = value
      return self
  
imports: from enum import Enum
  from typing import Union, Callable, Any, Dict, Optional, Type, List, Generic, TypeVar
label_desc: Use image node_id 3 for calling the FluentDict obj's underlying member method code with example usage: obj.put(key, value) and returns: self