예제 #1
0
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
예제 #2
0
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