xonsh

Python-powered, cross-platform, Unix-gazing shell.

OTHER License

Downloads
69K
Stars
8K
Committers
330

Bot releases are hidden (Show)

xonsh - 0.6.4

Published by scopatz over 6 years ago

Changed:

  • Error message improved for sourcing foreign shells, when file cannot be found
    or there is a syntax error.

Fixed:

  • Fixed issues with readline completer tab completing entries
    with spaces.
  • Fixed xonsh.tools.columnize() bug the prevented single-row
    input from being columnized correctly.
  • Now honor ASYNC and AWAIT as keywords in tokenizer on
    Python 3.7.
xonsh - 0.6.3

Published by scopatz over 6 years ago

Added:

  • Docs for using @(<expr>) as a way to run commands and a gotcha about
    list of strings vs single string expressions.
  • Ubuntu versions which xonsh is packaged for (with xonsh versions)

Changed:

  • When reporting errors without a traceback (i.e. $XONSH_SHOW_TRACEBACK = False) and the error is a XonshError
    the exception type is not longer printed.
  • CommandPipeline.proc may now be None, to accomodate when the process
    fails to even start (i.e. a missing command or incorrect permisions).

Fixed:

  • The curl command will now be run in a thread, which prevents documents that
    do not end in a newline from writing over the next prompt and vice versa.
  • Fix bug on Windows when PATHEXT environment variable did not exist.
    This also fixes building the xonsh documentation on Windows.
  • Fixed a bug in the free_cwd <http://xon.sh/xontribs.html#free-cwd>__ Windows Xontrib, which caused the prompt to error if the current directory is
    deleted/renamed from an other process.
  • Fixed issue with $XONSH_SHOW_TRACEBACK not being respected in subprocess
    mode when the command could not be found or had incorrect permissions.
xonsh - 0.6.2

Published by scopatz over 6 years ago

Added:

  • Release tarballs now include licenses and minimal documentation for xonsh and ply
  • Wizard now has a FileInserter node that allows blocks to be
    inserted and replaced inside of a file. This adheres to conversion
    rules fordumping as provided on this node.
  • New xonsh.wizard.StateVisitor.flatten() method for flattening the
    current state.

Changed:

  • The xonsh startup wizard will only be triggered if no xonshrc files exist
    and the file ~/.local/config/xonsh/no-wizard is not present.
  • The xonfig wizard command will now run write out to the xonshrc file.
  • Wizard nodes Save and Load had their names changed to SaveJSON
    and LoadJSON.

Removed:

  • Static configuration is dead (config.json), long live run control (xonshrc)!
  • The following evironment variables have been removed as they are no longer needed:
    $LOADED_CONFIG and $XONSHCONFIG.
  • Many support functions for static configuration have also been removed.

Fixed:

  • Files starting with # are auto-escaped by TAB completion
xonsh - 0.6.1

Published by scopatz over 6 years ago

Added:

  • Support for MSYS2.
  • New xonsh.main.setup() function for starting up xonsh in 3rd party
    packages.

Changed:

  • Updated CircleCI to use circle version 2.0
  • Replaced StopIteration with return in CommandPipeline.iterraw.
  • Xonsh run control now also looks for the XDG-compliant file
    ~/.config/xonsh/rc.xsh at startup.

Fixed:

  • Clean out $LINES and $COLUMNS if set, preventing some programs from drawing weirdly
  • cat from xoreutils now outputs in configured encoding
  • Fixed hanging issue with pipelines whose middle processes exit before the
    first or last process.
  • Fixed issue where xonsh would deduplicate spaces from bash autocompletions.
  • Fixed failing redirections from stderr to stdout when the command
    being executed was a callable alias.
  • Ensure that the free_cwd contrib can only be active on pure Windows.
  • Made an exceptional case in iglobpath() more robust when Python globbing
    fails for due to strange scrandir issue.
  • Unexpected process suspension on Cygwin and MSYS2.
  • $XONSH_APPEND_NEWLINE will now default to True when in interactive mode.
  • Fixed issue with uncalled lambdas being run in subproc mode.
  • Lambda nodes not have proper line and column numbers in AST.
  • Properly throw SyntaxError when no kwargs are defined
    in a kwarg-only function. This used to throw a
    TypeError: 'NoneType' object is not iterable.
  • Addressed issue where encoding and errors were None when teeing output.
  • Commands like git c would complete to git 'checkout ' because git adds an extra space
    to the end of the completion, which was being captured in the completion. Xonsh now fixes the git issue
    while retaining all whitespace when there is other internal whitespace.
xonsh - 0.6.0

Published by scopatz almost 7 years ago

Added:

  • Added an alias command, matching bash's implementation, available as part of bashisms.

  • New $AUTO_SUGGEST_IN_COMPLETIONS environment variable that enables/disables
    whether the auto-suggestion result appears in the tab completions.

  • Added __add__() and __radd__() methods to EnvPath.

  • Xonsh now supports f-strings, as in Python v3.6+.

  • Added ipython as unthreadable in command cache threadabilty predictors.

  • Added whole_word_jumping xontrib

  • Added $XONSH_APPEND_NEWLINE environment variable

  • Support for PEP 515: Underscores in Numeric Literals

  • xonsh.color_tools.make_palette()

    Simple rename of the pre-existing
    xonsh.color_tools.make_pallete() function.

  • xonsh.tools.decorator() function/method decorator.

    This allows for an API function to be annotated with a
    decorator that documents deprecation, while also tying in
    functionality that will warn a user that the function has
    been deprecated, and, raise an AssertionError if the
    function has passed its expiry date.

  • New xontrib schedule (Xonsh Task Scheduler)

Changed:

  • on_pre_prompt is now fired before prompt calculations are made, allowing modifications to the prompt.
  • emacsclient will now return false in the threadable predictors.
  • Improved the autopair behavior to match that of popular code editors.
  • Moved the lazy pkg_resources package back to its original
    place. The will hopefully address some of the slowdown issues
    experiances on some platforms.
  • When xonsh is used to run an xsh script, the xonshrc is not loaded
  • Change in the behavior of the default predictor with binary analysis. The pattern libgpm is use, assuming when gpm is used the program is not threadable. This change solves issues with programs as links.
  • Error messages added to the source command if it is used with a language
    that is not xonsh or Python.

Deprecated:

  • xonsh.color_tools.make_pallette()

    Deprecated in release 0.5.10 and will be removed in release 0.6.0.

Fixed:

  • Now f-strings can be used inside @() without explicit enclosing command in ![]

  • Fix for x, y, *z = ... unpacking.

  • Git branch detection now correctly passes the environment down to the subprocess
    call. This allows for branch detection when git is installed into a non-standard
    location.

  • Escape regex characters in path_complete to avoid regex parsing errors for
    certain combinations of characters in path completer

  • gistatus: Fixed hash not being shown when in detaced HEAD and there are no tags

  • Fix branch colorization when git or hg are aliases.

  • Fixed leftover .git/index.lock in gitstatus

  • Made JSON history loading more robust to corrupt files.

  • Starting a new command with an open parentheses will no longer
    throw a traceback when $UPDATE_COMPLETIONS_ON_KEYPRESS is
    True.

  • Automatically wrapping subprocess calls would sometimes include
    semincolons and other line-ending tokens, rather than stopping at them.
    This has been fixed.

  • Numerous spelling errors in documentation, docstrings/comments, text
    strings and local variable names.

  • Spelling error in the xonsh.color_tools.make_pallete() public
    function declaration. This was fixed by renaming the function to
    xonsh.color_tools.make_palette() while maintaining a binding
    of make_pallete() to the new make_palette() in case users
    are already used to this API.

  • Fixed issue with starting triple quote strings being run as a command.

  • Fixed a problem with escaping charet (^) character for cmd.exe in the source-cmd function.

  • EOF in multi-line statement errors were misreported as being on line 0.
    Now they are correctly reported as being on the last line of the file.

xonsh - 0.5.12

Published by AstraLuma over 7 years ago

Fixed:

  • Fixed release.xsh to prevent it from dirtying the repo on release and
    leading to an unwanted .dev suffix on the version number
xonsh - 0.5.11

Published by AstraLuma over 7 years ago

Added:

  • release.xsh creates a github release with the merged news entries as the
    release body

Fixed:

  • xonfig now displays the proper value for "on linux"
xonsh - 0.5.9

Published by scopatz over 7 years ago

v0.5.9

Added:

  • Add Alt . keybinding to bashisms-xontrib to insert last argument of
    previous command into current buffer

Fixed:

  • Fix crash when openSSH version of bash is on PATH on Windows.

  • Added missing ensurers to make sure that bool env_vars are bools and
    int env_vars are integers:

    • DIRSTACK_SIZE
    • EXPAND_ENV_VARS
    • PUSHD_MINUS
    • PUSHD_SILENT
    • SUGGEST_COMMANDS
    • SUGGEST_MAX_NUM
    • SUGGEST_THRESHOLD
xonsh - 0.5.3

Published by gforsyth over 7 years ago

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
    recieved.
  • 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 gauranteeded 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.
xonsh - 0.5.4

Published by gforsyth over 7 years ago

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.
xonsh - 0.5.5

Published by gforsyth over 7 years ago

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 deprendencies.
  • 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 alais 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
    hange 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-extention 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.
xonsh - 0.5.6

Published by gforsyth over 7 years ago

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 supercedes 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-suggetion, if available.
  • Sourcing foreign shells will now safely skip applying aliases
    with the same name as existing xonsh aliases by default.
    This prevents accitidentally overwriting important xonsh standard
    aliases, such as cd.

Fixed:

  • Threadable predicition 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 teb-completion supression prompt will no
    longer error out depending on what you press.
  • Fixed issue with subprocess mode wrapping not repecting 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 instered 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 ineteractive 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 figre 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.
xonsh - 0.5.7

Published by gforsyth over 7 years ago

Added:

  • New color_tools module provides basic color tools for converting
    to and from various formats as well as creating pallettes 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 ususally 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 condisered
    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 envrionment variables set into the environment.
    Xonsh now uses nt.envrion, 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 preevents 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 beahviour follows
    the rules described in PEP 263.
  • Wizard is now able to properly serialize envrionment paths.
xonsh - 0.5.8

Published by gforsyth over 7 years ago

Changed:

  • The xonsh.platform.os_environ wrapper is now case-insesitive 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 envrionment 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.
xonsh -

Published by scopatz almost 8 years ago

xonsh -

Published by scopatz almost 8 years ago

xonsh -

Published by scopatz almost 8 years ago

xonsh - Macros & Events

Published by AstraLuma about 8 years ago

Added:

  • New option COMPLETIONS_CONFIRM. When set, <Enter> is used to confirm completion instead of running command while completion menu is displayed.
  • NetBSD is now supported.
  • Macro function calls are now available. These use a Rust-like f!(arg) syntax.
  • Macro subprocess call now avalaible with the echo! x y z syntax.
  • A new event subsystem has been added.
  • howto install sections for Debian/Ubuntu and Fedora.
  • History methods __iter__ and __getitem__
  • tools.get_portions that yields parts of an iterable
  • Added a py.test plugin to collect test_*.xsh files and run test_*() functions.
  • __repr__ and __str__ magic method on LazyObject

Changed:

  • create_module implementation on XonshImportHook
  • Results of the bash tab completer are now properly escaped (quoted) when necessary.
  • Foreign aliases that match xonsh builtin aliases are now ignored with a warning.
  • prompt_toolkit completions now only show the rightmost portion of a given completion in the dropdown
  • The value of 'none' is no longer allowed for $SHELL_TYPE just during the initial load from the environment. -D, later times, and other sources still work.
  • yacc_debug=True now load the parser on the same thread that the Parser instance is created. setup.py now uses this synchronous form as it was causing the parser table to be missed by some package managers.
  • Tilde expansion for the home directory now has the same semantics as Bash. Previously it only matched leading tildes.
  • Context sensitive AST transformation now checks that all names in an expression are in scope. If they are, then Python mode is retained. However, if even one is missing, subprocess wrapping is attempted. Previously, only the left-most name was examined for being within scope.
  • dirstack.pushd and dirstack.popd now handle UNC paths (of form \\<server>\<share>\...), but only on Windows. They emulate behavior of CMD.EXE by creating a temporary mapped drive letter (starting from z: down) to replace the \\<server>\<share> portion of the path, on the pushd and unmapping the drive letter when all references to it are popped.
  • And dirstack suppresses this temporary drive mapping funky jive if registry entry HKCU\software\microsoft\command processor\DisableUNCCheck (or HKLM...) is a DWORD value 1. This allows Xonsh to show the actual UNC path in your prompt string and also allows subprocess commands invoking CMD.EXE to run in the expected working directory. See https://support.microsoft.com/en-us/kb/156276 to satisfy any lingering curiosity.
  • lazy_locate_binary handles binary on different drive letter than current working directory (on Windows).
  • _curr_session_parser now iterates over History
  • New implementation of bash completer with better performanc
  • $COMPLETIONS_BRACKETS is now available to determine whether or not to include opening brackets in Python completions
  • xonsh.bat tries to use pylauncher when available.

Removed:

  • History method show
  • _hist_get_portion in favor of tools.get_portions
  • Unused imports in proc, flake8.

Fixed:

  • xonsh modules imported now have the file attribute
  • Context senstitive AST transformer was not adding argument names to the local scope. This would then enable extraneous subprocess mode wrapping for expressions whose leftmost name was function argument. This has been fixed by properly adding the argument names to the scope.
  • Foreign shell functions that are mapped to empty filenames no longer receive alaises since they can’t be found to source later.
  • Correctly preserve arguments given to xon.sh, in case there are quoted ones.
  • Environment variables in subprocess mode were not being expanded unless they were in a sting. They are now expanded properly.
  • Fixed a bug that prevented xonsh from running scripts with code caching disabled.
  • Text of instructions to download missing program now does not get off and appears in whole.
  • Fix some test problems when win_unicode_console was installed on windows.
  • Fixed bug that prompt string and $PWD failed to track change in actual working directory if the invoked Python function happened to change it (e.g via os.chdir()`. Fix is to update $PWD` after each command in BaseShell.default()``.
  • The interactive prompt now correctly handles multiline strings.
  • cd \\<server>\<share> now works when $AUTO_PUSHD is set, either creating a temporary mapped drive or simply setting UNC working directory based on registry DisableUNCCheck. However, if $AUTO_PUSHD is not set and UNC checking is enabled (default for Windows), it issues an error message and fails. This improves on prior behavior, which would fail to change the current working directory, but would set $PWD and prompt string to the UNC path, creating false expectations.
  • fix parsing for tuple of tuples (like (),())
  • sys.stdin, sys.stdout, sys.stderr no longer complete with opening square brackets
  • xonsh now properly handles syntax error messages arising from using values in inappropriate contexts (e.g., del 7).
xonsh -

Published by AstraLuma about 8 years ago

Added:

  • Define alias for 'echo' on startup for Windows only.
  • New coredev astronouth7303 added
  • which -a now searches in __xonsh_ctx__ too
  • Info about the xontrib cookiecutter template on xontrib tutorial
  • xonsh's optional dependencies may now be installed with the pip extras ptk, proctitle, linux, mac, and win.
  • Env help method to format and print the vardocs for an envvar
  • test_news fails if no empty line before a category
  • more info on test_news failures
  • Added on_precommand and on_postcommand events
  • New FORMATTER_DICT entry gitstatus to provides informative git status
  • FOREIGN_ALIASES_OVERRIDE envvar to control whether foreign aliases should
    override xonsh aliases with the same name.
  • Warning on tutorial about foreign aliases being ignored if a xonsh alias
    exist with the same name if not FOREIGN_ALIASES_OVERRIDE.
  • The prompt-toolkit shell now auto-inserts matching parentheses, brackets, and quotes. Enabled via the $XONSH_AUTOPAIR environment variable
  • Better syntax highlights in prompt-toolkit, including valid command / path highlighting, macro syntax highlighting, and more
  • More info on tutorial about history interaction
  • Entry on bash_to_xsh
  • Macro context managers are now available via the with!
    syntax.

Changed:

  • Devguide reflects the current process of releasing through release.xsh
  • moved which from xonsh.aliases into xoreutils.which
  • xonsh.prompt.gitstatus.gitstatus now returns a namedtuple
  • implementation of xonsh.prompt.vc_branch.get_git_branch and
    xonsh.prompt.vc_branch.git_dirty_working_directory to use 'git status --procelain'
  • moved prompt formatting specific functions from xonsh.environ
    to xonsh.prompt.base
  • All prompt formatter functions moved to xonsh.prompt subpackage
  • Printing the message about foreign aliases being ingored happens only
    if XONSH_DEBUG is set.
  • Use SetConsoleTitleW() on Windows instead of a process call.
  • Tutorial to reflect the current history command argument functionality
  • Macro function arguments now default to str, rather than eval,
    for consistentcy with other parts of the macro system.

Removed:

  • aliases that use '!' in their name cause they clash with the macro syntax

Fixed:

  • Fix regression where bash git completions where not loaded
    automatically when GitForWindows is installed.
  • More tokens are now supported in subproc args, such as ==.
  • Python completions now work without space delimiters, e.g. a=matpl<TAB>
    will complete to a=matplotlib
  • Parser would fail on nested, captured suprocess macros. Now, it works,
    hooray!?
  • now fires chdir event if OS change in working directory is detected.
  • xonsh.prompt.vc_branch.git_dirty_working_directory
    uses porcelain option instead of using the bytestring
    nothing to commit to find out if a git directory is dirty
  • Fix bug where know commands where not highlighed on windows.
  • Fixed completer showing executable in upper case on windows.
  • Fixed issue where tilde expansion was occuring more than once before an
    equals sign.
  • test_dirstack test_cdpath_expansion leaving stray testing dirs
  • Better completer display for long completions in prompt-toolkit
  • Automatucally append newine to target of source alias, so that it may
    be exec'd.
  • test_news fails when single graves around word
  • Slashes in virtual environment names work in vox
  • non string type value in $FORMATTER_DICT turning prompt ugly
  • whole prompt turning useless when one formatting function raises an exception
  • Fix completion after alias expansion
  • Fix hard crash when foreign shell functions fails to run. #1715
  • Bug where non-default locations for XDG_DATA_HOME and XONSH_DATA_DIR
    would not expand ~ into the home directory
  • Auto quote path completions if path contains 'and' or 'or'
  • Completion now works on subcommands after pipe, &&, || and so on.
  • cd . and cd now work. Fix indexerror in AUTO_PUSHD case, too.
  • Fixed issue with accidentally wrapping generators inside of function calls.
  • History indexing with string returns most recent command.
xonsh -

Published by scopatz over 8 years ago