UAlbertaALTLab / itwewina

Replaced by https://github.com/UAlbertaALTLab/cree-intelligent-dictionary
https://github.com/UAlbertaALTLab/cree-intelligent-dictionary
GNU General Public License v3.0
1 stars 0 forks source link

Update pexpect to 4.7.0 #142

Closed pyup-bot closed 5 years ago

pyup-bot commented 5 years ago

This PR updates pexpect from 2.4 to 4.7.0.

Changelog ### 4.7 ``` * The :meth:`.pxssh.login` method now no longer requires a username if an ssh config is provided and will raise an error if neither are provided. (:ghpull:`562`). * The :meth:`.pxssh.login` method now supports providing your own ``ssh`` command via the ``cmd`` parameter. (:ghpull:`528`) (:ghpull:`563`). * :class:`.pxssh` now supports the ``use_poll`` parameter which is passed into :meth:`.pexpect.spawn` (:ghpull:`542`). * Minor bug fix with ``ssh_config``. (:ghpull:`498`). * :meth:`.replwrap.run_command` now has async support via an ``async_`` parameter. (:ghpull:`501`). * :meth:`.pexpect.spawn` will now read additional bytes if able up to a buffer limit. (:ghpull:`304`). ``` ### 4.6 ``` * The :meth:`.pxssh.login` method now supports an ``ssh_config`` parameter, which can be used to specify a file path to an SSH config file (:ghpull:`490`). * Improved compatability for the ``crlf`` parameter of :class:`~.PopenSpawn` (:ghpull:`493`) * Fixed an issue in read timeout handling when using :class:`~.spawn` and :class:`~.fdspawn` with the ``use_poll`` parameter (:ghpull:`492`). ``` ### 4.5 ``` * :class:`~.spawn` and :class:`~.fdspawn` now have a ``use_poll`` parameter. If this is True, they will use :func:`select.poll` instead of :func:`select.select`. ``poll()`` allows file descriptors above 1024, but it must be explicitly enabled due to compatibility concerns (:ghpull:`474`). * The :meth:`.pxssh.login` method has several new and changed options: * The option ``password_regex`` allows changing the password prompt regex, for servers that include ``password:`` in a banner before reaching a prompt (:ghpull:`468`). * :meth:`~.pxssh.login` now allows for setting up SSH tunnels to be requested once logged in to the remote server. This option is ``ssh_tunnels`` (:ghpull:`473`). The structure should be like this:: { 'local': ['2424:localhost:22'], Local SSH tunnels 'remote': ['2525:localhost:22'], Remote SSH tunnels 'dynamic': [8888], Dynamic/SOCKS tunnels } * The option ``spawn_local_ssh=False`` allows subsequent logins from the remote session and treats the session as if it was local (:ghpull:`472`). * Setting ``sync_original_prompt=False`` will prevent changing the prompt to something unique, in case the remote server is sensitive to new lines at login (:ghpull:`468`). * If ``ssh_key=True`` is passed, the SSH client forces forwarding the authentication agent to the remote server instead of providing a key (:ghpull:`473`). ``` ### 4.4 ``` * :class:`~.PopenSpawn` now has a ``preexec_fn`` parameter, like :class:`~.spawn` and :class:`subprocess.Popen`, for a function to be called in the child process before executing the new command. Like in ``Popen``, this works only in POSIX, and can cause issues if your application also uses threads (:ghpull:`460`). * Significant performance improvements when processing large amounts of data (:ghpull:`464`). * Ensure that ``spawn.closed`` gets set by :meth:`~.spawn.close`, and improve an example for passing ``SIGWINCH`` through to a child process (:ghpull:`466`). ``` ### 4.3.1 ``` * When launching bash for :mod:`pexpect.replwrap`, load the system ``bashrc`` from a couple of different common locations (:ghpull:`457`), and then unset the ``PROMPT_COMMAND`` environment variable, which can interfere with the prompt we're expecting (:ghpull:`459`). ``` ### 4.3 ``` * The ``async=`` parameter to integrate with asyncio has become ``async_=`` (:ghpull:`431`), as *async* is becoming a Python keyword from Python 3.6. Pexpect will still recognise ``async`` as an alternative spelling. * Similarly, the module ``pexpect.async`` became ``pexpect._async`` (:ghpull:`450`). This module is not part of the public API. * Fix problems with asyncio objects closing file descriptors during garbage collection (:ghissue:`347`, :ghpull:`376`). * Set the ``.pid`` attribute of a :class:`~.PopenSpawn` object (:ghpull:`417`). * Fix passing Windows paths to :class:`~.PopenSpawn` (:ghpull:`446`). * :class:`~.PopenSpawn` on Windows can pass string commands through to ``Popen`` without splitting them into a list (:ghpull:`447`). * Stop ``shlex`` trying to read from stdin when :class:`~.PopenSpawn` is passed ``cmd=None`` (:ghissue:`433`, :ghpull:`434`). * Ensure that an error closing a Pexpect spawn object raises a Pexpect error, rather than a Ptyprocess error (:ghissue:`383`, :ghpull:`386`). * Cleaned up invalid backslash escape sequences in strings (:ghpull:`430`, :ghpull:`445`). * The pattern for a password prompt in :mod:`pexpect.pxssh` changed from ``password`` to ``password:`` (:ghpull:`452`). * Correct docstring for using unicode with spawn (:ghpull:`395`). * Various other improvements to documentation. ``` ### 4.2.1 ``` * Fix to allow running ``env`` in replwrap-ed bash. * Raise more informative exception from pxssh if it fails to connect. * Change ``passmass`` example to not log passwords entered. ``` ### 4.2 ``` * Change: When an ``env`` parameter is specified to the :class:`~.spawn` or :class:`~.run` family of calls containing a value for ``PATH``, its value is used to discover the target executable from a relative path, rather than the current process's environment ``PATH``. This mirrors the behavior of :func:`subprocess.Popen` in the standard library (:ghissue:`348`). * Regression: Re-introduce capability for :meth:`read_nonblocking` in class :class:`fdspawn` as previously supported in version 3.3 (:ghissue:`359`). ``` ### 4.0 ``` * Integration with :mod:`asyncio`: passing ``async=True`` to :meth:`~.spawn.expect`, :meth:`~.spawn.expect_exact` or :meth:`~.spawn.expect_list` will make them return a coroutine. You can get the result using ``yield from``, or wrap it in an :class:`asyncio.Task`. This allows the event loop to do other things while waiting for output that matches a pattern. * Experimental support for Windows (with some caveats)—see :ref:`windows`. * Enhancement: allow method as callbacks of argument ``events`` for :func:`pexpect.run` (:ghissue:`176`). * It is now possible to call :meth:`~.spawn.wait` multiple times, or after a process is already determined to be terminated without raising an exception (:ghpull:`211`). * New :class:`pexpect.spawn` keyword argument, ``dimensions=(rows, columns)`` allows setting terminal screen dimensions before launching a program (:ghissue:`122`). * Fix regression that prevented executable, but unreadable files from being found when not specified by absolute path -- such as /usr/bin/sudo (:ghissue:`104`). * Fixed regression when executing pexpect with some prior releases of the multiprocessing module where stdin has been closed (:ghissue:`86`). Backwards incompatible changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Deprecated ``pexpect.screen`` and ``pexpect.ANSI``. Please use other packages such as `pyte <https://pypi.python.org/pypi/pyte>`__ to emulate a terminal. * Removed the independent top-level modules (``pxssh fdpexpect FSM screen ANSI``) which were installed alongside Pexpect. These were moved into the Pexpect package in 3.0, but the old names were left as aliases. * Child processes created by Pexpect no longer ignore SIGHUP by default: the ``ignore_sighup`` parameter of :class:`pexpect.spawn` defaults to False. To get the old behaviour, pass ``ignore_sighup=True``. ``` ### 3.3 ``` * Added a mechanism to wrap REPLs, or shells, in an object which can conveniently be used to send commands and wait for the output (:mod:`pexpect.replwrap`). * Fixed issue where pexpect would attempt to execute a directory because it has the 'execute' bit set (:ghissue:`37`). * Removed the ``pexpect.psh`` module. This was never documented, and we found no evidence that people use it. The new :mod:`pexpect.replwrap` module provides a more flexible alternative. * Fixed ``TypeError: got <type 'str'> ('\r\n') as pattern`` in :meth:`spawnu.readline` method (:ghissue:`67`). * Fixed issue where EOF was not correctly detected in :meth:`~.interact`, causing a repeating loop of output on Linux, and blocking before EOF on BSD and Solaris (:ghissue:`49`). * Several Solaris (SmartOS) bugfixes, preventing :exc:`IOError` exceptions, especially when used with cron(1) (:ghissue:`44`). * Added new keyword argument ``echo=True`` for :class:`spawn`. On SVR4-like systems, the method :meth:`~.isatty` will always return *False*: the child pty does not appear as a terminal. Therefore, :meth:`~.setecho`, :meth:`~.getwinsize`, :meth:`~.setwinsize`, and :meth:`~.waitnoecho` are not supported on those platforms. After this, we intend to start working on a bigger refactoring of the code, to be released as Pexpect 4. There may be more bugfix 3.x releases, however. ``` ### 3.2 ``` * Fix exception handling from :func:`select.select` on Python 2 (:ghpull:`38`). This was accidentally broken in the previous release when it was fixed for Python 3. * Removed a workaround for ``TIOCSWINSZ`` on very old systems, which was causing issues on some BSD systems (:ghpull:`40`). * Fixed an issue with exception handling in :mod:`~pexpect.pxssh` (:ghpull:`43`) The documentation for :mod:`~pexpect.pxssh` was improved. ``` ### 3.1 ``` * Fix an issue that prevented importing pexpect on Python 3 when ``sys.stdout`` was reassigned (:ghissue:`30`). * Improve prompt synchronisation in :mod:`~pexpect.pxssh` (:ghpull:`28`). * Fix pickling exception instances (:ghpull:`34`). * Fix handling exceptions from :func:`select.select` on Python 3 (:ghpull:`33`). The examples have also been cleaned up somewhat - this will continue in future releases. ``` ### 3.0 ``` The new major version number doesn't indicate any deliberate API incompatibility. We have endeavoured to avoid breaking existing APIs. However, pexpect is under new maintenance after a long dormancy, so some caution is warranted. * A new :ref:`unicode API <unicode>` was introduced. * Python 3 is now supported, using a single codebase. * Pexpect now requires at least Python 2.6 or 3.2. * The modules other than pexpect, such as :mod:`pexpect.fdpexpect` and :mod:`pexpect.pxssh`, were moved into the pexpect package. For now, wrapper modules are installed to the old locations for backwards compatibility (e.g. ``import pxssh`` will still work), but these will be removed at some point in the future. * Ignoring ``SIGHUP`` is now optional - thanks to Kimmo Parviainen-Jalanko for the patch. We also now have `docs on ReadTheDocs <https://pexpect.readthedocs.io/>`_, and `continuous integration on Travis CI <https://travis-ci.org/pexpect/pexpect>`_. ```
Links - PyPI: https://pypi.org/project/pexpect - Changelog: https://pyup.io/changelogs/pexpect/ - Docs: https://pexpect.readthedocs.io/