docs: def check_overlap(a, b):
      """Check for wavelength overlap between two spectra.
  
      .. note::
  
          Generalized from
          :meth:`pysynphot.spectrum.SpectralElement.check_overlap`.
  
      Parameters
      ----------
      a, b : `~pysynphot.spectrum.SourceSpectrum` or `~pysynphot.spectrum.SpectralElement`
         Typically a source spectrum, spectral element, observation,
         or bandpass from observation mode.
  
      Returns
      -------
      result : {'full', 'partial', 'none'}
          Full, partial, or no overlap.
  
      Raises
      ------
      AttributeError
          Given spectrum does not have flux or throughput.
  
      """
      if a.isAnalytic or b.isAnalytic:
          #then it's defined everywhere
          result = 'full'
      else:
          #get the wavelength arrays
          waves = list()
          for x in (a, b):
              if hasattr(x,'throughput'):
                  wv = x.wave[np.where(x.throughput != 0)]
              elif hasattr(x,'flux'):
                  wv = x.wave
              else:
                  raise AttributeError("neither flux nor throughput in %s"%x)
              waves.append(wv)
  
          #get the endpoints
          a1,a2 = waves[0].min(), waves[0].max()
          b1,b2 = waves[1].min(), waves[1].max()
  
          #do the comparison
          if (a1>=b1 and a2<=b2):
              result = 'full'
          elif (a2<b1) or (b2<a1):
              result = 'none'
          else:
              result = 'partial'
  
      return result