本文整理汇总了Python中pexpect.popen_spawn方法的典型用法代码示例。如果您正苦于以下问题:Python pexpect.popen_spawn方法的具体用法?Python pexpect.popen_spawn怎么用?Python pexpect.popen_spawn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pexpect
的用法示例。
在下文中一共展示了pexpect.popen_spawn方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_consecutive_training_and_inferring
# 需要导入模块: import pexpect [as 别名]
# 或者: from pexpect import popen_spawn [as 别名]
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))
示例2: test_crossvalidation
# 需要导入模块: import pexpect [as 别名]
# 或者: from pexpect import popen_spawn [as 别名]
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)
示例3: test_evolving
# 需要导入模块: import pexpect [as 别名]
# 或者: from pexpect import popen_spawn [as 别名]
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)
示例4: install_config
# 需要导入模块: import pexpect [as 别名]
# 或者: from pexpect import popen_spawn [as 别名]
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()))
示例5: infer_api
# 需要导入模块: import pexpect [as 别名]
# 或者: from pexpect import popen_spawn [as 别名]
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()))
示例6: initialize
# 需要导入模块: import pexpect [as 别名]
# 或者: from pexpect import popen_spawn [as 别名]
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()
示例7: infer_socket
# 需要导入模块: import pexpect [as 别名]
# 或者: from pexpect import popen_spawn [as 别名]
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()
示例8: pexpect_run
# 需要导入模块: import pexpect [as 别名]
# 或者: from pexpect import popen_spawn [as 别名]
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