code: def dot(self, other, dims=None):
          
          if isinstance(other, Dataset):
              raise NotImplementedError('dot products are not yet supported '
                                        'with Dataset objects.')
          if not isinstance(other, DataArray):
              raise TypeError('dot only operates on DataArrays.')
  
          return computation.dot(self, other, dims=dims)
docs: Perform dot product of two DataArrays along their shared dims.
  
          Equivalent to taking taking tensordot over all shared dims.
  
          Parameters
          ----------
          other : DataArray
              The other array with which the dot product is performed.
          dims: list of strings, optional
              Along which dimensions to be summed over. Default all the common
              dimensions are summed over.
  
          Returns
          -------
          result : DataArray
              Array resulting from the dot product over all shared dimensions.
  
          See also
          --------
          dot
          numpy.tensordot
  
          Examples
          --------
  
          >>> da_vals = np.arange(6 * 5 * 4).reshape((6, 5, 4))
          >>> da = DataArray(da_vals, dims=['x', 'y', 'z'])
          >>> dm_vals = np.arange(4)
          >>> dm = DataArray(dm_vals, dims=['z'])
  
          >>> dm.dims
          ('z')
          >>> da.dims
          ('x', 'y', 'z')
  
          >>> dot_result = da.dot(dm)
          >>> dot_result.dims
          ('x', 'y')