code: def determine_coords(list_of_variable_dicts):
      # type: (List[Dict]) -> Tuple[Set, Set]
      
      from .dataarray import DataArray
      from .dataset import Dataset
  
      coord_names = set()  # type: set
      noncoord_names = set()  # type: set
  
      for variables in list_of_variable_dicts:
          if isinstance(variables, Dataset):
              coord_names.update(variables.coords)
              noncoord_names.update(variables.data_vars)
          else:
              for name, var in variables.items():
                  if isinstance(var, DataArray):
                      coords = set(var._coords)  # use private API for speed
                      # explicitly overwritten variables should take precedence
                      coords.discard(name)
                      coord_names.update(coords)
  
      return coord_names, noncoord_names
docs: Given a list of dicts with xarray object values, identify coordinates.
  
      Parameters
      ----------
      list_of_variable_dicts : list of dict or Dataset objects
          Of the same form as the arguments to expand_variable_dicts.
  
      Returns
      -------
      coord_names : set of variable names
      noncoord_names : set of variable names
          All variable found in the input should appear in either the set of
          coordinate or non-coordinate names.