code: def channel_dict_kwarg(value, channels, types=None, astype=None):
      
      if types is not None and isinstance(value, tuple(types)):
          out = dict((c, value) for c in channels)
      elif isinstance(value, (tuple, list)):
          out = dict(zip(channels, value))
      elif value is None:
          out = dict()
      elif isinstance(value, dict):
          out = value.copy()
      else:
          return None
      if astype is not None:
          return dict((key, astype(out[key])) for key in out)
      return out
docs: Format the given kwarg value in a dict with one value per channel
  
      Parameters
      ----------
      value : any type
          keyword argument value as given by user
  
      channels : `list`
          list of channels being read
  
      types : `list` of `type`
          list of valid object types for value
  
      astype : `type`
          output type for `dict` values
  
      Returns
      -------
      dict : `dict`
          `dict` of values, one value per channel key, if parsing is successful
      None : `None`
          `None`, if parsing was unsuccessful