def clean_program(self):
program_id = self.cleaned_data[self.Fields.PROGRAM].strip()<EOL>if not program_id:<EOL><INDENT>return None<EOL><DEDENT>try:<EOL><INDENT>client = CourseCatalogApiClient(self._user, self._enterprise_customer.site)<EOL>program = client.get_program_by_uuid(program_id) or client.get_program_by_title(program_id)<EOL><DEDENT>except MultipleProgramMatchError as exc:<EOL><INDENT>raise ValidationError(ValidationMessages.MULTIPLE_PROGRAM_MATCH.format(program_count=exc.programs_matched))<EOL><DEDENT>except (HttpClientError, HttpServerError):<EOL><INDENT>raise ValidationError(ValidationMessages.INVALID_PROGRAM_ID.format(program_id=program_id))<EOL><DEDENT>if not program:<EOL><INDENT>raise ValidationError(ValidationMessages.INVALID_PROGRAM_ID.format(program_id=program_id))<EOL><DEDENT>if program['<STR_LIT:status>'] != ProgramStatuses.ACTIVE:<EOL><INDENT>raise ValidationError(<EOL>ValidationMessages.PROGRAM_IS_INACTIVE.format(program_id=program_id, status=program['<STR_LIT:status>'])<EOL>)<EOL><DEDENT>return program<EOL>
Clean program.

Try obtaining program treating form value as program UUID or title.

Returns:
    dict: Program information if program found