code: def validate_block(self):
          '''
          This method is a multi-stage process which repairs row titles, then repairs column titles,
          then checks for invalid rows, and finally for invalid columns.
  
          This maybe should have been written via state machines... Also suggested as being possibly
          written with code-injection.
          '''
          # Don't allow for 0 width or 0 height blocks
          if self._check_zero_size():
              return False
          # Single width or height blocks should be considered
          self._check_one_size()
  
          # Repair any obvious block structure issues
          self._repair_row()
          self._repair_column()
  
          # Fill any remaining empty titles if we're not a complete block
          if not self.complete_block:
              self._fill_row_holes()
              self._fill_column_holes()
  
          # Check for invalid data after repairs
          self._validate_rows()
          self._validate_columns()
  
          # We're valid enough to be used -- though error flags may have
          # been thrown into flags.
          return Truf validate_block(self):
          '''
          This method is a multi-stage process which repairs row titles, then repairs column titles,
          then checks for invalid rows, and finally for invalid columns.
  
          This maybe should have been written via state machines... Also suggested as being possibly
          written with code-injection.
          '''
          # Don't allow for 0 width or 0 height blocks
          if self._check_zero_size():
              return False
          # Single width or height blocks should be considered
          self._check_one_size()
  
          # Repair any obvious block structure issues
          self._repair_row()
          self._repair_column()
  
          # Fill any remaining empty titles if we're not a complete block
          if not self.complete_block:
              self._fill_row_holes()
              self._fill_column_holes()
  
          # Check for invalid data after repairs
          self._validate_rows()
          self._validate_columns()
  
          # We're valid enough to be used -- though error flags may have
          # been thrown into flags.
          return True
docs: This method is a multi-stage process which repairs row titles, then repairs column titles,
          then checks for invalid rows, and finally for invalid columns.
  
          This maybe should have been written via state machines... Also suggested as being possibly
          written with code-injection.