Skip to main content

Useful xonsh-shell commands/alias functions

Project description

xontrib-commands

Useful xonsh-shell commands/alias/completer functions

Installation

To install use pip:

xpip install xontrib-commands
# or: xpip install -U git+https://github.com/jnoortheen/xontrib-commands

Usage

xontrib load commands

building alias

Use xontrib_commands.argerize:Command to build arger dispatcher for your functions. This will create a nice alias function with auto-completions support.

from xontrib_commands.argerize import Command

@Command.reg
def record_stats(pkg_name=".", path=".local/stats.txt"):
    stat = $(scc @(pkg_name))
    echo @($(date) + stat) | tee -a @(path)
  • Directly passing the Arger instances is also supported.
from xontrib_commands.argerize import Arger, Command

arger = Arger(prog="tst", description="App Description goes here")

@arger.add_cmd
def create(name: str):
    """Create new test.

    :param name: Name of the test
    """
    print(locals())

@arger.add_cmd
def remove(*name: str):
    """Remove a test with variadic argument.

    :param name: tests to remove
    """
    print(locals())

Command.reg(arger)

Now a full CLI is ready

$ record-stats --help                                                                        
usage: xonsh [-h] [-p PKG_NAME] [-a PATH]

optional arguments:
  -h, --help            show this help message and exit
  -p PKG_NAME, --pkg-name PKG_NAME
  -a PATH, --path PATH

Commands

  • The following commands are available once the xontrib is loaded.

1. reload-mods

usage: reload-mods [-h] name

Reload any python module in the current xonsh session.
Helpful during development.

positional arguments:
  name        Name of the module/package to reload. Giving partial names matches all the nested modules.

optional arguments:
  -h, --help  show this help message and exit

Examples
-------
$ reload-mods xontrib
    - this will reload all modules imported that starts with xontrib name

Notes
-----
    Please use
        `import module` or `import module as mdl` patterns
    Using
        `from module import name`
        will not reload the name imported

2. report-key-bindings

usage: report-key-bindings [-h]

Show current Prompt-toolkit bindings in a nice table format

optional arguments:
  -h, --help  show this help message and exit

3. dev

dev - A command to cd into a directory. (Default action)

Usage:
dev [COMMAND] [OPTIONS] [NAME]

Arguments:
   [NAME] - name of the folder to cd into. This searches for names under $PROJECT_PATHS or the ones registered with ``dev add``

Options:
  --help [SUBCOMMANDS...] - Display this help and exit

Commands:
  add           - Register the current folder to dev command.
                  When using this, it will get saved in a file, also that is used during completions.
  ls            - Show currently registered paths
  load-env FILE - Load environment variables from the given file into Xonsh session
                  
                  Using https://github.com/theskumar/python-dotenv

Run "dev COMMAND --help" for more information on a command.

4. parallex

usage: parallex [-h] [-s] [-n] [-c] [args ...]

Execute multiple subprocess in parallel

positional arguments:
  args  individual commands need to be quoted and passed as separate arguments

options:
  -h, --help
                        show this help message and exit
  -s, --shell
                        each command should be run with system's commands
  -n, --no-order
                        commands output are interleaved and not ordered
  -c, --hide-cmd
                        do not print the running command

Examples
--------
running linters in parallel
    $ parallex "flake8 ." "mypy xonsh"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xontrib-commands-0.4.4.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

xontrib_commands-0.4.4-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file xontrib-commands-0.4.4.tar.gz.

File metadata

  • Download URL: xontrib-commands-0.4.4.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.8.2 CPython/3.11.4

File hashes

Hashes for xontrib-commands-0.4.4.tar.gz
Algorithm Hash digest
SHA256 c7e077d16936d0fbfff59a8e25c80c9027bff6c5698992c948fff6d884a39394
MD5 51de27ff3b4a833298de9b1ad02ba52f
BLAKE2b-256 3181b5731a02a9f5df335a29d1aa2a7368bfa23e4e4f1df18ebfed1999ad1b12

See more details on using hashes here.

File details

Details for the file xontrib_commands-0.4.4-py3-none-any.whl.

File metadata

File hashes

Hashes for xontrib_commands-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 89294efede07417fb5c827eee63927ea96f462c50c6eb9404dee6175ccbfaae4
MD5 9e1f23bda0edb8af2f80d99eaac142f8
BLAKE2b-256 bfbf0453ebbf28403b6c960e41892c16b31224fbdde3e2e40fc3e5b84f31a00b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page