Skip to content

johannes-mueller/uv.el

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tests

uv.el

An interface for the uv python package manager for emacs

Synopsis

This package providas a transient based user interface for the uv package manager package manager for Python.

Status

Just started development, need to collect practival experiences if it actually works and add features.

Motivation

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.

Installation

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)))

Future plans

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.

Contributing

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.

About

An interface for the uv python package manager for emacs

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors