예제 #1
0
def _get_project_requirements(project):
    no_requirements = job_pb2.JobRequirements()
    rome_id = project.target_job.job_group.rome_id
    if not rome_id:
        return no_requirements

    job_group_info = _job_groups_info().get(rome_id)
    if not job_group_info:
        return no_requirements

    return job_group_info.requirements
예제 #2
0
def _get_job_requirements(rome_id):
    no_requirements = job_pb2.JobRequirements()

    if not rome_id:
        return no_requirements

    job_group_info = jobs.get_group_proto(_DB, rome_id)
    if not job_group_info:
        return no_requirements

    return job_group_info.requirements
예제 #3
0
def _get_handcrafted_job_requirements(project: scoring_base.ScoringProject) \
        -> Optional[job_pb2.JobRequirements]:
    """Handcrafted job requirements for the target job."""

    handcrafted_requirements = job_pb2.JobRequirements()
    all_requirements = project.job_group_info().requirements
    handcrafted_fields = [
        field for field in job_pb2.JobRequirements.DESCRIPTOR.fields_by_name.keys()
        if field.endswith('_short_text')]
    has_requirements = False
    for field in handcrafted_fields:
        field_requirements = getattr(all_requirements, field)
        if field_requirements:
            has_requirements = True
            setattr(handcrafted_requirements, field, field_requirements)
    if not has_requirements:
        return None
    return handcrafted_requirements