Launch a subprocess in a pseudo terminal (pty), and interact with both the
process and its pty.
Sometimes, piping stdin and stdout is not enough. There might be a password
prompt that doesn't read from stdin, output that changes when it's going to a
pipe rather than a terminal, or curses-style interfaces that rely on a terminal.
If you need to automate these things, running the process in a pseudo terminal
(pty) is the answer.
Interface::
p = PtyProcessUnicode.spawn(['python'])
p.read(20)
p.write('6+6\n')
p.read(20)
Raw data
{
"_id": null,
"home_page": "https://github.com/pexpect/ptyprocess",
"name": "ptyprocess",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Thomas Kluyver",
"author_email": "thomas@kluyver.me.uk",
"download_url": "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz",
"platform": "",
"description": "Launch a subprocess in a pseudo terminal (pty), and interact with both the\nprocess and its pty.\n\nSometimes, piping stdin and stdout is not enough. There might be a password\nprompt that doesn't read from stdin, output that changes when it's going to a\npipe rather than a terminal, or curses-style interfaces that rely on a terminal.\nIf you need to automate these things, running the process in a pseudo terminal\n(pty) is the answer.\n\nInterface::\n\n p = PtyProcessUnicode.spawn(['python'])\n p.read(20)\n p.write('6+6\\n')\n p.read(20)\n",
"bugtrack_url": null,
"license": "",
"summary": "Run a subprocess in a pseudo terminal",
"version": "0.7.0",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "99ec04989f767cb72ac82ce671b561b0",
"sha256": "4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"
},
"downloads": -1,
"filename": "ptyprocess-0.7.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "99ec04989f767cb72ac82ce671b561b0",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 13993,
"upload_time": "2020-12-28T15:15:28",
"upload_time_iso_8601": "2020-12-28T15:15:28.350375Z",
"url": "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "9da200c397cb1752209a6b718b6cfc68",
"sha256": "5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"
},
"downloads": -1,
"filename": "ptyprocess-0.7.0.tar.gz",
"has_sig": false,
"md5_digest": "9da200c397cb1752209a6b718b6cfc68",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 70762,
"upload_time": "2020-12-28T15:15:30",
"upload_time_iso_8601": "2020-12-28T15:15:30.155647Z",
"url": "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2020-12-28 15:15:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "pexpect",
"github_project": "ptyprocess",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ptyprocess"
}