docs: def block_splitter(self, sources, weight=get_weight, key=lambda src: 1):
          """
          :param sources: a list of sources
          :param weight: a weight function (default .weight)
          :param key: None or 'src_group_id'
          :returns: an iterator over blocks of sources
          """
          ct = self.oqparam.concurrent_tasks or 1
          maxweight = self.csm.get_maxweight(weight, ct, source.MINWEIGHT)
          if not hasattr(self, 'logged'):
              if maxweight == source.MINWEIGHT:
                  logging.info('Using minweight=%d', source.MINWEIGHT)
              else:
                  logging.info('Using maxweight=%d', maxweight)
              self.logged = True
          return general.block_splitter(sources, maxweight, weight, key)