<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def make_statement(self, action, mention):
 """Makes an INDRA statement from a Geneways action and action mention. Parameters action : GenewaysAction The mechanism that the Geneways mention maps to. Note that several text mentions can correspond to the same action if they are referring to the same relationship - there may be multiple Geneways action mentions corresponding to each action. mention : GenewaysActionMention The Geneways action mention object corresponding to a single mention of a mechanism in a specific text. We make a new INDRA statement corresponding to each action mention. Returns ------- statement : indra.statements.Statement An INDRA statement corresponding to the provided Geneways action mention, or None if the action mention's type does not map onto any INDRA statement type in geneways_action_type_mapper. """

        (statement_generator, is_direct) = \
            geneways_action_to_indra_statement_type(mention.actiontype,
                                                    action.plo)

        if statement_generator is None:
            # Geneways statement does not map onto an indra statement
            return None

        # Try to find the full-text sentence
        # Unfortunately, the sentence numbers in the Geneways dataset
        # don't correspond to an obvious sentence segmentation.
        # This code looks for sentences with the subject, object, and verb
        # listed by the Geneways action mention table and only includes
        # it in the evidence if there is exactly one such sentence
        text = None
        if self.get_ft_mention:
            try:
                content, content_type = get_full_text(mention.pmid, 'pmid')
                if content is not None:
                    ftm = FullTextMention(mention, content)
                    sentences = ftm.find_matching_sentences()
                    if len(sentences) == 1:
                        text = sentences[0]
            except Exception:
                logger.warning('Could not fetch full text for PMID ' +
                               mention.pmid)

        # Make an evidence object
        epistemics = dict()
        epistemics['direct'] = is_direct
        annotations = mention.make_annotation()
        annotations['plo'] = action.plo  # plo only in action table
        evidence = Evidence(source_api='geneways',
                            source_id=mention.actionmentionid,
                            pmid=mention.pmid, text=text,
                            epistemics=epistemics,
                            annotations=annotations)

        # Construct the grounded and name standardized agents
        # Note that this involves grounding the agent by
        # converting the Entrez ID listed in the Geneways data with
        # HGNC and UniProt
        upstream_agent = get_agent(mention.upstream, action.up)
        downstream_agent = get_agent(mention.downstream, action.dn)

        # Make the statement
        return statement_generator(upstream_agent, downstream_agent, evidence)