code: def _wrap(value):
      
      if is_primitive(value):
          return value
      if isinstance(value, (dict, set)) or is_namedtuple(value):
          return value
      elif isinstance(value, collections.Iterable):
          try:
              if type(value).__name__ == 'DataFrame':
                  import pandas
                  if isinstance(value, pandas.DataFrame):
                      return Sequence(value.values)
          except ImportError: # pragma: no cover
              pass
  
          return Sequence(value)
      else:
          return value
docs: Wraps the passed value in a Sequence if it is not a primitive. If it is a string
      argument it is expanded to a list of characters.
  
      >>> _wrap(1)
      1
  
      >>> _wrap("abc")
      ['a', 'b', 'c']
  
      >>> type(_wrap([1, 2]))
      functional.pipeline.Sequence
  
      :param value: value to wrap
      :return: wrapped or not wrapped value