docs: def _get_virtual_variable(variables, key, level_vars=None, dim_sizes=None):
      """Get a virtual variable (e.g., 'time.year' or a MultiIndex level)
      from a dict of xarray.Variable objects (if possible)
      """
      if level_vars is None:
          level_vars = {}
      if dim_sizes is None:
          dim_sizes = {}
  
      if key in dim_sizes:
          data = pd.Index(range(dim_sizes[key]), name=key)
          variable = IndexVariable((key,), data)
          return key, key, variable
  
      if not isinstance(key, str):
          raise KeyError(key)
  
      split_key = key.split('.', 1)
      if len(split_key) == 2:
          ref_name, var_name = split_key
      elif len(split_key) == 1:
          ref_name, var_name = key, None
      else:
          raise KeyError(key)
  
      if ref_name in level_vars:
          dim_var = variables[level_vars[ref_name]]
          ref_var = dim_var.to_index_variable().get_level_variable(ref_name)
      else:
          ref_var = variables[ref_name]
  
      if var_name is None:
          virtual_var = ref_var
          var_name = key
      else:
          if _contains_datetime_like_objects(ref_var):
              ref_var = xr.DataArray(ref_var)
              data = getattr(ref_var.dt, var_name).data
          else:
              data = getattr(ref_var, var_name).data
          virtual_var = Variable(ref_var.dims, data)
  
      return ref_name, var_name, virtual_var