Lines Matching refs:self
25 def __init__(self, args, cwd=None): argument
37 self.waited = False
38 self.buf = ''
39 self.output = ''
40 self.logfile_read = None
41 self.before = ''
42 self.after = ''
43 self.timeout = None
45 self.re_vt100 = re.compile(r'(\x1b\[|\x9b)[^@-_]*[@-_]|\x1b[@-_]', re.I)
47 (self.pid, self.fd) = pty.fork()
48 if self.pid == 0:
65 self.poll = select.poll()
66 …self.poll.register(self.fd, select.POLLIN | select.POLLPRI | select.POLLERR | select.POLLHUP | sel…
68 self.close()
71 def kill(self, sig): argument
81 os.kill(self.pid, sig)
83 def isalive(self): argument
93 if self.waited:
96 w = os.waitpid(self.pid, os.WNOHANG)
100 self.waited = True
103 def send(self, data): argument
113 os.write(self.fd, data.encode(errors='replace'))
115 def expect(self, patterns): argument
145 m = pattern.search(self.buf)
155 self.before = self.buf[:pos]
156 self.after = self.buf[pos:posafter]
157 self.output += self.buf[:posafter]
158 self.buf = self.buf[posafter:]
161 if self.timeout:
163 poll_maxwait = self.timeout - tdelta_ms
164 if tdelta_ms > self.timeout:
168 events = self.poll.poll(poll_maxwait)
171 c = os.read(self.fd, 1024).decode(errors='replace')
174 if self.logfile_read:
175 self.logfile_read.write(c)
176 self.buf += c
180 self.buf = self.re_vt100.sub('', self.buf, count=1000000)
182 if self.logfile_read:
183 self.logfile_read.flush()
185 def close(self): argument
197 os.close(self.fd)
199 if not self.isalive():
203 def get_expect_output(self): argument
209 return self.output