Source code for xonsh.xontribs_meta

"""
This modules is the place where one would define the xontribs.
"""

import functools
import typing as tp


[docs]class _XontribPkg(tp.NamedTuple): """Class to define package information of a xontrib. Attributes ---------- install a mapping of tools with respective install commands. e.g. {"pip": "pip install xontrib"} license license type of the xontrib package name full name of the package. e.g. "xontrib-argcomplete" url URL to the homepage of the xontrib package. """ install: tp.Dict[str, str] license: str = "" name: str = "" url: tp.Optional[str] = None
[docs]class Xontrib(tp.NamedTuple): """Meta class that is used to describe xontribs. Attributes ---------- url url to the home page of the xontrib. description short description about the xontrib. package pkg information for installing the xontrib tags category. """ url: str = "" description: str = "" package: tp.Optional[_XontribPkg] = None tags: tp.Tuple[str, ...] = ()
[docs]@functools.lru_cache() def get_xontribs() -> tp.Dict[str, Xontrib]: """Return xontrib definitions lazily.""" return define_xontribs()
[docs]def define_xontribs(): """Xontrib registry.""" core_pkg = _XontribPkg( name="xonsh", license="BSD 3-clause", install={ "conda": "conda install -c conda-forge xonsh", "pip": "xpip install xonsh", "aura": "sudo aura -A xonsh", "yaourt": "yaourt -Sa xonsh", }, url="http://xon.sh", ) return { "abbrevs": Xontrib( url="http://xon.sh", description="Adds ``abbrevs`` dictionary to hold user-defined " "command abbreviations. The dictionary is searched " "as you type and the matching words are replaced " "at the command line by the corresponding " "dictionary contents once you hit 'Space' or " "'Return' key. For instance a frequently used " "command such as ``git status`` can be abbreviated " "to ``gst`` as follows::\n" "\n" " $ xontrib load abbrevs\n" " $ abbrevs['gst'] = 'git status'\n" " $ gst # Once you hit <space> or <return>, " "'gst' gets expanded to 'git status'.\n" "\n", package=core_pkg, ), "apt_tabcomplete": Xontrib( url="https://github.com/DangerOnTheRanger/xonsh-apt-tabcomplete", description="Adds tabcomplete functionality to " "apt-get/apt-cache inside of xonsh.", package=_XontribPkg( name="xonsh-apt-tabcomplete", license="BSD 2-clause", install={"pip": "xpip install xonsh-apt-tabcomplete"}, url="https://github.com/DangerOnTheRanger/xonsh-apt-tabcomplete", ), ), "argcomplete": Xontrib( url="https://github.com/anki-code/xontrib-argcomplete", description="Argcomplete support to tab completion of " "python and xonsh scripts in xonsh.", package=_XontribPkg( name="xontrib-argcomplete", license="BSD", install={"pip": "xpip install xontrib-argcomplete"}, url="https://github.com/anki-code/xontrib-argcomplete", ), ), "autojump": Xontrib( url="https://github.com/sagartewari01/autojump-xonsh", description="autojump support for xonsh", ), "autovox": Xontrib( url="http://xon.sh", description="Manages automatic activation of virtual " "environments.", package=core_pkg, ), "autoxsh": Xontrib( url="https://github.com/Granitas/xonsh-autoxsh", description="Adds automatic execution of xonsh script files " "called ``.autoxsh`` when enterting a directory " "with ``cd`` function", package=_XontribPkg( name="xonsh-autoxsh", license="GPLv3", install={"pip": "xpip install xonsh-autoxsh"}, url="https://github.com/Granitas/xonsh-autoxsh", ), ), "avox": Xontrib( url="https://github.com/AstraLuma/xontrib-avox", description="Policy for autovox based on project directories", package=_XontribPkg( name="xontrib-avox", license="GPLv3", install={"pip": "xpip install xontrib-avox"}, url="https://github.com/AstraLuma/xontrib-avox", ), ), "avox_poetry": Xontrib( url="github.com/jnoortheen/xontrib-avox-poetry", description="auto-activate venv as one cd into a poetry project folder. " "Activate ``.venv`` inside the project folder is also supported.", package=_XontribPkg( name="xontrib-avox-poetry", license="MIT", install={"pip": "xpip install xontrib-avox-poetry"}, url="https://github.com/jnoortheen/xontrib-avox-poetry", ), ), "back2dir": Xontrib( url="https://github.com/anki-code/xontrib-back2dir", description="Return to the most recently used directory when " "starting the xonsh shell. For example, if you " "were in the '/work' directory when you last " "exited xonsh, then your next xonsh session will " "start in the '/work' directory, instead of your " "home directory.", package=_XontribPkg( name="xontrib-back2dir", license="BSD", install={"pip": "xpip install xontrib-back2dir"}, url="https://github.com/anki-code/xontrib-back2dir", ), ), "base16_shell": Xontrib( url="https://github.com/ErickTucto/xontrib-base16-shell", description="Change base16 shell themes", ), "bashisms": Xontrib( url="http://xon.sh", description="Enables additional Bash-like syntax while at the " "command prompt. For example, the ``!!`` syntax " "for running the previous command is now usable. " "Note that these features are implemented as " "precommand events and these additions do not " "affect the xonsh language when run as script. " "That said, you might find them useful if you " "have strong muscle memory.\n" "\n" "**Warning:** This xontrib may modify user " "command line input to implement its behavior. To " "see the modifications as they are applied (in " "unified diffformat), please set ``$XONSH_DEBUG`` " "to ``2`` or higher.\n" "\n" "The xontrib also adds commands: ``alias``, " "``export``, ``unset``, ``set``, ``shopt``, " "``complete``.", package=core_pkg, ), "broot": Xontrib( url="github.com/jnoortheen/xontrib-broot", description="supports broot with br alias", package=_XontribPkg( name="xontrib-broot", license="MIT", install={"pip": "xpip install xontrib-broot"}, url="https://github.com/jnoortheen/xontrib-broot", ), ), "powerline3": Xontrib( url="github.com/jnoortheen/xontrib-powerline3", description="Powerline theme with native $PROMPT_FIELDS support.", package=_XontribPkg( name="xontrib-powerline3", license="MIT", install={"pip": "xpip install xontrib-powerline3"}, url="https://github.com/jnoortheen/xontrib-broot", ), ), "cmd_done": Xontrib( url="https://github.com/jnoortheen/xontrib-cmd-durations", description="send notification once long-running command is " "finished. Adds `long_cmd_duration` field to " "$PROMPT_FIELDS. Note: It needs `xdotool` " "installed to detect current window.", package=_XontribPkg( name="xontrib-cmd-durations", license="MIT", install={"pip": "xpip install xontrib-cmd-durations"}, url="https://github.com/jnoortheen/xontrib-cmd-durations", ), ), "commands": Xontrib( url="https://github.com/jnoortheen/xontrib-commands", description="Some useful commands/aliases to use with Xonsh shell", package=_XontribPkg( name="xontrib-commands", license="MIT", install={"pip": "xpip install xontrib-commands"}, url="https://github.com/jnoortheen/xontrib-commands", ), ), "coreutils": Xontrib( url="http://xon.sh", description="Additional core utilities that are implemented " "in xonsh. The current list includes:\n" "\n" "* cat\n" "* echo\n" "* pwd\n" "* tee\n" "* tty\n" "* yes\n" "\n" "In many cases, these may have a lower " "performance overhead than the posix command " "line utility with the same name. This is " "because these tools avoid the need for a full " "subprocess call. Additionally, these tools are " "cross-platform.", package=core_pkg, ), "direnv": Xontrib( url="https://github.com/74th/xonsh-direnv", description="Supports direnv.", package=_XontribPkg( name="xonsh-direnv", license="MIT", install={"pip": "xpip install xonsh-direnv"}, url="https://github.com/74th/xonsh-direnv", ), ), "distributed": Xontrib( url="http://xon.sh", description="The distributed parallel computing library " "hooks for xonsh. Importantly this provides a " "substitute 'dworker' command which enables " "distributed workers to have access to xonsh " "builtins.\n" "\n" "Furthermore, this xontrib adds a 'DSubmitter' " "context manager for executing a block " "remotely. Moreover, this also adds a " "convenience function 'dsubmit()' for creating " "DSubmitter and Executor instances at the same " "time. Thus users may submit distributed jobs " "with::\n" "\n" " with dsubmit('127.0.0.1:8786', rtn='x') " "as dsub:\n" " x = $(echo I am elsewhere)\n" "\n" " res = dsub.future.result()\n" " print(res)\n" "\n" "This is useful for long running or " "non-blocking jobs.", package=core_pkg, ), "docker_tabcomplete": Xontrib( url="https://github.com/xsteadfastx/xonsh-docker-tabcomplete", description="Adds tabcomplete functionality to " "docker inside of xonsh.", package=_XontribPkg( name="xonsh-docker-tabcomplete", license="MIT", install={"pip": "xpip install xonsh-docker-tabcomplete"}, url="https://github.com/xsteadfastx/xonsh-docker-tabcomplete", ), ), "free_cwd": Xontrib( url="http://xon.sh", description="Windows only xontrib, to release the lock on the " "current directory whenever the prompt is shown. " "Enabling this will allow the other programs or " "Windows Explorer to delete or rename the current " "or parent directories. Internally, it is " "accomplished by temporarily resetting CWD to the " "root drive folder while waiting at the prompt. " "This only works with the prompt_toolkit backend " "and can cause cause issues if any extensions are " "enabled that hook the prompt and relies on " "``os.getcwd()``", package=core_pkg, ), "fzf-widgets": Xontrib( url="https://github.com/laloch/xontrib-fzf-widgets", description="Adds some fzf widgets to your xonsh shell.", package=_XontribPkg( name="xontrib-fzf-widgets", license="GPLv3", install={"pip": "xpip install xontrib-fzf-widgets"}, url="https://github.com/laloch/xontrib-fzf-widgets", ), ), "gitinfo": Xontrib( url="https://github.com/dyuri/xontrib-gitinfo", description="Displays git information on entering a repository " "folder. Uses ``onefetch`` if available.", package=_XontribPkg( name="xontrib-gitinfo", license="MIT", install={"pip": "xpip install xontrib-gitinfo"}, url="https://github.com/dyuri/xontrib-gitinfo", ), ), "hist_navigator": Xontrib( url="https://github.com/jnoortheen/xontrib-hist-navigator", description="Move through directory history with nextd " "and prevd also with keybindings.", package=_XontribPkg( name="xontrib-hist-navigator", license="MIT", install={"pip": "xpip install xontrib-hist-navigator"}, url="https://github.com/jnoortheen/xontrib-hist-navigator", ), ), "histcpy": Xontrib( url="https://github.com/con-f-use/xontrib-histcpy", description="Useful aliases and shortcuts for extracting links " "and textfrom command output history and putting " "them into the clipboard.", package=_XontribPkg( name="xontrib-histcpy", license="GPLv3", install={"pip": "xpip install xontrib-histcpy"}, url="https://github.com/con-f-use/xontrib-histcpy", ), ), "jedi": Xontrib( url="http://xon.sh", description="Use Jedi as xonsh's python completer.", package=core_pkg, ), "kitty": Xontrib( url="https://github.com/scopatz/xontrib-kitty", description="Xonsh hooks for the Kitty terminal emulator.", package=_XontribPkg( name="xontrib-kitty", license="BSD-3-Clause", install={ "conda": "conda install -c conda-forge " "xontrib-kitty", "pip": "xpip install xontrib-kitty", }, url="https://github.com/scopatz/xontrib-kitty", ), ), "mpl": Xontrib( url="http://xon.sh", description="Matplotlib hooks for xonsh, including the new 'mpl' " "alias that displays the current figure on the screen.", package=core_pkg, ), "onepath": Xontrib( url="https://github.com/anki-code/xontrib-onepath", description="When you click to a file or folder in graphical " "OS they will be opened in associated app.The " "xontrib-onepath brings the same logic for the " "xonsh shell. Type the filename or pathwithout " "preceding command and an associated action will " "be executed. The actions are customizable.", package=_XontribPkg( name="xontrib-onepath", license="BSD", install={"pip": "xpip install xontrib-onepath"}, url="https://github.com/anki-code/xontrib-onepath", ), ), "output_search": Xontrib( url="https://github.com/anki-code/xontrib-output-search", description="Get identifiers, names, paths, URLs and " "words from the previous command output and " "use them for the next command.", package=_XontribPkg( name="xontrib-output-search", license="BSD", install={"pip": "xpip install xontrib-output-search"}, url="https://github.com/tokenizer/xontrib-output-search", ), ), "pdb": Xontrib( url="http://xon.sh", description="Simple built-in debugger. Runs pdb on reception of " "SIGUSR1 signal.", package=core_pkg, ), "pipeliner": Xontrib( url="https://github.com/anki-code/xontrib-pipeliner", description="Let your pipe lines flow thru the Python code " "in xonsh.", package=_XontribPkg( name="xontrib-pipeliner", license="MIT", install={"pip": "xpip install xontrib-pipeliner"}, url="https://github.com/anki-code/xontrib-pipeliner", ), ), "powerline": Xontrib( url="https://github.com/santagada/xontrib-powerline", description="Powerline for Xonsh shell", package=_XontribPkg( name="xontrib-powerline", license="MIT", install={"pip": "xpip install xontrib-powerline"}, url="https://github.com/santagada/xontrib-powerline", ), ), "powerline2": Xontrib( url="https://github.com/vaaaaanquish/xontrib-powerline2", description="Powerline for Xonsh shell forked from " "santagada/xontrib-powerline", package=_XontribPkg( name="xontrib-powerline2", license="MIT", install={"pip": "xpip install xontrib-powerline2"}, url="https://github.com/vaaaaanquish/xontrib-powerline2", ), ), "powerline_binding": Xontrib( url="https://github.com/dyuri/xontrib-powerline-binding", description="Uses powerline to render the xonsh " "prompt", package=_XontribPkg( name="xontrib-powerline-binding", license="MIT", install={"pip": "xpip install xontrib-powerline-binding"}, url="https://github.com/dyuri/xontrib-powerline-binding", ), ), "prompt_bar": Xontrib( url="https://github.com/anki-code/xontrib-prompt-bar", description="An elegance bar style for prompt.", package=_XontribPkg( name="xontrib-prompt-bar", license="MIT", install={"pip": "xpip install xontrib-prompt-bar"}, url="https://github.com/anki-code/xontrib-prompt-bar", ), ), "prompt_ret_code": Xontrib( url="http://xon.sh", description="Adds return code info to the prompt", package=core_pkg, ), "prompt_vi_mode": Xontrib( url="https://github.com/t184256/xontrib-prompt-vi-mode", description="vi-mode status formatter for xonsh prompt", package=_XontribPkg( name="xontrib-prompt-vi-mode", license="MIT", install={"pip": "xpip install xontrib-prompt-vi-mode"}, url="https://github.com/t184256/xontrib-prompt-vi-mode", ), ), "pyenv": Xontrib( url="https://github.com/dyuri/xontrib-pyenv", description="pyenv integration for xonsh.", package=_XontribPkg( name="xontrib-pyenv", license="MIT", install={"pip": "xpip install xontrib-pyenv"}, url="https://github.com/dyuri/xontrib-pyenv", ), ), "readable-traceback": Xontrib( url="https://github.com/6syun9/xontrib-readable-traceback", description="Make traceback easier to see for " "xonsh.", package=_XontribPkg( name="xontrib-readable-traceback", license="MIT", install={"pip": "xpip install xontrib-readable-traceback"}, url="https://github.com/6syun9/xontrib-readable-traceback", ), ), "schedule": Xontrib( url="https://github.com/AstraLuma/xontrib-schedule", description="Xonsh Task Scheduling", package=_XontribPkg( name="xontrib-schedule", license="MIT", install={"pip": "xpip install xontrib-schedule"}, url="https://github.com/AstraLuma/xontrib-schedule", ), ), "scrapy_tabcomplete": Xontrib( url="https://github.com/Granitas/xonsh-scrapy-tabcomplete", description="Adds tabcomplete functionality to " "scrapy inside of xonsh.", package=_XontribPkg( name="xonsh-scrapy-tabcomplete", license="GPLv3", install={"pip": "xpip install xonsh-scrapy-tabcomplete"}, url="https://github.com/Granitas/xonsh-scrapy-tabcomplete", ), ), "sh": Xontrib( url="https://github.com/anki-code/xontrib-sh", description="Paste and run commands from bash, zsh, fish in xonsh " "shell.", package=_XontribPkg( name="xontrib-sh", license="MIT", install={"pip": "xpip install xontrib-sh"}, url="https://github.com/anki-code/xontrib-sh", ), ), "ssh_agent": Xontrib( url="https://github.com/dyuri/xontrib-ssh-agent", description="ssh-agent integration", package=_XontribPkg( name="xontrib-ssh-agent", license="MIT", install={"pip": "xpip install xontrib-ssh-agent"}, url="https://github.com/dyuri/xontrib-ssh-agent", ), ), "vox": Xontrib( url="http://xon.sh", description="Python virtual environment manager for xonsh.", package=core_pkg, ), "vox_tabcomplete": Xontrib( url="https://github.com/Granitosaurus/xonsh-vox-tabcomplete", description="Adds tabcomplete functionality to vox " "inside of xonsh.", package=_XontribPkg( name="xonsh-vox-tabcomplete", license="GPLv3", install={"pip": "xpip install xonsh-vox-tabcomplete"}, url="https://github.com/Granitosaurus/xonsh-vox-tabcomplete", ), ), "whole_word_jumping": Xontrib( url="http://xon.sh", description="Jumping across whole words " "(non-whitespace) with Ctrl+Left/Right. " "Alt+Left/Right remains unmodified to " "jump over smaller word segments. " "Shift+Delete removes the whole word.", package=core_pkg, ), "xo": Xontrib( url="https://github.com/scopatz/xo", description="Adds an 'xo' alias to run the exofrills text editor in " "the current Python interpreter session. This shaves " "off a bit of the startup time when running your " "favorite, minimal text editor.", package=_XontribPkg( name="exofrills", license="WTFPL", install={ "conda": "conda install -c conda-forge xo", "pip": "xpip install exofrills", }, url="http://exofrills.org", ), ), "xog": Xontrib( url="http://xon.sh", description="Adds a simple command to establish and print " "temporary traceback log file.", package=core_pkg, ), "xpg": Xontrib( url="https://github.com/fengttt/xsh/tree/master/py", description="Run/plot/explain sql query for PostgreSQL.", package=_XontribPkg( name="xontrib-xpg", license="Apache", install={"pip": "xpip install xontrib-xpg"}, url="https://github.com/fengttt/xsh/py", ), ), "z": Xontrib( url="https://github.com/AstraLuma/xontrib-z", description="Tracks your most used directories, based on 'frecency'.", package=_XontribPkg( name="xontrib-z", license="GPLv3", install={"pip": "xpip install xontrib-z"}, url="https://github.com/AstraLuma/xontrib-z", ), ), "zoxide": Xontrib( url="https://github.com/dyuri/xontrib-zoxide", description="Zoxide integration for xonsh.", package=_XontribPkg( name="xontrib-zoxide", license="MIT", install={"pip": "xpip install xontrib-zoxide"}, url="https://github.com/dyuri/xontrib-zoxide", ), ), }