Xonsh

Latest version: v0.16.0

Safety actively analyzes 638466 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 16 of 20

0.5.8

====================

**Changed:**

* The ``xonsh.platform.os_environ`` wrapper is now case-insensitive and
case-preserving on Windows.
* The private ``_TeeStd`` class will no longer attempt to write to a
standard buffer after the tee has been 'closed' and the standard
buffer returned to the system.


**Fixed:**

* Fixed a bug on py34 where os.scandir was used by accident.
* Line continuations (``\\``) is subproc mode will no longer consume the
surrounding whitespace.
* Fixed a bug if foreign_shell name was not written in lower case in
the static configuration file ``config.json``
* Fixed a regression on Windows where caused ``which`` reported that the
``PATH`` environment variable could not be found.
* Fixed issue with foregrounding jobs that were started in the background.
* Fixed that ``Ctrl-C`` crashes xonsh after running an invalid command.
* Fixed an potential ``ProcessLookupError`` issue, see 2288.

0.5.7

====================

**Added:**

* New ``color_tools`` module provides basic color tools for converting
to and from various formats as well as creating palettes from color
strings.
* Redirections may now be used in string and list-of-strings
aliases.
* Subprocess redirection may now forego the whitespace between the
redirection and a file name. For example,
``echo hello world >/dev/null``.
* Add a ``-P`` flag to the ``cd`` function in order to change directory and
following symlinks.
* ``xonfig tutorial`` command to launch the http://xon.sh/tutorial in the
browser.
* ``(...)`` syntax now supports generators and tuples without parentheses.
* Sourcing foreign shells now have the ``--show`` option, which
lets you see when script will be run, and the ``--dryrun``
option which prevents the source from actually taking place.
Xonsh's foreign shell API also added these keyword arguments.
* Subprocess mode now supports subshells. Place any xonsh
code between two parentheses, e.g. ``(cmd)``, to run
this command in a separate xonsh subprocess.
* Foreign shell aliases now have the ability to take extra arguments,
if needed.
* Xonsh will issue a warning message when the current working
directory has been remove out from under it and not replaced
prior to running the next command.
* Line continuation backslashes are respected on Windows in the PTK shell if
the backspace is is preceded by a space.
* Added ``ponysay`` as a command which will usually not run in a
threaded mode in the commands cache.
* New ``jsonutils`` module available for serializing special
xonsh objects to JSON.


**Changed:**

* The literal tokens ``and`` and ``or`` must be surrounded by
whitespace to delimit subprocess mode. If they do not have
whitespace on both sides in subproc mode, they are considered
to be part of a command argument.
* The ``xontrib`` command is now flagged as unthreadable and will be
run on the main Python thread. This allows xontribs to set signal
handlers and other operations that require the main thread.
* nvim (Neovim) has been flagged as unthreadable
* The interactive prompt will now catch ``SystemExit`` and, instead
of exiting the session, will refresh the prompt. This is the same
process as for keyboard interrupts.
* Xonsh no longer launches the wizard for new users. Instead a welcome screen is
shown which says how to launch the wizard.
* Added Windows ``expanduser()``-like function which prevents
the expansion of ``~`` that are not followed by a path
separator.
* Collecting xonsh history files was reported to have random runtime
OSError failures. This exception is now handled, just in case. The
The exception will still be printed in debug mode.
* ``Shell.stype`` has been renamed to ``Shell.shell_type``.
* The configuration wizard now displays the proper control sequence to leave
the wizard at the to start of the wizard itself. Note that this is Ctrl+D for
readline and Ctrl+C for prompt-toolkit.
* Callable alias proxy functions are now more friendly to
``functools.partial()``.
* ``prompt.vc.get_hg_branch`` now uses ``os.scandir`` to walk up the filetree
looking for a ``.hg`` directory. This results in (generally) faster branch
resolution compared to the subprocess call to ``hg root``.
* Xonsh's script and code caches will are now invalidated whenever the
xonsh version changes for a given Python version.
* Autowrapping of subprocess globs has been improved to cover
more cases that are ambiguous with Python syntax.
* Job control info when foregrounding or backgrounding jobs will now
only be displayed when xonsh is in interactive mode.
* Enabled virtual terminal processing in the prompt-toolkit shell for Windows.


**Fixed:**

* 3rd party pygments styles (like solorized or monokailight) are now
able to be used in xonsh. These styles are dynamically created upon
first use, rather than being lazily loaded by xonsh.
* On Windows, ``os.environ`` is case insensitive. This would potentially
change the case of environment variables set into the environment.
Xonsh now uses ``nt.environ``, the case sensitive counterpart, to avoid
these issues on Windows.
* Fix how ``$PWD`` is managed in order to work with symlinks gracefully
* ``history replay`` no longer barfs on ``style_name`` when setting up the
environment
* ``Shell.shell_type`` is now properly set to the same value as ``$SHELL_TYPE``.
* Fixed ``source-zsh`` to work with zsh v5.2.
* Fixed issue where ``del (x, y)`` would raise a syntax error.
* Certain vim commands issue commands involving subshells,
and this is now supported.
* Null bytes handed to Popen are now automatically escaped prior
to running a subprocess. This prevents Popen from issuing
embedded null byte exceptions.
* Xonsh will no longer crash is the current working directory is
removed out from under it.
* Multiline strings can now be written in subprocess mode.
* PTK completions will now correctly deduplicate autosuggest completions
and display completions values based on the cursor position.
* Fixed bug where trailing backspaces on Windows paths could be interpreted
as line continuations characters. Now line continuation characters must be
preceded by a space on Windows. This only applies to xonsh in interactive
mode to ensure scripts are portable.
* Importing ``*.xsh`` files will now respect the encoding listed in
that file and properly fallback to UTF-8. This behaviour follows
the rules described in PEP 263.
* Wizard is now able to properly serialize environment paths.

0.5.6

====================

**Added:**

* New core utility function aliases (written in pure Python) are now
available in ``xonsh.xoreutils``. These include: ``cat``, ``echo``,
``pwd``, ``tee``, ``tty``, and ``yes``. These are not enabled by default.
Use the new ``coreutils`` xontrib to load them.
* CircleCI test post codecov run
* The ``trace`` will automatically disable color printing when
stdout is not a TTY or stdout is captured.
* New ``jedi`` xontrib enables jedi-based tab completions when it is loaded.
This supersedes xonsh's default Python-mode completer.
* The lexer has a new ``split()`` method which splits strings
according to xonsh's rules for whitespace and quotes.
* New events for hooking into the Python import process are now available.
You can now provide a handler for:

- ``on_import_pre_find_spec``
- ``on_import_post_find_spec``
- ``on_import_pre_create_module``
- ``on_import_post_create_module``
- ``on_import_pre_exec_module``
- ``on_import_post_exec_module``


**Changed:**

* The prompt toolkit shell's first completion will now be the
current token from the auto-suggestion, if available.
* Sourcing foreign shells will now safely skip applying aliases
with the same name as existing xonsh aliases by default.
This prevents accidentally overwriting important xonsh standard
aliases, such as ``cd``.


**Fixed:**

* Threadable prediction for subprocesses will now consult both the command
as it was typed in and any resolved aliases.
* The first prompt will no longer print in the middle of the line if the user has
already started typing.
* Windows consoles will now automatically enable virtual terminal processing
with the readline shell, if available. This allows the full use of ANSI
escape sequences.
* On the Windows readline shell, the tab-completion suppression prompt will no
longer error out depending on what you press.
* Fixed issue with subprocess mode wrapping not respecting line continuation
backslashes.
* Handle a bug where Bash On Windows causes platform.windows_bash_command()
to raise CalledProcessError.
* Fixed issues pertaining to completing from raw string paths.
This is particularly relevant to Windows, where raw strings
are inserted in path completion.
* Replace deprecated calls to ``time.clock()`` by calls to
``time.perf_counter()``.
* Use ``clock()`` to set the start time of ``_timings`` in non-windows instead
of manually setting it to ``0.0``.
* The ``trace`` utility will now correctly color output and not
print extraneous newlines when called in a script.
* The ``$(cmd)`` operator now correctly splits strings according to
xonsh semantics, rather than just on whitespace using ``str.split()``.
* The ``mpl`` xontrib has been updated to improve matplotlib
handling. If ``xontrib load mpl`` is run before matplotlib
is imported and xonsh is in interactive mode, matplotlib
will automatically enter interactive mode as well. Additionally,
``pyplot.show()`` is patched in interactive mode to be non-blocking.
If a non-blocking show fails to draw the figure for some reason,
a regular blocking version is called.
* Fixed issues like ``timeit ls`` causing OSError - "Inappropriate ioctl
for device".
* Fixed a potential "OSError: [Errno 22] Invalid argument" to increase job
control stability.

0.5.5

====================

**Added:**

* New ``--rc`` command line option allows users to specify paths to run control
files from the command line. This includes both xonsh-based and JSON-based
configuration.
* New ``$UPDATE_COMPLETIONS_ON_KEYPRESS`` controls whether or not completions
will automatically display and update while typing. This feature is only
available in the prompt-toolkit shell.


**Changed:**

* Xonsh scripts now report ``__file__`` and ``__name__`` when run as scripts
or sourced. These variables have the same meaning as they do in Python
scripts.
* ``$XONSHRC`` and related configuration variables now accept JSON-based
static configuration file names as elements. This unifies the two methods
of run control to a single entry point and loading system.
* The ``xonsh.shell.Shell()`` class now requires that an Execer instance
be explicitly provided to its init method. This class is no longer
responsible for creating an execer an its dependencies.
* Moved decorators ``unthreadable``, ``uncapturable`` from
``xonsh.proc`` to ``xonsh.tools``.
* Some refactorings on jobs control.


**Deprecated:**

* The ``--config-path`` command line option is now deprecated in favor of
``--rc``.


**Removed:**

* ``xonsh.environ.DEFAULT_XONSHRC`` has been removed due to deprecation.
For this value, please check the environment instead, or call
``xonsh.environ.default_xonshrc(env)``.


**Fixed:**

* Command pipelines that end in a callable alias are now interruptable with
``^C`` and the processes that are piped into the alias have their file handles
closed. This should ensure that the entire pipeline is closed.
* Fixed issue where unthreadable subprocs were not allowed to be
captured with the ``$(cmd)`` operator.
* The ``ProcProxy`` class (unthreadable aliases) was not being executed and would
hang if the alias was capturable. This has been fixed.
* Fixed a ``tcsetattr: Interrupted system call`` issue when run xonsh scripts.
* Fixed issue with ``ValueError`` being thrown from ``inspect.signature()``
when called on C-extension callables in tab completer.
* Fixed issue that ``ls | less`` crashes on Mac.
* Threadable prediction was incorrectly based on the user input command, rather than
the version where aliases have been resolved. This has been corrected.

0.5.4

====================

**Added:**

* Add alias ``xip`` ("kip") so that xonsh's Python environment (whatever that is) can be modified.
* HistoryEntry, a SimpleNamespace object that represents a command in history.
* ``xonsh.completers.bash_completion`` module
* Added option to report timing information of xonsh startup times. Start xonsh
with the ``--timings`` flag to use the feature.
* The Python tab completer will now complete the argument names of functions
and other callables.
* Uptime module added to ``xonsh.xoreutils``. This can report the system
boot time and up time.
* The environment variable ``XONSH_HISTORY_BACKEND`` now also supports a
value of class type or a History Backend instance.
* ``on_envvar_new`` event that fires after a new envvar is created.
* ``on_envvar_change`` event that fires after an envvar is changed.


**Changed:**

* history indexing api to be more simple, now returns HistoryEntry.
* Decoupled ``bash_completion`` from xonsh project and added shim back to
xonsh.
* The JSON history backend will now unlock history files that were created
prior to the last reboot.


**Fixed:**

* Fixed broken bash completions on Windows if 'Windows Subsystem for Linux' is installed.
* Readline history would try to read the first element of history prior to
actually loading any history. This caused an exception to be raised on
Windows at xonsh startup when using pyreadline.
* Fixed issue with readline tab completer overwriting initial prefix in
some instances.
* Fixed issue wherein if ``git`` or (presumably) ``hg`` are aliased, then branch
information no longer appears in the ``$PROMPT``
* Fixed an issue with commands that background themselves (such as
``gpg-connect-agent``) not being able to be run from within xonshrc.

0.5.3

====================

**Added:**

* Tab completion xontrib for python applications based on click framework.
* Added ``on_transform_command`` event for pre-processing that macros can't handle.
* Autodetection of backgroundability by binary analysis on POSIX.
* New argument ``expand_user=True`` to ``tools.expand_path``.
* New ``$COMPLETION_QUERY_LIMIT`` environment variable for setting the
number of completions above which the user will be asked if they wish to
see the potential completions.
* Users may now redirect stdout to stderr in subprocess mode.


**Changed:**

* The ``Block`` and ``Functor`` context managers from ``xonsh.contexts`` have been
rewritten to use xonsh's macro capabilities. You must now enter these via the
``with!`` statement, e.g. ``with! Block(): pass``.
* The ``distributed`` xontrib now needs to use the ``with!`` statement, since it
relies on ``Functor``.
* ``telnet`` has been flagged as unthreadable.
* When ``$DYNAMIC_CWD_ELISION_CHAR`` is non empty and the last dir of cwd is too
long and shortened, the elision char is added at the end.
* ``pygments`` is no longer a strict dependency of the ``prompt_toolkit``
backend. If ``pygments`` is not installed, the PTK backend will use the
default ansi color settings from the terminal. Syntax highlighting requires
that ``pygments`` is installed.
* Events are now keyword arguments only
* Restored ``on_precommand`` to its original signature.
* Move ``built_ins.expand_path`` to ``tools.expand_path``.
* Rename ``tools.expandpath`` to ``tools._expandpath``.
* Added ``gvim`` command to unthreadable predictors.
* The ``source`` alias now passes ``$ARGS`` down to file it is sourcing.


**Removed:**

* ``XonshBlockError`` has been removed, since it no longer serves a purpose.


**Fixed:**

* ``PopenThread`` will now re-issue SIGINT to the main thread when it is
received.
* Fixed an issue that using sqlite history backend does not kill unfinished
jobs when quitting xonsh with a second "exit".
* Fixed an issue that xonsh would fail over to external shells when
running .xsh script which raises exceptions.
* Fixed an issue with ``openpty()`` returning non-unix line endings in its buffer.
This was causing git and ssh to fail when xonsh was used as the login shell on the
server. See https://mail.python.org/pipermail/python-list/2013-June/650460.html for
more details.
* Restored the ability to ^Z and ``fg`` processes on posix platforms.
* CommandPipelines were not guaranteed to have been ended when the return code
was requested. This has been fixed.
* Introduce path expansion in ``is_writable_file`` to fix
``$XONSH_TRACEBACK_LOGFILE=~/xonsh.log``.
* Backgrounding a running process (^Z) now restores ECHO mode to the terminal
in cases where the subprocess doesn't properly restore itself. A major instance
of this behaviour is Python's interactive interpreter.
* Readline backend would not ask the user to confirm the printing of completion
options if they numbered above a certain value. Instead they would be dumped to
the screen. This has been fixed.
* Jupyter kernel was no longer properly running subprocess commands.
This has been fixed.
* The filename is applied to the target of the ``source`` alias, providing better
tracebacks.

Page 16 of 20

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.