Changelog History
Page 5
-
v0.9.1 Changes
π Changed:
- We no longer manually check the Python version in
setup.py
, but instead use the setuptoolspython_requires
feature.
π Fixed:
- π Updates for integrating with new colors styles in Pygments v2.4.0.
Authors:
- Anthony Scopatz
- We no longer manually check the Python version in
-
v0.9.0 Changes
β Added:
- Implemented the following "bang command" bashisms:
!$
,$*
,!^
, and!<str>
. These are in addition to!!
, which was already implemented. - asciinema (terminal recorder) added in not threadable commands.
- tput added in not threadable commands.
- New
color_tools.KNOWN_XONSH_COLORS
frozenset. - π New
pyghooks.PYGMENTS_MODIFIERS
mapping from color modifier names to pygments colors. - New
pyghooks.color_name_to_pygments_code()
function for converting color names into pygments color codes.
π Changed:
Circle now runs
black
checks on contents of bundled xontribsThe
black
checks no longer skip some files buried deeper in the directory tree.Errors while formatting the prompt are highlighted for easier debugging.
π Pygments styles only define the standard set of colors, by default. Additional colors are computed as needed.
PTYs created for running threadable command have now size set to same size than main terminal.
π Update documentation pointing to the minimal required version of Python (3.5).
π Deprecated:
- β¬οΈ Drop support for Python 3.4.
β Removed:
pyghooks.KNOWN_COLORS
is no longer needed or useful as pygments colors are computed automatically.style_tools.KNOWN_COLORS
was never used, redundant withpyghooks.KNOWN_COLORS
and has thus been removed.
π Fixed:
- π Fixed a DeprecationWarning that would show up during an import of MutableSet.
- π Fixed error with aliases composed of functions wrapped in functools.partial.
black
formatted all xontribs- 0οΈβ£ deleting a non existing environement variable with default value do nothing instead of raising a exception trying to deleting it in existing values dict.
- π Fixed crash while converting ANSI color codes with leading zeroes
- π Fixed crash while parsing invalid ANSI color code
- π fix causing infinite loop when doing
cat
empty file - π Fixed issue which occurs when user doesn't have access to parent directory and xonsh scan all parents directory to find if we are in a Hg repository.
- π Fixed issue with pygments-cache not properly generating a cache the first
time when using prompt-toolkit when using
ptk2
. This was due to a lingering lazy import ofpkg_resources
that has been removed. - β‘οΈ Minor update for Python v3.8.
- π Fixed a "'NoneType' object is not iterable" bug when looking up
stty
in command cache. - π The release tarball now includes all test files.
- Arguments passed to python in 'scripts/xonsh' and in 'scripts/xonsh-cat' are now passed by a portable hack in sh, not anymore by /usr/bin/env.
Authors:
- Anthony Scopatz
- Gil Forsyth
- Jean-Benoist Leger
- David Strobach
- virus
- Carmen Bianca Bakker
- Alexander Sosedkin
- Kale Kundert
- AndrΓ©s GarcΓa GarcΓa
- Samuel Dion-Girardeau
- Steven Kryskalla
- Rodrigo Oliveira
- Implemented the following "bang command" bashisms:
-
v0.8.12 Changes
β Added:
- π Support for more ANSI escape sequence modifers allowed in color names. The current modifiers now allowed are: BOLD, FAINT, ITALIC, UNDERLINE, SLOWBLINK, FASTBLINK, INVERT, CONCEAL, and STRIKETHROUGH.
- New
ansi_tools.ansi_color_name_to_escape_code()
function for converting a color name to an ANSI escape code. color_tools.RE_XONSH_COLOR
is a regular expression for matching xonsh color names.- β
color_tools.iscolor()
is a simple function for testing whether a string is a valid color name or not. - The
tools.all_permutations()
function yields all possible permutations of an iterable, including removals.
π Changed:
- π change url of xontrib-autojump
- π ANSI color styles may now be defined simply by their plain and intense colors.
SET_FOREGROUND_3INTS_
renamed toSET_FOREGROUND_FAINT_
,SET_BACKGROUND_3INTS_
renamed toSET_BACKGROUND_FAINT_
,SET_FOREGROUND_SHORT_
renamed toSET_FOREGROUND_SLOWBLINK_
, andSET_BACKGROUND_SHORT_
renamed toSET_BACKGROUND_SLOWBLINK_
.
β Removed:
ansi_tools.ANSI_REVERSE_COLOR_NAME_TRANSLATIONS
removed, as it is no longer needed.
π Fixed:
- π Fixed issues where
$LS_COLORS
could not convert valid ANSI colors.
Authors:
- Anthony Scopatz
- virus
-
v0.8.11 Changes
β Added:
- New
xonsh.color_tools.short_to_ints()
function for directly converting a short (0 - 256) color into a 3-tuple of ints representing its RGB value. - New
xonsh.ansi_colors.ansi_reverse_style()
function for converting a mapping of color names to ANSI escape codes into a mapping from escape codes into color names. This is not a round-trippable operation. - New
xonsh.ansi_colors.ansi_color_escape_code_to_name()
function for converting an ANSI color escape code into the closest xonsh color name for a given style. - π New
xonsh.events.EventManager.exists()
method enables checking whether events actually exist without making the event if it doesn't exist. - New command-specific event categories called
on_pre_spec_run_<cmd-name>
andon_post_spec_run_<cmd-name>
will be fired before and afterSubpocSpec.run()
is called. This allows for command specific events to be executed. For example,on_pre_spec_run_ls
would be run prior to an invocation ofls
. - π New
xonsh.environ.LsColors
class for managing the$LS_COLORS
environment variable. This ensures that thels
command respects the$XONSH_COLOR_STYLE
setting. An instance of this class is added to the environment when either the$LS_COLORS
class is first accessed or thels
command is executed. - The
on_pre_spec_run_ls
event is initialized with a default handler that ensures that$LS_COLORS
is set in the actual environment prior to running anls
command. - π New
xonsh.tools.detype()
function that simply calls an object's owndetype()
method in order to detype it. - π New
xonsh.tools.always_none()
function that simply returnsNone
. - π New
Env.set_ensurer()
method for setting an ensurer on an environment.
π Changed:
- π
The black and white style
bw
now uses actual black and white ANSI colore codes for its colors, rather than just empty color sequences. - An environment variable
detype
operation no longer needs to be a function, but may also beNone
. IfNone
, this variable is considered not detypeable, and will not be exported to subprocess environments via theEnv.detype()
function. - An environment variable
detype
function no longer needs to return a string, but may also returnNone
. IfNone
is returned, this variable is considered not detypeable, and will not be exported to subprocess environments via theEnv.detype()
function. - β‘οΈ The
Env.detype()
method has been updated to respect the newNone
types when detyping. - β‘οΈ The
xonsh.tools.expandvars()
function has been updated to respect the newNone
types when detyping. - The
xonsh.xonfig.make_xonfig_wizard()
function has been updated to respect the newNone
types when detyping. - Event handlers may now be added and discarded during event firing for normal events. Such modifications will not be applied until the current firing operation is concluded. Thus you won't see newly added events fired.
- xonsh now uses its own vendored version of ply. Any installed versions will no longer be used. This reflects that ply is no longer distributed as an installable package.
- β‘οΈ Updated to use ply version 3.11.
- Reverted change in
give_to_terminal
to restore working version ofcmake
,rm -i
, etc. This breakspv | head
.
π Deprecated:
- The
xonsh.color_tools.make_pallete()
function is no longer deprecated, as it is actually needed in other parts of xonsh still, such aspyghooks
.
β Removed:
- π All code references to
$FORMATTER_DICT
have been removed.
π Fixed:
- Resolved issues where macro functions were not able to properly
accept single-line statements in
exec
andsingle
mode. - π Minor fixes to
xonsh.events.debug_level()
. - π Fixed a regression where some interactive commands were not waited for properly for long enough.
π Fixed environments not showing in the prompt when using Anaconda Python.
π Fixed regression with anaconda activate/deactivate scripts not working on Windows.
Authors:
- Anthony Scopatz
- Morten Enemark Lund
- New
-
v0.8.10 Changes
β Added:
- New
xonsh.aliases.partial_eval_alias()
function and related classes for dispatching and evaluating partial alias applications for callable aliases.
π Changed:
- Subprocesses will no longer close file descriptors automatically.
This was causing issues with other commands that expected file
descriptors to remain open, such as
make
. - β‘οΈ The
xonsh.Aliases.eval_alias()
method updated to usexonsh.aliases.partial_eval_alias()
.
π Fixed:
- π Fixed
xonsh.completers.base.complete_base()
to no longer throw an error caused bycomplete_python()
sometimes returning a tuple. This fixes cases such asls &&<TAB>
. - π Fixed regression with line continuations in implicit subprocess mode within indented blocks of code, such as if-statements.
- π¦ Resolved issue where setting empty signal masks was causing the
terminal to close. This was problematic for certain command
pipelines. For example,
pv /dev/urandom | head
now works. - Prevents recursive errors from being raised when there is no child process
in
xonsh.jobs.wait_for_active_job()
. - π Tweaked
xonsh.completers.commands.complete_skipper()
to insert a space following certain tokens (&&
,||
,|
,and
,or
) to avoid overwriting existing tokens with completer output. - π Fixed bug with evaluating recursive aliases that did not implement the full callable alias signature.
Authors:
- Anthony Scopatz
- Gil Forsyth
- Troy de Freitas
- New
-
v0.8.9 Changes
β Added:
- New
env_prefix
&env_postfix
prompt fields for rendering the pre- and post-fix characters of the an active virtual environment. - ON_WSL attribute in platform.py
- Rendering of
{env_name}
in$PROMPT
is now suppressed if the$VIRTUAL_ENV_DISABLE_PROMPT
environment variable is defined and truthy. - Rendering of
{env_name}
in$PROMPT
is now overridden by the value ofstr($VIRTUAL_ENV_PROMPT)
if that environment variable is defined andnot None
.$VIRTUAL_ENV_DISABLE_PROMPT
takes precedence over$VIRTUAL_ENV_PROMPT
. - π A xontrib which adds support for
direnv <https://direnv.net/>
_
π Changed:
env_name
prompt field now looks up the pre- and post-fix characters, rather than relying on hard-coded values.- Some minor
history show
efficiency improvements. - If we are on wsl, avoid to use xonsh_preexec_fn when pipe.
π Fixed:
- π Made
$PATH
searching more robust to broken symlinks on Windows. - undesirable SIGSTOP by putting in a SIGCONT
- π Fixed issue with recursive aliases not being passed all keyword arguments
that are part of the callable alias spec. This allows commands like
aliases['hsa'] = "history show all"; hsa | head
to no longer fail with strange errors.
Authors:
- Anthony Scopatz
- Sagar Tewari
- Brian Skinn
- Yohei Tamura
- anatoly techtonik
- 74th
- Chad Kennedy
- New
-
v0.8.8 Changes
β Added:
vox new
has an added-p --interpreter
flag for choosing the Python interpreter to use for virtualenv creation- 0οΈβ£ The default Python intrepreter vox uses to create virtual environments can be set using the
$VOX_DEFAULT_INTERPRETER
environment variable.
π Changed:
lib.ChainDB
now resolves results to the type of the inputs if possible
-
v0.8.7 Changes
β Added:
- π New xonsh syntax
pf
strings -- combining path strings with f-strings.
Usage:
.. code-block:: bash
gil@bad_cat ~ $ repos = 'github.com' gil@bad_cat ~ $ pf"~/{repos}" PosixPath('/home/gil/github.com') gil@bad_cat ~ $ pf"{$HOME}" PosixPath('/home/gil') gil@bad_cat ~ $ pf"/home/${'US' + 'ER'}" PosixPath('/home/gil')
π Fixed:
- 0οΈβ£ Set
ls
topredict_true
indefault_threadable_predictors
. This preventsls
on OSX from being flagged on OSX as unthreadable (incorrectly) because it relies onncurses
.
- π New xonsh syntax
-
v0.8.6 Changes
β Added:
- β‘οΈ Doco about how to update xonsh and how to set and unset environment variables
π Fixed:
β‘οΈ Updated behavior of the
cat
coreutils function so that it properly handles as vareity of cases such as:- Exits after concatenating normal files which have a finite size
- Continues to run for special files which do not have a size,
such as
/dev/random
- Is interruptable in all cases with Crtl-C.
Callable aliases were not properly raising a
CalledProcessError
when they returned a non-zero exist status when$RAISE_SUBPROC_ERROR = True
. This has been fixed.π Fixed interpretation of color names with PTK2 and Pygments 2.3.1.
-
v0.8.5 Changes
β Added:
β Add alias to
base16 shell <https://github.com/chriskempson/base16-shell>
_Installation / Usage
- To install use pip
.. code-block:: bash
python3 -m pip install xontrib-base16-shell
2. Add on ``~/.xonshrc`` .. code:: xonsh :number-lines: $BASE16_SHELL = $HOME + "/.config/base16-shell/" xontrib load base16_shell 3. See image .. image:: https://raw.githubusercontent.com/ErickTucto/xontrib-base16-shell/master/docs/terminal.png :width: 600px :alt: terminal.png
- π New
DumbShell
class that kicks in whenever$TERM == "dumb"
. This usually happens in emacs. Currently, this class inherits from theReadlineShell
but adds some light customization to make sure that xonsh looks good in the resultant terminal emulator. - Aliases from foreign shells (e.g. Bash) that are more than single expressions, or contain sub-shell executions, are now evaluated and run in the foreign shell. Previously, xonsh would attempt to translate the alias from sh-lang into xonsh. These restrictions have been removed. For example, the following now works:
.. code-block:: sh
$ source-bash 'alias eee="echo aaa \$(echo b)"' $ eee aaa b
- π New
ForeignShellBaseAlias
,ForeignShellFunctionAlias
, andForeignShellExecAlias
classes have been added which manage foreign shell alias execution.
π Changed:
- π String aliases will now first be checked to see if they contain sub-expressions
that require evaluations, such as
@(expr)
,$[cmd]
, etc. If they do, then anExecAlias
will be constructed, rather than a simple list-of-strs substitutiuon alias being used. For example:
.. code-block:: sh
$ aliases['uuu'] = "echo ccc $(echo ddd)" $ aliases['uuu'] ExecAlias('echo ccc $(echo ddd)\n', filename='<exec-alias:uuu>') $ uuu ccc ddd
- π The
parse_aliases()
function now requires the shell name. ForeignShellFunctionAlias
now inherits fromForeignShellBaseAlias
rather thanobject
.
π Fixed:
- π Fixed issues where the prompt-toolkit v2 shell would print an extra newline after Python evaluations in interactive mode.