def METHOD_NAME(self, tokens):
    """Tags a single sentence: a list of words.
    The tokens should not contain any newline characters.
    """
    for token in tokens:
        assert "\n" not in token, "Tokens should not contain newlines"
        if isinstance(token, str):
            token = token.encode(self._encoding)
        self._hunpos.stdin.write(token + b"\n")
    # We write a final empty line to tell hunpos that the sentence is finished:
    self._hunpos.stdin.write(b"\n")
    self._hunpos.stdin.flush()
    tagged_tokens = []
    for token in tokens:
        tagged = self._hunpos.stdout.readline().strip().split(b"\t")
        METHOD_NAME = tagged[1] if len(tagged) > 1 else None
        tagged_tokens.append((token, METHOD_NAME))
    # We have to read (and dismiss) the final empty line:
    self._hunpos.stdout.readline()
    return tagged_tokens