Lines Matching refs:self
26 def __init__(self, args, cwd=None): argument
38 self.waited = False
39 self.buf = ''
40 self.output = ''
41 self.logfile_read = None
42 self.before = ''
43 self.after = ''
44 self.timeout = None
49 self.re_vt100 = re.compile('(\x1b\[|\x9b)[^@-_a-z]*[@-_a-z]|\x1b[@-_a-z]')
51 (self.pid, self.fd) = pty.fork()
52 if self.pid == 0:
69 self.poll = select.poll()
70 …self.poll.register(self.fd, select.POLLIN | select.POLLPRI | select.POLLERR | select.POLLHUP | sel…
72 self.close()
75 def kill(self, sig): argument
85 os.kill(self.pid, sig)
87 def isalive(self): argument
97 if self.waited:
100 w = os.waitpid(self.pid, os.WNOHANG)
104 self.waited = True
107 def send(self, data): argument
117 os.write(self.fd, data)
119 def expect(self, patterns): argument
149 m = pattern.search(self.buf)
159 self.before = self.buf[:pos]
160 self.after = self.buf[pos:posafter]
161 self.output += self.buf[:posafter]
162 self.buf = self.buf[posafter:]
165 if self.timeout:
167 poll_maxwait = self.timeout - tdelta_ms
168 if tdelta_ms > self.timeout:
172 events = self.poll.poll(poll_maxwait)
175 c = os.read(self.fd, 1024)
178 if self.logfile_read:
179 self.logfile_read.write(c)
180 self.buf += c
184 self.buf = self.re_vt100.sub('', self.buf, count=1000000)
186 if self.logfile_read:
187 self.logfile_read.flush()
189 def close(self): argument
201 os.close(self.fd)
203 if not self.isalive():
207 def get_expect_output(self): argument
213 return self.output