Python pexpect.popen_spawn() Examples
The following are 8
code examples of pexpect.popen_spawn().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
pexpect
, or try the search function
.
Example #1
Source File: test_quick_start.py From DeepPavlov with Apache License 2.0 | 6 votes |
def test_consecutive_training_and_inferring(self, model, conf_file, model_dir, mode): if 'TI' in mode: c = test_configs_path / conf_file model_path = download_path / model_dir if 'IP' not in mode: config_path = str(test_configs_path.joinpath(conf_file)) install_config(config_path) deep_download(config_path) shutil.rmtree(str(model_path), ignore_errors=True) logfile = io.BytesIO(b'') p = pexpect.popen_spawn.PopenSpawn(sys.executable + " -m deeppavlov train " + str(c), timeout=None, logfile=logfile) p.readlines() if p.wait() != 0: raise RuntimeError('Training process of {} returned non-zero exit code: \n{}' .format(model_dir, logfile.getvalue().decode())) self.infer(c, PARAMS[model][(conf_file, model_dir, mode)], check_outputs=False) shutil.rmtree(str(download_path), ignore_errors=True) else: pytest.skip("Unsupported mode: {}".format(mode))
Example #2
Source File: test_quick_start.py From DeepPavlov with Apache License 2.0 | 6 votes |
def test_crossvalidation(): model_dir = 'faq' conf_file = 'cv/cv_tfidf_autofaq.json' download_config(conf_file) c = test_configs_path / conf_file model_path = download_path / model_dir install_config(c) deep_download(c) shutil.rmtree(str(model_path), ignore_errors=True) logfile = io.BytesIO(b'') p = pexpect.popen_spawn.PopenSpawn(sys.executable + f" -m deeppavlov crossval {c} --folds 2", timeout=None, logfile=logfile) p.readlines() if p.wait() != 0: raise RuntimeError('Training process of {} returned non-zero exit code: \n{}' .format(model_dir, logfile.getvalue().decode())) shutil.rmtree(str(download_path), ignore_errors=True)
Example #3
Source File: test_quick_start.py From DeepPavlov with Apache License 2.0 | 6 votes |
def test_evolving(): model_dir = 'evolution' conf_file = 'evolution/evolve_intents_snips.json' download_config(conf_file) c = test_configs_path / conf_file model_path = download_path / model_dir install_config(c) deep_download(c) shutil.rmtree(str(model_path), ignore_errors=True) logfile = io.BytesIO(b'') p = pexpect.popen_spawn.PopenSpawn(sys.executable + f" -m deeppavlov.evolve {c} --iterations 1 --p_size 1", timeout=None, logfile=logfile) p.readlines() if p.wait() != 0: raise RuntimeError('Training process of {} returned non-zero exit code: \n{}' .format(model_dir, logfile.getvalue().decode())) shutil.rmtree(str(download_path), ignore_errors=True)
Example #4
Source File: test_quick_start.py From DeepPavlov with Apache License 2.0 | 5 votes |
def install_config(config_path): logfile = io.BytesIO(b'') p = pexpect.popen_spawn.PopenSpawn(sys.executable + " -m deeppavlov install " + str(config_path), timeout=None, logfile=logfile) p.readlines() if p.wait() != 0: raise RuntimeError('Installing process of {} returned non-zero exit code: \n{}' .format(config_path, logfile.getvalue().decode()))
Example #5
Source File: test_quick_start.py From DeepPavlov with Apache License 2.0 | 5 votes |
def infer_api(config_path): server_params = get_server_params(config_path) url_base = 'http://{}:{}'.format(server_params['host'], api_port or server_params['port']) url = urljoin(url_base.replace('http://0.0.0.0:', 'http://127.0.0.1:'), server_params['model_endpoint']) post_headers = {'Accept': 'application/json'} logfile = io.BytesIO(b'') args = [sys.executable, "-m", "deeppavlov", "riseapi", str(config_path)] if api_port: args += ['-p', str(api_port)] p = pexpect.popen_spawn.PopenSpawn(' '.join(args), timeout=None, logfile=logfile) try: p.expect(url_base) get_url = urljoin(url_base.replace('http://0.0.0.0:', 'http://127.0.0.1:'), '/api') get_response = requests.get(get_url) response_code = get_response.status_code assert response_code == 200, f"GET /api request returned error code {response_code} with {config_path}" model_args_names = get_response.json() post_payload = dict() for arg_name in model_args_names: arg_value = ' '.join(['qwerty'] * 10) post_payload[arg_name] = [arg_value] post_response = requests.post(url, json=post_payload, headers=post_headers) response_code = post_response.status_code assert response_code == 200, f"POST request returned error code {response_code} with {config_path}" except pexpect.exceptions.EOF: raise RuntimeError('Got unexpected EOF: \n{}'.format(logfile.getvalue().decode())) finally: p.kill(signal.SIGTERM) p.wait() # if p.wait() != 0: # raise RuntimeError('Error in shutting down API server: \n{}'.format(logfile.getvalue().decode()))
Example #6
Source File: subprocess.py From pyrealtime with MIT License | 5 votes |
def initialize(self): try: import pexpect.popen_spawn except ImportError: raise ModuleNotFoundError("pexpect required to use subprocess layers") self.proc = pexpect.popen_spawn.PopenSpawn(self.cmd) self.read_thread = Thread(target=self.read_loop) self.read_thread.start()
Example #7
Source File: test_quick_start.py From DeepPavlov with Apache License 2.0 | 4 votes |
def infer_socket(config_path, socket_type): socket_params = get_server_params(config_path) model_args_names = socket_params['model_args_names'] host = socket_params['host'] host = host.replace('0.0.0.0', '127.0.0.1') port = api_port or socket_params['port'] socket_payload = {} for arg_name in model_args_names: arg_value = ' '.join(['qwerty'] * 10) socket_payload[arg_name] = [arg_value] logfile = io.BytesIO(b'') args = [sys.executable, "-m", "deeppavlov", "risesocket", str(config_path), '--socket-type', socket_type] if socket_type == 'TCP': args += ['-p', str(port)] address_family = socket.AF_INET connect_arg = (host, port) else: address_family = socket.AF_UNIX connect_arg = socket_params['unix_socket_file'] p = pexpect.popen_spawn.PopenSpawn(' '.join(args), timeout=None, logfile=logfile) try: p.expect(socket_params['socket_launch_message']) with socket.socket(address_family, socket.SOCK_STREAM) as s: try: s.connect(connect_arg) except ConnectionRefusedError: sleep(1) s.connect(connect_arg) s.sendall(encode(socket_payload)) s.settimeout(60) header = s.recv(4) body_len = unpack('<I', header)[0] data = bytearray() while len(data) < body_len: chunk = s.recv(body_len - len(data)) if not chunk: raise ValueError(f'header does not match body\nheader: {body_len}\nbody length: {len(data)}' f'data: {data}') data.extend(chunk) try: resp = json.loads(data) except json.decoder.JSONDecodeError: raise ValueError(f"Can't decode model response {data}") assert resp['status'] == 'OK', f"{socket_type} socket request returned status: {resp['status']}" \ f" with {config_path}\n{logfile.getvalue().decode()}" except pexpect.exceptions.EOF: raise RuntimeError(f'Got unexpected EOF: \n{logfile.getvalue().decode()}') except json.JSONDecodeError: raise ValueError(f'Got JSON not serializable response from model: "{data}"\n{logfile.getvalue().decode()}') finally: p.kill(signal.SIGTERM) p.wait()
Example #8
Source File: utils.py From sos with BSD 3-Clause "New" or "Revised" License | 4 votes |
def pexpect_run(cmd, shell=False, win_width=None, stdout_socket=None): def send_output(output): if stdout_socket: stdout_socket.send_multipart([ b'PRINT', env.config.get('slave_id', '').encode(), output.encode() ]) else: sys.stdout.write(output) if sys.platform == 'win32': import pexpect import pexpect.popen_spawn as ps child = ps.PopenSpawn(cmd) while True: try: child.expect('\n') if env.verbosity > 0: send_output(child.before.decode() + '\n') except pexpect.EOF: break return child.wait() else: import pexpect import subprocess if win_width: os.environ['COLUMNS'] = str(win_width) else: os.environ['COLUMNS'] = '80' try: if isinstance(cmd, str): if shell: child = pexpect.spawn( '/bin/bash', ['-c', cmd], timeout=None) else: child = pexpect.spawn(cmd, timeout=None) else: if shell: child = pexpect.spawn( '/bin/bash', ['-c', subprocess.list2cmdline(cmd)], timeout=None) else: child = pexpect.spawn( subprocess.list2cmdline(cmd), timeout=None) while True: try: child.expect('\r\n') if env.verbosity > 0: send_output(child.before.decode() + '\n') except pexpect.EOF: break child.wait() child.close() return child.exitstatus except Exception as e: sys.stderr.write(str(e)) return 1