def _call(self, input_str, binary, args=[], verbose=False):
        """
        Call the binary with the given input.

        :param input_str: A string whose contents are used as stdin.
        :param binary: The location of the binary to call
        :param args: A list of command-line arguments.
        :return: A tuple (stdout, returncode)
        :see: ``config_prover9``
        """
        if verbose:
            print('Calling:', binary)
            print('Args:', args)
            print('Input:\n', input_str, '\n')

        # Call prover9 via a subprocess
        cmd = [binary] + args
        try:
            input_str = input_str.encode("utf8")
        except __HOLE__:
            pass
        p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
                             stderr=subprocess.STDOUT,
                             stdin=subprocess.PIPE)
        (stdout, stderr) = p.communicate(input=input_str)

        if verbose:
            print('Return code:', p.returncode)
            if stdout: print('stdout:\n', stdout, '\n')
            if stderr: print('stderr:\n', stderr, '\n')

        return (stdout.decode("utf-8"), p.returncode)
dataset/ETHPy150Open nltk/nltk/nltk/inference/prover9.py/Prover9Parent._call