code: def get_manual_classification_line(self):
          
          try:
              text_log_error = TextLogError.objects.get(step__job=self)
          except (TextLogError.DoesNotExist, TextLogError.MultipleObjectsReturned):
              return None
  
          # Can this TextLogError be converted into a single "useful search"?
          # FIXME: what is the significance of only one search result here?
          from treeherder.model.error_summary import get_useful_search_results
          search_results = get_useful_search_results(self)
          if len(search_results) != 1:
              return None
  
          # Check that we have a related FailureLine
          failure_line = text_log_error.get_failure_line()
          if failure_line is None:
              return None
  
          # Check our FailureLine is in a state we expect for
          # auto-classification.
          if not (failure_line.action == "test_result" and
                  failure_line.test and
                  failure_line.status and
                  failure_line.expected):
              return None
  
          return text_log_error
docs: If this Job has a single TextLogError line, return that TextLogError.
  
          Some Jobs only have one related [via TextLogStep] TextLogError.  This
          method checks if this Job is one of those (returning None if not) by:
          * checking the number of related TextLogErrors
          * counting the number of search results for the single TextLogError
          * checking there is a related FailureLine
          * checking the related FailureLine is in a given state
  
          If all these checks pass the TextLogError is returned, any failure returns None.