xontrib-mise


Namexontrib-mise JSON
Version 0.0.4 PyPI version JSON
download
home_pagehttps://github.com/eugenesvk/xontrib-mise
SummaryInitializes mise (polyglot asdf-like runtime manager)
upload_time2024-07-19 13:53:14
maintainerNone
docs_urlNone
authorEvgeny
requires_python<4.0,>=3.9
licenseMIT
keywords xontrib xonsh
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
Initialize <a href="https://github.com/jdx/mise" target="_blank">mise</a> (polyglot asdf-like runtime manager in Rust)</br>
in a more performant and flexible way
</p>

<p align="center">  
If you like the idea click ⭐ on the repo and <a href="https://twitter.com/intent/tweet?text=Nice%20xontrib%20for%20the%20xonsh%20shell!&url=https://github.com/eugenesvk/xontrib-mise" target="_blank">tweet</a>.
</p>

This xontrib adds a couple of (maybe too tiny to notice) improvements:

  - (no cost) replaces the subprocess syntax for the hook mise function with a pure python syntax, which for some reason improves hook runtime by __~60%__ (but in absolute terms maybe just a dozen or two `ms`)
  - (less convenient) replaces a hook on every prompt paint with hooks on
    - shell launch
    - changing dirs
    - empty commands</br>
      useful to refresh shell status when you edit `.tool-versions` _outside_ of shell (optional)
    - commands that containt custom text chunks</br>
      useful to refresh shell status when you edit `.tool-versions`  _in_ a shell (optional)

## Installation

To install use pip:

```bash
xpip install xontrib-mise
# or: xpip install -U git+https://github.com/eugenesvk/xontrib-mise
```

## Usage

This xontrib requires `mise` to be in `PATH` or `~/bin`; or if it's added to `PATH` via another xontrib (e.g, you installed it via Homebrew and use `xontrib-homebrew`), then you should load this xontrib after the one setting `PATH`

1. Add the following to your `.py` xontrib loading config and `import` it in your xonsh run control file (`~/.xonshrc` or `~/.config/rc.xsh`):
```py
from xonsh.xontribs 	import xontribs_load
from xonsh.built_ins	import XSH
envx = XSH.env

xontribs = [ "mise", # Initializes mise (polyglot asdf-like runtime manager)
 # your other xontribs
]
# ↓ optional configuration variables
if 'mise' in xontribs: # Configure mise only if you're actually loading
  # config var                        	  value             	  |default|alt_cmd¦ comment
  envx['XONTRIB_MISE_CHUNK_LIST']     	= ['.tool-versions']	# |['.tool-versions']|False¦ (feeble attempts to track edits to `.tool-versions` in the command line) update mise status if command contains any of the string chunks in this list; False to disable this listener completely
  envx['XONTRIB_MISE_NEWLINE_REFRESH']	= True              	# |True|False¦ update mise status if command is empty (e.g, ⏎ on a blank line to refresh after editing `.tool-versions` in a text editor); False to disable this listener completely
  envx['XONTRIB_MISE_FORCE_COLOR']    	= True              	# |True|False¦ preserve colored mise output
  envx['XONTRIB_MISE_LOGLEVEL']       	= 1                 	# |1|0¦ print xontrib log messages: 0 none, 1 error; 'mise' stderr is always passed through
# (old variables with _RTX_ in the name continue to work)
xontribs_load(xontribs) # actually load all xontribs in the list
```

2. Or just add this to your xonsh run control file
```xsh
xontrib load mise # Initializes mise (polyglot asdf-like runtime manager)
# configure like in the example above, but replace envx['VAR'] with $VAR
$XONTRIB_MISE_LOGLEVEL = 1
```

## Known issues

- In the future xontrib-mise will be autoloaded, but this is currently blocked due to a [xonsh bug](https://github.com/xonsh/xonsh/issues/5020): too early autoload prevents reading user config; also, autoloading can't be disabled

## Credits

This package was created with [xontrib template](https://github.com/xonsh/xontrib-template)


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/eugenesvk/xontrib-mise",
    "name": "xontrib-mise",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "xontrib, xonsh",
    "author": "Evgeny",
    "author_email": "es.bugzilla@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/e1/6b/6be6b6514cc9c7d572fe499260bf6b49fc0c9ce8bd1d3e60cbcd552f6463/xontrib_mise-0.0.4.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\nInitialize <a href=\"https://github.com/jdx/mise\" target=\"_blank\">mise</a> (polyglot asdf-like runtime manager in Rust)</br>\nin a more performant and flexible way\n</p>\n\n<p align=\"center\">  \nIf you like the idea click \u2b50 on the repo and <a href=\"https://twitter.com/intent/tweet?text=Nice%20xontrib%20for%20the%20xonsh%20shell!&url=https://github.com/eugenesvk/xontrib-mise\" target=\"_blank\">tweet</a>.\n</p>\n\nThis xontrib adds a couple of (maybe too tiny to notice) improvements:\n\n  - (no cost) replaces the subprocess syntax for the hook mise function with a pure python syntax, which for some reason improves hook runtime by __~60%__ (but in absolute terms maybe just a dozen or two `ms`)\n  - (less convenient) replaces a hook on every prompt paint with hooks on\n    - shell launch\n    - changing dirs\n    - empty commands</br>\n      useful to refresh shell status when you edit `.tool-versions` _outside_ of shell (optional)\n    - commands that containt custom text chunks</br>\n      useful to refresh shell status when you edit `.tool-versions`  _in_ a shell (optional)\n\n## Installation\n\nTo install use pip:\n\n```bash\nxpip install xontrib-mise\n# or: xpip install -U git+https://github.com/eugenesvk/xontrib-mise\n```\n\n## Usage\n\nThis xontrib requires `mise` to be in `PATH` or `~/bin`; or if it's added to `PATH` via another xontrib (e.g, you installed it via Homebrew and use `xontrib-homebrew`), then you should load this xontrib after the one setting `PATH`\n\n1. Add the following to your `.py` xontrib loading config and `import` it in your xonsh run control file (`~/.xonshrc` or `~/.config/rc.xsh`):\n```py\nfrom xonsh.xontribs \timport xontribs_load\nfrom xonsh.built_ins\timport XSH\nenvx = XSH.env\n\nxontribs = [ \"mise\", # Initializes mise (polyglot asdf-like runtime manager)\n # your other xontribs\n]\n# \u2193 optional configuration variables\nif 'mise' in xontribs: # Configure mise only if you're actually loading\n  # config var                        \t  value             \t  |default|alt_cmd\u00a6 comment\n  envx['XONTRIB_MISE_CHUNK_LIST']     \t= ['.tool-versions']\t# |['.tool-versions']|False\u00a6 (feeble attempts to track edits to `.tool-versions` in the command line) update mise status if command contains any of the string chunks in this list; False to disable this listener completely\n  envx['XONTRIB_MISE_NEWLINE_REFRESH']\t= True              \t# |True|False\u00a6 update mise status if command is empty (e.g, \u23ce on a blank line to refresh after editing `.tool-versions` in a text editor); False to disable this listener completely\n  envx['XONTRIB_MISE_FORCE_COLOR']    \t= True              \t# |True|False\u00a6 preserve colored mise output\n  envx['XONTRIB_MISE_LOGLEVEL']       \t= 1                 \t# |1|0\u00a6 print xontrib log messages: 0 none, 1 error; 'mise' stderr is always passed through\n# (old variables with _RTX_ in the name continue to work)\nxontribs_load(xontribs) # actually load all xontribs in the list\n```\n\n2. Or just add this to your xonsh run control file\n```xsh\nxontrib load mise # Initializes mise (polyglot asdf-like runtime manager)\n# configure like in the example above, but replace envx['VAR'] with $VAR\n$XONTRIB_MISE_LOGLEVEL = 1\n```\n\n## Known issues\n\n- In the future xontrib-mise will be autoloaded, but this is currently blocked due to a [xonsh bug](https://github.com/xonsh/xonsh/issues/5020): too early autoload prevents reading user config; also, autoloading can't be disabled\n\n## Credits\n\nThis package was created with [xontrib template](https://github.com/xonsh/xontrib-template)\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Initializes mise (polyglot asdf-like runtime manager)",
    "version": "0.0.4",
    "project_urls": {
        "Code": "https://github.com/eugenesvk/xontrib-mise",
        "Documentation": "https://github.com/eugenesvk/xontrib-mise/blob/master/README.md",
        "Homepage": "https://github.com/eugenesvk/xontrib-mise",
        "Issue tracker": "https://github.com/eugenesvk/xontrib-mise/issues",
        "Repository": "https://github.com/eugenesvk/xontrib-mise"
    },
    "split_keywords": [
        "xontrib",
        " xonsh"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "41181887ca93aabf01ec924e1665f0a0a6ff722ba52dbcf436fb5a426de30de0",
                "md5": "d5e161cdd9909c7abcf76d20b39951cc",
                "sha256": "0e50edb576b6bf7582db87d711f4aebe5cf11264e3825e48871e5117d3c8ab09"
            },
            "downloads": -1,
            "filename": "xontrib_mise-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d5e161cdd9909c7abcf76d20b39951cc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 5306,
            "upload_time": "2024-07-19T13:53:06",
            "upload_time_iso_8601": "2024-07-19T13:53:06.724917Z",
            "url": "https://files.pythonhosted.org/packages/41/18/1887ca93aabf01ec924e1665f0a0a6ff722ba52dbcf436fb5a426de30de0/xontrib_mise-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e16b6be6b6514cc9c7d572fe499260bf6b49fc0c9ce8bd1d3e60cbcd552f6463",
                "md5": "19219a6dcdc7a3cd826e1e0313c3220b",
                "sha256": "490b27da6746a34d9baeb4a63f0696dbc7295bf24878e97970d1314ff021557c"
            },
            "downloads": -1,
            "filename": "xontrib_mise-0.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "19219a6dcdc7a3cd826e1e0313c3220b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 4899,
            "upload_time": "2024-07-19T13:53:14",
            "upload_time_iso_8601": "2024-07-19T13:53:14.976851Z",
            "url": "https://files.pythonhosted.org/packages/e1/6b/6be6b6514cc9c7d572fe499260bf6b49fc0c9ce8bd1d3e60cbcd552f6463/xontrib_mise-0.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-19 13:53:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "eugenesvk",
    "github_project": "xontrib-mise",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "xontrib-mise"
}
        
Elapsed time: 0.26726s