code: def check_publish_block(self, block_header):
          
          if any(publisher_key != block_header.signer_public_key
                 for publisher_key in self._valid_block_publishers):
              return False
  
          if self._min_wait_time == 0:
              return True
  
          if self._min_wait_time < 0:
              return False
  
          assert self._min_wait_time > 0
  
          if self._max_wait_time <= 0:
              return self._start_time + self._min_wait_time <= time.time()
  
          assert self._max_wait_time > 0
  
          if self._max_wait_time <= self._min_wait_time:
              return False
  
          assert 0 < self._min_wait_time < self._max_wait_time
  
          return self._start_time + self._wait_time <= time.time()
docs: Check if a candidate block is ready to be claimed.
  
          block_header (BlockHeader): the block_header to be checked if it
              should be claimed
          Returns:
              Boolean: True if the candidate block_header should be claimed.