docs: def _update_bounds_attributes(variables):
      """Adds time attributes to time bounds variables.
  
      Variables handling time bounds ("Cell boundaries" in the CF
      conventions) do not necessarily carry the necessary attributes to be
      decoded. This copies the attributes from the time variable to the
      associated boundaries.
  
      See Also:
  
      http://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/
           cf-conventions.html#cell-boundaries
  
      https://github.com/pydata/xarray/issues/2565
      """
  
      # For all time variables with bounds
      for v in variables.values():
          attrs = v.attrs
          has_date_units = 'units' in attrs and 'since' in attrs['units']
          if has_date_units and 'bounds' in attrs:
              if attrs['bounds'] in variables:
                  bounds_attrs = variables[attrs['bounds']].attrs
                  bounds_attrs.setdefault('units', attrs['units'])
                  if 'calendar' in attrs:
                      bounds_attrs.setdefault('calendar', attrs['calendar'])