From e5c9e0f863c86d77c72675afc33aa39d911ff8c0 Mon Sep 17 00:00:00 2001 From: Jordi Funollet Date: Wed, 12 Nov 2025 22:02:10 +0100 Subject: [PATCH] feat: add mise installation method detection Detect when `uv` is installed via [mise](https://mise.jdx.dev/) by checking for the `/.local/share/mise/installs/uv` path pattern. Includes test cases for both Linux and macOS mise installations. --- src/uvhow/__init__.py | 9 +++++++++ test_detection.py | 7 +++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/uvhow/__init__.py b/src/uvhow/__init__.py index 62d20d2..7727ad7 100644 --- a/src/uvhow/__init__.py +++ b/src/uvhow/__init__.py @@ -213,6 +213,15 @@ def detect_uv_installation() -> Optional[UvInstallation]: upgrade_command="pipx upgrade uv", ) + # mise + if "/.local/share/mise/installs/uv" in path_str: + return UvInstallation( + path=uv_path, + version=version, + method="mise", + upgrade_command="mise upgrade uv", + ) + # Virtual environment pip if any( venv in path_str for venv in ["/venv/bin/uv", "/env/bin/uv", "/.venv/bin/uv", "/.env/bin/uv"] diff --git a/test_detection.py b/test_detection.py index d902971..3c06e44 100755 --- a/test_detection.py +++ b/test_detection.py @@ -41,7 +41,10 @@ def test_detection_logic(): ('/home/user/.local/share/pipx/venvs/uv/bin/uv', False, 'pipx'), ('/Users/user/.local/share/pipx/venvs/uv/bin/uv', False, 'pipx'), ('/opt/pipx/venvs/uv/bin/uv', False, 'pipx'), - + + ('/home/user/.local/share/mise/installs/uv/bin/uv', False, 'mise'), + ('/Users/user/.local/share/mise/installs/uv/bin/uv', False, 'mise'), + ('/project/.venv/bin/uv', False, 'pip (virtual environment)'), ('/home/user/project/venv/bin/uv', False, 'pip (virtual environment)'), ('/workspace/.env/bin/uv', False, 'pip (virtual environment)'), @@ -183,4 +186,4 @@ def main(): if __name__ == '__main__': - main() \ No newline at end of file + main()