Skip to content

Library of decorator aliases (daliases) for @xonsh.

License

Notifications You must be signed in to change notification settings

anki-code/xontrib-dalias

Repository files navigation

Library of decorator aliases (daliases) for the xonsh shell.

If you like the idea click ⭐ on the repo and tweet.

Installation

To install use pip:

xpip install xontrib-dalias
# or
xpip install 'xontrib-dalias[dict,yaml]'  # Extra decorators.

Load:

xontrib load dalias

Usage

Transform output to object

Default decorators:

  • @lines - return list of lines.
  • @json - json to Python dict.
  • @path - string to pathlib.Path.
  • @parts - split by whitespaces using xonsh lexer. It's the same as builtin @$() operator.

Extra decorators:

xpip install 'xontrib-dalias[dict,yaml]'
  • @dict - dict-like object (json, JavaScript object, Python dict) to Python dict.
  • @yaml - YAML to Python dict.

Examples

$(@lines ls /)
# ['/bin', '/etc', '/home']

$(@json echo '{"a":1}')  # Try with `curl` ;)
# dict({"a":1})

docker inspect @($(@json docker ps --format json)['ID'])
# Container info

$(@path which -s xonsh)
# Path('/path/to/xonsh')

$(@path which -s xonsh).parent
# Path('/path/to')


aliases['ydig'] = '@yaml dig +yaml'  # Update `dig` via `brew install bind` to have `+yaml`.
y = $(ydig google.com)
y[0]['type']
# 'MESSAGE'

Error handling

Default decorators:

  • @err - set $RAISE_SUBPROC_ERROR=True for the command.
  • @noerr - set $RAISE_SUBPROC_ERROR=False for the command.

Examples:

$RAISE_SUBPROC_ERROR = True  # General environment.
if ![@noerr ls nononofile]:  # Do not raise exception in case of error.
    echo file 

Credits

This package was created with xontrib template.