docs: def bandana(self, emin=-np.inf, emax=np.inf):
          """Cut out bands outside the range (emin,emax)"""
          bandmin = np.min(self.ebands, axis=1)
          bandmax = np.max(self.ebands, axis=1)
          ii = np.nonzero(bandmin < emax)
          nemax = ii[0][-1]
          ii = np.nonzero(bandmax > emin)
          nemin = ii[0][0]
          # BoltzTraP2.misc.info("BANDANA output")
          # for iband in range(len(self.ebands)):
          # BoltzTraP2.misc.info(iband, bandmin[iband], bandmax[iband], (
          # (bandmin[iband] < emax) & (bandmax[iband] > emin)))
          self.ebands = self.ebands[nemin:nemax]
  
          if isinstance(self.proj, np.ndarray):
              self.proj = self.proj[:,nemin:nemax,:,:]
  
          if self.mommat is not None:
              self.mommat = self.mommat[:, nemin:nemax, :]
          # Removing bands may change the number of valence electrons
          if self.nelect is not None:
              self.nelect -= self.dosweight * nemin
          return nemin, nemax