--- delegator.py-0.1.1/delegator.py.orig 2018-09-18 02:35:34.000000000 +0700 +++ delegator.py-0.1.1/delegator.py 2019-03-08 00:53:35.605573650 +0700 @@ -7,6 +7,8 @@ import errno from pexpect.popen_spawn import PopenSpawn +import pexpect +pexpect.EOF.__module__ = "pexpect.exceptions" # Include `unicode` in STR_TYPES for Python 2.X try: @@ -110,7 +112,7 @@ if self.subprocess.before: result += self.subprocess.before - if self.subprocess.after: + if self.subprocess.after and self.subprocess.after is not pexpect.EOF: result += self.subprocess.after result += self.subprocess.read() @@ -205,7 +207,10 @@ if self.blocking: raise RuntimeError("expect can only be used on non-blocking commands.") - self.subprocess.expect(pattern=pattern, timeout=timeout) + try: + self.subprocess.expect(pattern=pattern, timeout=timeout) + except pexpect.EOF: + pass def send(self, s, end=os.linesep, signal=False): """Sends the given string or signal to std_in.""" @@ -263,7 +268,6 @@ c.run(block=False, cwd=cwd) if data: c.send(data) - c.subprocess.sendeof() c.block() return c