{ "info": { "author": "Red_M", "author_email": "redexpect_pypi@red-m.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: OS Independent", "Operating System :: POSIX", "Operating System :: POSIX :: BSD", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Networking", "Topic :: System :: Shells" ], "description": "# RedExpect\n[![Documentation Status](https://readthedocs.org/projects/redexpect/badge/?version=latest)](https://redexpect.readthedocs.io/en/latest/?badge=latest)\n\nRedExpect makes automating remote machines over SSH very easy to do and is very fast in doing exactly what you ask of it.\nBased on ssh2-python (which provides libssh2 bindings for python) and made into an easy to use SSH library via RedSSH.\nIf you're familiar with using expect but would like the easy of use and accessibilty of python, then look no further!\n\n\n# Installing\n\nRedExpect can be installed via pip with `pip install redexpect` or the latest commit, which may not be the most stable, from git with `pip install git://git@bitbucket.org/Red_M/RedExpect.git`\n\n\n# Documentation\n99% of questions around how to do something should be answered in the documentation.\nIf something is not there please raise an issue so it can be added to the documentation.\n[Now with autodocs!](https://redexpect.readthedocs.io/en/latest/ \"Documentation! :)\")\n\n\n# Why not use [other software]?\n\nI've found other automation libraries or solutions lacking, such as:\n- Compatibility with remote servers (odd servers causes the library to be unable to connect).\n- Feature set is limited (eg, no tunneling).\n- Focuses on only connecting to Linux servers.\n- Requires an agent to be installed, a state file to be present or a master \"server\".\n- Poor performance.\n\n\n# TO DO\n- Unit tests\n- More examples\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/Red_M/RedExpect", "keywords": "", "license": "GPLv2", "maintainer": "", "maintainer_email": "", "name": "redexpect", "package_url": "https://pypi.org/project/redexpect/", "platform": "Posix", "project_url": "https://pypi.org/project/redexpect/", "project_urls": { "Homepage": "https://bitbucket.org/Red_M/RedExpect" }, "release_url": "https://pypi.org/project/redexpect/2.0.3.post3/", "requires_dist": [ "redssh (>=2*)", "sphinx ; extra == 'docs'", "sphinx-rtd-theme ; extra == 'docs'", "redssh (>=2*) ; extra == 'docs'", "paramiko ; extra == 'tests'", "sftpserver ; extra == 'tests'", "coveralls ; extra == 'tests'", "pytest-cov ; extra == 'tests'", "asyncssh ; extra == 'tests'", "redssh (>=2*) ; extra == 'tests'" ], "requires_python": "", "summary": "An SSH automation library using expect.", "version": "2.0.3.post3", "yanked": false, "yanked_reason": null }, "last_serial": 6187180, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "701832bed41e3cb3a078493d00553dc3", "sha256": "f5d704692f1021e51df717f5164fbf3f25bf8333b3805aeef484563a0a09129a" }, "downloads": -1, "filename": "redexpect-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "701832bed41e3cb3a078493d00553dc3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17444, "upload_time": "2019-06-22T02:23:52", "upload_time_iso_8601": "2019-06-22T02:23:52.046640Z", "url": "https://files.pythonhosted.org/packages/57/b8/538139ffd932e717962f253384df87b4ad0c784076afe3979c8faa1ee115/redexpect-1.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fa89138d7cd844511c35a0b9df2dfb3a", "sha256": "6a6b5a7dba1b7384a53cf146204ca33bbbbe60add9901a2d067a87a2e858646e" }, "downloads": -1, "filename": "redexpect-1.0.0.tar.gz", "has_sig": false, "md5_digest": "fa89138d7cd844511c35a0b9df2dfb3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8642, "upload_time": "2019-06-22T02:23:54", "upload_time_iso_8601": "2019-06-22T02:23:54.582397Z", "url": "https://files.pythonhosted.org/packages/4b/db/fc1d4eb1ed26c1c63d40884194dcf5c5cf1edbaf6e432e36d8b85f64ca4f/redexpect-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "6ef0a030802578110e32b4337eb42fc6", "sha256": "629d6e27c782dcc424dc6616dec647d48175f96f96763ac5a908994c451a2435" }, "downloads": -1, "filename": "redexpect-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6ef0a030802578110e32b4337eb42fc6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14068, "upload_time": "2019-07-07T23:34:33", "upload_time_iso_8601": "2019-07-07T23:34:33.505050Z", "url": "https://files.pythonhosted.org/packages/a3/83/4e0fddf22999796747eed9fe961ab125cba3f60bc3f97ccfd13f71feb9b4/redexpect-2.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c5c6db516d774bf81794fa388627fb3f", "sha256": "f3b722fcbedd92fe5c8c5826494e358b9f3f7f021d95f6e5fa3dafaba2ed34f3" }, "downloads": -1, "filename": "redexpect-2.0.0.tar.gz", "has_sig": false, "md5_digest": "c5c6db516d774bf81794fa388627fb3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5415, "upload_time": "2019-07-07T23:34:35", "upload_time_iso_8601": "2019-07-07T23:34:35.053602Z", "url": "https://files.pythonhosted.org/packages/94/1e/ff30d1f189c4c1fce33d18cda3822b41db5e2fba1bbde5f8ce1a59f015db/redexpect-2.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0.post1": [ { "comment_text": "", "digests": { "md5": "df54ac06902eb61dd05f3f884dd115fb", "sha256": "b3e15472a123c50e6b9d448816cd23c675ca0041b107a3a63dba5633bbda9f53" }, "downloads": -1, "filename": "redexpect-2.0.0.post1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "df54ac06902eb61dd05f3f884dd115fb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14168, "upload_time": "2019-09-05T09:57:53", "upload_time_iso_8601": "2019-09-05T09:57:53.169717Z", "url": "https://files.pythonhosted.org/packages/be/f8/065fa2b6a296f5a6e743797f5433b7c6bc063979e66481e4c5a319d15f5f/redexpect-2.0.0.post1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6a9919906df1d598657c234c9df430ac", "sha256": "1defe100cac53eeb00e7561f25f2a3afa9fa1a0622b889e024892bf54db0ec54" }, "downloads": -1, "filename": "redexpect-2.0.0.post1.tar.gz", "has_sig": false, "md5_digest": "6a9919906df1d598657c234c9df430ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5466, "upload_time": "2019-09-05T09:57:54", "upload_time_iso_8601": "2019-09-05T09:57:54.946781Z", "url": "https://files.pythonhosted.org/packages/12/a2/0e577b405f40dd3bbd422eeb9307d2705a5d3d0ff41c4573e2b87dcd00a1/redexpect-2.0.0.post1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "c91ff5db2187dab84ce8ba2b171dbba5", "sha256": "dcc8a4adc81c8093a353bf6f7eeaef855ec519384dada25665875e51bcef288f" }, "downloads": -1, "filename": "redexpect-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c91ff5db2187dab84ce8ba2b171dbba5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19277, "upload_time": "2019-09-14T07:50:53", "upload_time_iso_8601": "2019-09-14T07:50:53.704365Z", "url": "https://files.pythonhosted.org/packages/bd/2e/2fc4092516585d2d06625192ea1cf93344abe86cdb26dddaa68ea6dd7e1d/redexpect-2.0.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "83bc904f95b8e87ee25d58b9e054fcad", "sha256": "9abe0735bd0e73daa5eeafb5a4ea4ae94784753501dbac531b56c29f894b792c" }, "downloads": -1, "filename": "redexpect-2.0.1.tar.gz", "has_sig": false, "md5_digest": "83bc904f95b8e87ee25d58b9e054fcad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9373, "upload_time": "2019-09-14T07:50:55", "upload_time_iso_8601": "2019-09-14T07:50:55.527343Z", "url": "https://files.pythonhosted.org/packages/89/31/d199976590a3cbc5aa7b58595262158882fbc86689765ac623fcf8e75e70/redexpect-2.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "85c28809beefe515ddb80f617513c013", "sha256": "1a91fd62232c9c344e1ed1c76906d9df34aebbda773d7513600a800694b51fe5" }, "downloads": -1, "filename": "redexpect-2.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "85c28809beefe515ddb80f617513c013", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19068, "upload_time": "2019-10-25T23:56:23", "upload_time_iso_8601": "2019-10-25T23:56:23.647805Z", "url": "https://files.pythonhosted.org/packages/0a/a6/342c1b12047f05a1a104a5f375c8335543f1377dfd363d674ae9b2a4cb59/redexpect-2.0.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "88b85c7a196908b80c191dc74188ea22", "sha256": "82b65b524bcb46e2072d4562fc4c38626e2a9c2b90e00ae63d4297a8d079c3a9" }, "downloads": -1, "filename": "redexpect-2.0.2.tar.gz", "has_sig": false, "md5_digest": "88b85c7a196908b80c191dc74188ea22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9158, "upload_time": "2019-10-25T23:56:25", "upload_time_iso_8601": "2019-10-25T23:56:25.466808Z", "url": "https://files.pythonhosted.org/packages/f9/ee/ec27bc0092c43238de6698d36746d2206f9cec95c5f28225731c552f704c/redexpect-2.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.2.post1": [ { "comment_text": "", "digests": { "md5": "72f704c59598b7a180b7ca9be9ce633b", "sha256": "00b58eee5d53634f63004e78bbcb13d203b3e467605724aa0a9541004bbadf96" }, "downloads": -1, "filename": "redexpect-2.0.2.post1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "72f704c59598b7a180b7ca9be9ce633b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19271, "upload_time": "2019-10-26T01:56:24", "upload_time_iso_8601": "2019-10-26T01:56:24.517254Z", "url": "https://files.pythonhosted.org/packages/75/ab/1dd3f735acb18f74d564c3668771510269bc30083663445b2b88589adce3/redexpect-2.0.2.post1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c3a8c97f5ad59a21e64b50145da495c3", "sha256": "3cb67d74ffa25ac93e5ae25f3410c931f70067f90732ceb4d01b28834439a09c" }, "downloads": -1, "filename": "redexpect-2.0.2.post1.tar.gz", "has_sig": false, "md5_digest": "c3a8c97f5ad59a21e64b50145da495c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9292, "upload_time": "2019-10-26T01:56:26", "upload_time_iso_8601": "2019-10-26T01:56:26.489200Z", "url": "https://files.pythonhosted.org/packages/e7/89/cadd6e02df8e61b8c6e864db189de36c8b1b72e86ffd639077007e69159e/redexpect-2.0.2.post1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.2.post2": [ { "comment_text": "", "digests": { "md5": "339b1aea1bf592e74770ddaf5adf97b9", "sha256": "2ce6b62bd83f7e5a77eb589db85e4ac618a23e602463ca5dc71f6fddbff2bb6f" }, "downloads": -1, "filename": "redexpect-2.0.2.post2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "339b1aea1bf592e74770ddaf5adf97b9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15345, "upload_time": "2019-11-04T11:50:07", "upload_time_iso_8601": "2019-11-04T11:50:07.671595Z", "url": "https://files.pythonhosted.org/packages/d4/e9/e0d5a210f026abbb091cad71492cbc4b9ebe289b95ab84da9c13bfba3434/redexpect-2.0.2.post2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f914dc4c6522525f12580a10b89f7871", "sha256": "827e2dbd4c1256b1112703ea92ceee938149b419742d473a6400463e95e5d845" }, "downloads": -1, "filename": "redexpect-2.0.2.post2.tar.gz", "has_sig": false, "md5_digest": "f914dc4c6522525f12580a10b89f7871", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6760, "upload_time": "2019-11-04T11:50:09", "upload_time_iso_8601": "2019-11-04T11:50:09.568960Z", "url": "https://files.pythonhosted.org/packages/a2/a6/2de4517df4ef39afd3eb07da21017b726096031ea72f2a51561f4ccad8dc/redexpect-2.0.2.post2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "faaba87c96e3ebd7f9c52f0af9e211e6", "sha256": "56855f79517ee410811d63e5694003edcc3452ea809dbe8f0c2c9cd241249ea5" }, "downloads": -1, "filename": "redexpect-2.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "faaba87c96e3ebd7f9c52f0af9e211e6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15473, "upload_time": "2019-11-15T14:23:34", "upload_time_iso_8601": "2019-11-15T14:23:34.028693Z", "url": "https://files.pythonhosted.org/packages/ce/cd/202fb18e95cb37131afd5434cd844bed7738f82d46c3b3dd07a674a1c919/redexpect-2.0.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "562b62aaa08fe0a12d3fd9e7f339b51f", "sha256": "a8ea673581a333331d0f30c5d9fb41dfecf824a492198d47bde8942245ad17e7" }, "downloads": -1, "filename": "redexpect-2.0.3.tar.gz", "has_sig": false, "md5_digest": "562b62aaa08fe0a12d3fd9e7f339b51f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6933, "upload_time": "2019-11-15T14:23:35", "upload_time_iso_8601": "2019-11-15T14:23:35.497035Z", "url": "https://files.pythonhosted.org/packages/a4/85/4610104a8a78513f9f058b5a84483c2b88a3957e1952a6006bfcdc1a84b3/redexpect-2.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.3.post1": [ { "comment_text": "", "digests": { "md5": "9827467f065d17e303efbaf33f9fe8b9", "sha256": "c9c8685350a0afbfd1e7b1b55e66aed1493d290b589a6f5f3ac300ca542f69c6" }, "downloads": -1, "filename": "redexpect-2.0.3.post1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9827467f065d17e303efbaf33f9fe8b9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15554, "upload_time": "2019-11-15T15:05:35", "upload_time_iso_8601": "2019-11-15T15:05:35.398126Z", "url": "https://files.pythonhosted.org/packages/db/38/09f6fc3dd3592689e6fb3e2c083c37bd586f7438961c78174e358f76d384/redexpect-2.0.3.post1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cf781080f1cb30b06352c8ffd63ec28e", "sha256": "2f4c296fb931da6dfc0df0b0127204fc614da9e78d11b79fe2533721870048b6" }, "downloads": -1, "filename": "redexpect-2.0.3.post1.tar.gz", "has_sig": false, "md5_digest": "cf781080f1cb30b06352c8ffd63ec28e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6963, "upload_time": "2019-11-15T15:05:36", "upload_time_iso_8601": "2019-11-15T15:05:36.743935Z", "url": "https://files.pythonhosted.org/packages/23/39/b8c1a7f937d0044a87715d24995dd12b2ef9518cb762b831bb6fba585fb4/redexpect-2.0.3.post1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.3.post2": [ { "comment_text": "", "digests": { "md5": "71ce8450b1a90bea5fbdf2b6a7145979", "sha256": "7a5d537536ce0ad30dbaf9d681248a91a47acfe76758d354e09975def1213142" }, "downloads": -1, "filename": "redexpect-2.0.3.post2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "71ce8450b1a90bea5fbdf2b6a7145979", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15547, "upload_time": "2019-11-15T15:13:00", "upload_time_iso_8601": "2019-11-15T15:13:00.915589Z", "url": "https://files.pythonhosted.org/packages/94/3f/6e61c52b9e8b28310325ead33849d6abdc40871e11b31880e33bb9ad5869/redexpect-2.0.3.post2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "84980abe6c8c21466f87cbdd8095f034", "sha256": "a08542b0048af0e73450107450bcd2df39781fe3bc86108a009f422faf2e4d50" }, "downloads": -1, "filename": "redexpect-2.0.3.post2.tar.gz", "has_sig": false, "md5_digest": "84980abe6c8c21466f87cbdd8095f034", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6950, "upload_time": "2019-11-15T15:13:02", "upload_time_iso_8601": "2019-11-15T15:13:02.680327Z", "url": "https://files.pythonhosted.org/packages/62/eb/58a895092389002282cba7a62aade2f81344560c3b85c7bc1969ae207306/redexpect-2.0.3.post2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.3.post3": [ { "comment_text": "", "digests": { "md5": "23814f1a811a9e03b6692519b3a49a7a", "sha256": "0e01562a5c1fd481198019021303fa83b3db154bbe3effe0f1958579386125fd" }, "downloads": -1, "filename": "redexpect-2.0.3.post3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "23814f1a811a9e03b6692519b3a49a7a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15598, "upload_time": "2019-11-23T16:57:58", "upload_time_iso_8601": "2019-11-23T16:57:58.185190Z", "url": "https://files.pythonhosted.org/packages/11/61/a32d548609b88507e320857f4a12f438e439d9cec87cd6fb3368629ee358/redexpect-2.0.3.post3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ca9938287c7bca616c71545f8075d95a", "sha256": "35445fa76cfd50fbfb966e3827b9b530d9adf01ac5e9ac04739e76ad10b69bd4" }, "downloads": -1, "filename": "redexpect-2.0.3.post3.tar.gz", "has_sig": false, "md5_digest": "ca9938287c7bca616c71545f8075d95a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7002, "upload_time": "2019-11-23T16:58:00", "upload_time_iso_8601": "2019-11-23T16:58:00.020459Z", "url": "https://files.pythonhosted.org/packages/a9/c6/64d23e8af2c7cef3c84afb9419e9744ec9a46a6b09be985e456416880d15/redexpect-2.0.3.post3.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "23814f1a811a9e03b6692519b3a49a7a", "sha256": "0e01562a5c1fd481198019021303fa83b3db154bbe3effe0f1958579386125fd" }, "downloads": -1, "filename": "redexpect-2.0.3.post3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "23814f1a811a9e03b6692519b3a49a7a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15598, "upload_time": "2019-11-23T16:57:58", "upload_time_iso_8601": "2019-11-23T16:57:58.185190Z", "url": "https://files.pythonhosted.org/packages/11/61/a32d548609b88507e320857f4a12f438e439d9cec87cd6fb3368629ee358/redexpect-2.0.3.post3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ca9938287c7bca616c71545f8075d95a", "sha256": "35445fa76cfd50fbfb966e3827b9b530d9adf01ac5e9ac04739e76ad10b69bd4" }, "downloads": -1, "filename": "redexpect-2.0.3.post3.tar.gz", "has_sig": false, "md5_digest": "ca9938287c7bca616c71545f8075d95a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7002, "upload_time": "2019-11-23T16:58:00", "upload_time_iso_8601": "2019-11-23T16:58:00.020459Z", "url": "https://files.pythonhosted.org/packages/a9/c6/64d23e8af2c7cef3c84afb9419e9744ec9a46a6b09be985e456416880d15/redexpect-2.0.3.post3.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }