github xonsh/xonsh 0.9.19

latest releases: 0.16.0, 0.15.1, 0.15.0...
3 years ago

Added:

  • history command now supports flush action

  • Added new items on "Bash to xsh" page

  • JsonHistory: added history gc --force switch to allow user to override above warning.

  • JsonHistoryGC: display following warning when garbage collection would delete "too" much data and don't delete anything.

    "Warning: History garbage collection would discard more history ({size_over} {units}) than it would keep ({limit_size}).\n"
    "Not removing any history for now. Either increase your limit ($XONSH_HIST_SIZE), or run history gc --force.",

    It is displayed when the amount of history on disk is more than double the limit configured (or defaulted) for $XONSH_HIST_SIZE.

  • $LS_COLORS code 'mh' now recognized for (multi) hard-linked files.

  • $LS_COLORS code 'ca' now recognized for files with security capabilities (linux only).

  • CI step to run flake8 after pytest.

  • RichCompletion for completions with different display value, description and prefix_len.

  • Allow completer access to multiline document when available via xonsh.completers.tools.get_ptk_completer().current_document.

  • abbrevs word expasion can now be reverted by pressing
    the space bar second time immediately after the previous
    word got expanded.

  • ulimit command.

  • pdb xontrib, that runs pdb debugger on reception of SIGUSR1 signal.

  • xontrib-xpg is a xontrib for running or explaining sql queries for posgresql database.

Changed:

  • Xonsh now launches subprocesses with their argv[0] argument containing
    the command exactly as inserted by the user instead of setting it to the
    resolved path of the executable. This is for consistency with bash and other
    shells.
  • Added ability to register, deregister environment variables;
    centralized environment default variables
  • Added exit to the "Bash to xsh" article.
  • xonsh.main _failback_to_other_shells now tries user's login shell (in $SHELL) before trying system wide shells from /etc/shells.
  • The current working directory is now correctly obtained in line 501 of xonsh/parsers/base.py
  • Garbage collection avoids deleting history and issues a warning instead if existing history is more than double the comfigured limit.
    This protects active users who might have accumulated a lot of history while a bug was preventing garbage collection. The warning
    will be displayed each time Xonsh is started until user takes action to reconcile the situation.
  • tests\test_integrations.py no longer runs with XONSH_DEBUG=1 (because new, debug-only progress messages from history were breaking it).
  • Updated pytest_plugin for pytest 5.4 API, pip requirements for pytest>= 5.4
  • Major improvements to Jedi xontrib completer:
    • Use new Jedi API
    • Replace the existing python completer
    • Create rich completions with extra info
    • Use entire multiline document if available
    • Complete xonsh special tokens
    • Be aware of _ (last result)
    • Only show dunder attrs when prefix ends with '_'
  • Many files are starting to be formatted using pyupgrade --py36-plus, in order to automatically update to newer
    Python constructs.
  • xontrib load does not stop loading modules on error any more.

Deprecated:

  • pytest --flake8 now exits with error message to use flake8 instead.
    Allows single list of lint exceptions to apply in CI and your IDE.

Removed:

  • Removed history replay
  • pytest-flake8 package from requirements*.txt
  • Xonsh now relies exclusively on Setuptools for install.
  • Compatibility with Python 3.5 has been removed as well as all related code. In
    particular xonsh.inspector does not defined getouterframes anymore, use
    inspect.getouterframe directly.

Fixed:

  • Unhandled exception triggered by unexpected return from callable alias.

  • Fix path completer throwing exception sometimes

  • Fixed help operator not displaying definition for callables.

  • JsonHistory.files(): Now once again enumerates history files from the directory. This has been broken for about 2 years.

  • JsonHistory.run_gc(): Don't busy loop while waiting for history garbage collection to complete, sleep a bit instead.
    This does much to keep Xonsh ptk_shell responsive when dealing with very large history on disk.

  • Fixed JSON history indexing error.

  • Fixed syntax error in scripts containing line continuation syntax.

  • $LS_COLORS code 'fi' now used for "regular files", as it should have been all along. (was 'rs')
    See (#3608)[https://github.com//issues/3608].

  • pyghooks.color_files now follows implememntation of ls --color closely. Thanks @qwenger!
    However, a few documented differences remain due to use in Xonsh.

  • $LS_COLORS['ln'] = 'target' now works. Also fixes #3578.

  • Fixed exit code for commands executed via -c (#3402)

  • Logical subprocess operators now work after long arguments (e.g. --version).

  • pip completer no longer erroneously fires for pipx

  • Updated development guide to reference flake8 instead of pylint

  • Corrected flake8 config for allowed exceptions.

  • various pytest warnings in a "clean" test run.

  • The current Mercurial topic is shown.

  • Fixed import problems due to modules using deprecated pkg_resources methods by proxying calls to the underlying loader.

  • Typo in 'source' alias.

  • Crash in 'completer' completer.

  • Don't complete unnecessarily in 'base' completer

  • Viewing mock objects in the shell

  • Fixed formatting error in vox rm command.

Authors:

  • Anthony Scopatz
  • Gil Forsyth
  • Morten Enemark Lund
  • Bob Hyman
  • David Strobach
  • Burak Yiğit Kaya
  • Matthias Bussonnier
  • anki-code
  • David Dotson
  • con-f-use
  • Daniel Shimon
  • Jason R. Coombs
  • Gyuri Horak
  • Achim Herwig
  • Marduk Bolaños
  • Stefane Fermigier
  • swedneck
  • Feng Tian
  • cafehaine
  • paugier

Don't miss a new xonsh release

NewReleases is sending notifications on new releases.