def _get_relevance( category: diagnostic_pb2.DiagnosticCategory, project: scoring.ScoringProject) \ -> Tuple['diagnostic_pb2.CategoryRelevance', Set[str]]: try: if project.check_filters(category.filters): return diagnostic_pb2.NEEDS_ATTENTION, set() missing_fields: Set[str] = set() except scoring.NotEnoughDataException as err: # We don't have enough info about this category for the project, # so we let the relevance model decide. missing_fields = err.fields return _get_relevance_from_its_model(category, project, bool(missing_fields)), missing_fields
def _get_relevance( main_challenge: diagnostic_pb2.DiagnosticMainChallenge, project: scoring.ScoringProject, should_be_neutral: bool) \ -> Tuple['diagnostic_pb2.MainChallengeRelevance.V', Set[str]]: try: if project.check_filters(main_challenge.filters): if should_be_neutral: return diagnostic_pb2.NEUTRAL_RELEVANCE, set() return diagnostic_pb2.NEEDS_ATTENTION, set() missing_fields: Set[str] = set() except scoring.NotEnoughDataException as err: # We don't have enough info about this main challenge for the project, # so we let the relevance model decide. missing_fields = err.fields return _get_relevance_from_its_model(main_challenge, project, bool(missing_fields), should_be_neutral), missing_fields