You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So, uv is the hot new thing for Python package management.
Given our CI's love for permutations: uv speed boosts Python dependency installs (even with PyO3 and maturin in the mix for our Rust parts), offers efficient global caching, and lets us run pytest directly across all our Python versions with a single tool, including env management.
It's a replacer for pip, pip-tools, pipx, poetry, pyenv, twine, and virtualenv.
It can also perform build, adding the bellow to .toml file, it's all what we need not use maturin:
It installs Rust packages, builds rust, pyo3, it can configure to build for specific targets (no need to run on the target), and versions.
It also has integration with wheel so even publishing done directly by it. It's basically everything.
One tool for — faster installs, better cache, can set the lang versions easily one by one, run scripts with dependencies without venv, can run the tests better, build our rust project and py project, and even release them.
There's more and more, but the last part relevant is that it's the same creator as ruff, and it is integrated with it. ruff is a linter and formatter 10-100X faster than other tools — for example, flake8 takes 12.26s when ruff takes 0.29s.
It's a drop-in parity with Flake, isort, and Black. Which those are precisely our tools, and it supports auto-fixes which is very refreshing. So, I'm all in.
Faster CI = Happy Dev.
Let me know your thoughts! 👍
You can leave the page now, down there, I'm just saying why it is so cool.
For any decision we will take, if we don't change CI, I highly recommend it for your development.
Some cool stuff you can do -
If you want to run a script without env, requirement folder etc., but you have some dependencies needed (e.g., you are reproducing a bug, and you aim to move fast): uv run --with rich example.py Done.
Or uv add --script example.py 'requests<3' 'rich' and then some text added to the top, and you can just use uv run normally, also in three days.
Even uv run --python 3.10 example.py is possible OOB.
See uvscripts doc.
Do you want to work with many lang versions? uv python install 3.11 3.12
mypy? uvx mypy@latest . or with extras uvx --from 'mypy[faster-cache,reports]' mypy.
Work for all tools.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hey team :)
So,
uv
is the hot new thing for Python package management.Given our CI's love for permutations:
uv
speed boosts Python dependency installs (even withPyO3
andmaturin
in the mix for our Rust parts), offers efficient global caching, and lets us run pytest directly across all our Python versions with a single tool, including env management.It's a replacer for
pip
,pip-tools
,pipx
,poetry
,pyenv
,twine
, andvirtualenv
.It can also perform build, adding the bellow to
.toml
file, it's all what we need not usematurin
:It installs Rust packages, builds rust, pyo3, it can configure to build for specific targets (no need to run on the target), and versions.
It also has integration with
wheel
so even publishing done directly by it. It's basically everything.One tool for — faster installs, better cache, can set the lang versions easily one by one, run scripts with dependencies without
venv
, can run the tests better, build our rust project and py project, and even release them.There's more and more, but the last part relevant is that it's the same creator as ruff, and it is integrated with it.
ruff
is a linter and formatter 10-100X faster than other tools — for example,flake8
takes 12.26s whenruff
takes 0.29s.It's a drop-in parity with
Flake
,isort
, andBlack
. Which those are precisely our tools, and it supports auto-fixes which is very refreshing. So, I'm all in.See uv repo
See GH actions integration.
See ruff repo.
Faster CI = Happy Dev.
Let me know your thoughts! 👍
You can leave the page now, down there, I'm just saying why it is so cool.
For any decision we will take, if we don't change CI, I highly recommend it for your development.
Some cool stuff you can do -
If you want to run a script without env, requirement folder etc., but you have some dependencies needed (e.g., you are reproducing a bug, and you aim to move fast):
uv run --with rich example.py
Done.Or
uv add --script example.py 'requests<3' 'rich'
and then some text added to the top, and you can just useuv run
normally, also in three days.Even
uv run --python 3.10 example.py
is possible OOB.See
uv
scripts doc.Do you want to work with many lang versions?
uv python install 3.11 3.12
mypy
?uvx mypy@latest .
or with extrasuvx --from 'mypy[faster-cache,reports]' mypy
.Work for all tools.
And there is much more to discover.
Beta Was this translation helpful? Give feedback.
All reactions