Uv Operations¶
- Operations for
uv: install, remove or upgrade Python packages
install, remove or upgrade ‘tools’
create or remove virtual environments (venv’s)
ensure the uv tool executable directory is on the PATH
Facts used in these operations: files.File, uv.UvInstalledPythonsByVersion, uv.UvPipPackages, uv.UvToolDir, uv.UvTools.
uv.packages¶
Install/remove/update Python packages using uv pip
uv.packages(
packages: 'str | list[str]',
*,
requirements: 'str | None' = None,
present: 'bool' = True,
latest: 'bool' = False,
extra_args: 'str | list[str] | None' = None,
**kwargs,
)
packages: a package or list of packages to install/uninstall
requirements: optionally a path to a requirements file to install/uninstall. Default None.
present: whether the packages should be installed or uninstalled. Default True.
latest: whether to upgrade packages for which a version was not specified. Default False.
extra_args: zero or more additional arguments to the
uvcommand. Default None.
- Python Package versions:
Package versions can be specified in the usual manner, e.g.
<pkg>==<version>.
Example:
uv.packages(
name="Install Requests",
packages=["requests"],
)
Note
This operation also inherits all global arguments.
uv.pythons¶
Install/remove Python version(s).
uv.pythons(
versions: 'str | list[str]',
*,
present: 'bool' = True,
managed: 'bool' = True,
extra_args: 'str | list[str] | None' = None,
**kwargs,
)
version: a version or list of Python versions
present: whether the versions should be installed or removed. Default True.
managed: whether only managed or all available version should be considered. Default True.
extra_args: zero or more additional arguments to be passed to
uv. Default None.
Example:
uv.pythons(
name="Install Python 3.13 and 3.14",
versions=["3.14", "3.13"],
present=True
)
Note
This operation also inherits all global arguments.
uv.tools¶
Install/remove/update packages using uv tool.
uv.tools(
tools: 'str | list[str]',
*,
present: 'bool' = True,
latest: 'bool' = False,
extra_args: 'str | list[str] | None' = None,
**kwargs,
)
tools: a package or list of packages to install as tools
present: whether the packages should be installed or uninstalled. Default True.
latest: whether or not to upgrade packages without a specified version. Default False.
extra_args: zero or more additional arguments to
uv. Default None.
- Versions:
Tool versions may be, but are not required to be, specified in the usual manner:
<pkg>==<version>.
Example:
uv.tools(
name="Install Pyinfra",
tools=["pyinfra"],
present=True
)
Note
This operation also inherits all global arguments.
uv.tools_update_shell¶
Ensure that the uv tool executable directory is on the PATH.
uv.tools_update_shell**kwargs, )
Note
This operation also inherits all global arguments.
uv.tools_upgrade_all¶
Upgrade all uv tools.
uv.tools_upgrade_all(*, extra_args: 'str | list[str] | None' = None,
**kwargs,
)
extra_args: zero or more additional arguments to
uv. Default None.
Note
This operation also inherits all global arguments.
uv.venv¶
Add/remove a Python venv in the specified location.
uv.venv(
path: 'str',
*,
present: 'bool' = True,
python: 'str | None' = None,
allow_existing: 'bool' = False,
clear_existing: 'bool' = False,
link_mode: "Literal['clone', 'copy', 'hardlink', 'symlink'] | None" = None,
seed: 'bool' = False,
site_packages: 'bool' = False,
extra_args: 'str | list[str] | None' = None,
**kwargs,
)
path: where to create the venv
present: whether the venv should be created or removed. Default True
python: Python interpreter to use. Defaults to not specified.
allow_existing: allow (and retain) existing files in the venv directory. Default False
clear_existing: remove all existing files in the venv directory. Default False
seed: whether to seed the venv with
pip, and pre-3.12,setuptoolsandwheel. Default Falsesite_packages: give the venv access to the global site-packages. Default False
link_mode: method to use when installing seed packages: clone, copy, hardlink or symlink. Default is platform-dependent
extra_args: zero or more additional arguments to the ‘uv’ command
Example:
uv.venv(
name="Create a venv",
path="/my/projects/useful-project/.venv",
)
Note
This operation also inherits all global arguments.
pyinfra 3.x