Metadata-Version: 2.4
Name: redexpect
Version: 2.0.4
Summary: An SSH automation library using expect.
Home-page: https://bitbucket.org/Red_M/RedExpect
Author: Red_M
Author-email: redexpect_pypi@red-m.net
License: GPLv2
Platform: Posix
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Shells
Classifier: Topic :: System :: Networking
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: POSIX :: BSD
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: redssh>=2.0.0
Provides-Extra: tests
Requires-Dist: redssh>=2.0.0; extra == "tests"
Requires-Dist: coveralls; extra == "tests"
Requires-Dist: paramiko; extra == "tests"
Requires-Dist: safety; extra == "tests"
Requires-Dist: bandit; extra == "tests"
Requires-Dist: asyncssh; extra == "tests"
Requires-Dist: sftpserver; extra == "tests"
Requires-Dist: pylint; extra == "tests"
Requires-Dist: pytest-cov; extra == "tests"
Requires-Dist: redssh[tests]; extra == "tests"
Provides-Extra: docs
Requires-Dist: redssh>=2.0.0; extra == "docs"
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx_rtd_theme; extra == "docs"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: platform
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: summary

# RedExpect
![PyPI](https://img.shields.io/pypi/v/RedExpect?style=plastic)
[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg?style=plastic)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)

[![Test Status](https://travis-ci.com/Red-M/RedExpect.svg?branch=master)](https://travis-ci.com/Red-M/RedExpect)
[![Documentation Status](https://readthedocs.org/projects/redexpect/badge/?version=latest&style=plastic)](https://redexpect.readthedocs.io/en/latest/?badge=latest)
[![Coverage Status](https://coveralls.io/repos/github/Red-M/RedExpect/badge.svg?branch=master)](https://coveralls.io/github/Red-M/RedExpect?branch=master)

RedExpect makes automating remote machines over SSH very easy to do and is very fast in doing exactly what you ask of it.
Based on ssh2-python (which provides libssh2 bindings for python) and made into an easy to use SSH library via RedSSH.
If you're familiar with using expect but would like the easy of use and accessibilty of python, then look no further!


# Installing

RedExpect 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`


# Documentation
99% of questions around how to do something should be answered in the documentation.
If something is not there please raise an issue so it can be added to the documentation.
[Now with autodocs!](https://redexpect.readthedocs.io/en/latest/ "Documentation! :)")


# Why not use [other software]?

I've found other automation libraries or solutions lacking, such as:
- Compatibility with remote servers (odd servers causes the library to be unable to connect).
- Feature set is limited (eg, no tunneling).
- Focuses on only connecting to Linux servers.
- Requires an agent to be installed, a state file to be present or a master "server".
- Poor performance.


# TO DO
- Update unit tests to match RedSSH's tests
- More examples
