An interface for the uv python package manager for emacs
This package providas a transient based user interface for the uv package manager package manager for Python.
Just started development, need to collect practival experiences if it actually works and add features.
The python package manager uv is becoming increasingly popular as it cleans up the jungle of different tools that were necessary to manage a python project with all its dependencies. Moreover it is refreshingly fast.
This package attempts to be a user friendly transient based user interface to a subset of uv functionality that is useful when developing python projects. It does not – at least not from the beginning – cover all the commands with all their switches. Many of them are only needed when building docker containers or in CI/CD pipelines. This package aims primarily to support you as a developer to advance your project and its dependencies and tools. So it focuses on your tasks as a developer, not so much as a DevOps.
At the moment the most convenient method to install it is using straight.el. Put the following lines into your startup file.
(use-package uv
:straight (uv :type git :host github :repo "johannes-mueller/uv.el"))Then you can try M-x uv for the top menu. There are also commands for each
sub menu directly, they are uv-init, uv-add, etc. That is needed to read
the pyproject.toml file to get information about the python project in order
to propose completions.
You will also need the Tree sitter grammar for TOML files in order for the
package to read your pyproject.toml file. In order to install that along with
the package use the following snippet.
(require 'treesit)
(use-package uv
:straight (uv :type git :host github :repo "johannes-mueller/uv.el")
:init
(add-to-list 'treesit-language-source-alist '(toml "https://github.com/tree-sitter-grammars/tree-sitter-toml"))
(unless (treesit-language-available-p 'toml)
(treesit-install-language-grammar 'toml)))This package does not – and probably never will – provide a complete interfact
to th uv command line tool (see Motivation). But even the
feature subset that is useful for developing tasks, rather than for DevOps
tasks is far from complete. I have to admit, that I don't understand really
all the user stories of every single command line switch. That's why I am not
sure how to get the user interface right for certain features.
If you miss a certain feature, feel free to come up with a proposal in the issue tracker.
My main issue is, that I am not that aware of possible workflows using uv which
might be useful and which could be supported by this package. I know my
interpretation of how the uv program is meant to be used, but as it does not
exist for all too long, there might be other interesting workflows possible,
which this package can support or enable.
You can discuss your workflows or wishes on the discussion board of the package. More concrete feature requests and bug reports can go to the issue tracker.