Dagger
Search

uv

No long description provided.

Installation

dagger install github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf

Entrypoint

Return Type
Uv !
Arguments
NameTypeDefault ValueDescription
sourceDirectory -Source directory.
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
func (m *MyModule) Example() *dagger.Uv  {
	return dag.
			Uv()
}
@function
def example() -> dagger.Uv:
	return (
		dag.uv()
	)
@func()
example(): Uv {
	return dag
		.uv()
}

Types

Audit 🔗

Runs ``uv audit`` for a single workspace in a given uv image.

uvLock() 🔗

The workspace’s uv.lock file.

Return Type
File !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 audit \
 uv-lock
func (m *MyModule) Example(path string) *dagger.File  {
	return dag.
			Uv().
			Workspace(path).
			Audit().
			UvLock()
}
@function
def example(path: str) -> dagger.File:
	return (
		dag.uv()
		.workspace(path)
		.audit()
		.uv_lock()
	)
@func()
example(path: string): File {
	return dag
		.uv()
		.workspace(path)
		.audit()
		.uvLock()
}

pyproject() 🔗

The workspace’s pyproject.toml file.

Return Type
File !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 audit \
 pyproject
func (m *MyModule) Example(path string) *dagger.File  {
	return dag.
			Uv().
			Workspace(path).
			Audit().
			Pyproject()
}
@function
def example(path: str) -> dagger.File:
	return (
		dag.uv()
		.workspace(path)
		.audit()
		.pyproject()
	)
@func()
example(path: string): File {
	return dag
		.uv()
		.workspace(path)
		.audit()
		.pyproject()
}

image() 🔗

uv image reference to run the audit in (must provide a uv binary).

Return Type
String !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 audit \
 image
func (m *MyModule) Example(ctx context.Context, path string) string  {
	return dag.
			Uv().
			Workspace(path).
			Audit().
			Image(ctx)
}
@function
async def example(path: str) -> str:
	return await (
		dag.uv()
		.workspace(path)
		.audit()
		.image()
	)
@func()
async example(path: string): Promise<string> {
	return dag
		.uv()
		.workspace(path)
		.audit()
		.image()
}

uvToml() 🔗

The workspace’s uv.toml configuration file, if present.

Return Type
File 
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 audit \
 uv-toml
func (m *MyModule) Example(path string) *dagger.File  {
	return dag.
			Uv().
			Workspace(path).
			Audit().
			UvToml()
}
@function
def example(path: str) -> dagger.File:
	return (
		dag.uv()
		.workspace(path)
		.audit()
		.uv_toml()
	)
@func()
example(path: string): File {
	return dag
		.uv()
		.workspace(path)
		.audit()
		.uvToml()
}

run() 🔗

Run uv audit --frozen for this workspace.

Audits straight from the committed uv.lock without re-resolving against package indexes (--frozen); vulnerability data comes from the public OSV service, so no index credentials are required. A failing audit (non-zero exit, e.g. vulnerabilities found) raises dagger.ExecError, whose stdout/stderr carry uv’s report; the runner folds that into the trace error (see Uv.audit).

Return Type
Void !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 audit \
 run
func (m *MyModule) Example(ctx context.Context, path string)   {
	return dag.
			Uv().
			Workspace(path).
			Audit().
			Run(ctx)
}
@function
async def example(path: str) -> None:
	return await (
		dag.uv()
		.workspace(path)
		.audit()
		.run()
	)
@func()
async example(path: string): Promise<void> {
	return dag
		.uv()
		.workspace(path)
		.audit()
		.run()
}

LocalPackage 🔗

A local (editable/directory) package in a uv workspace.

name() 🔗

Package name

Return Type
String !
Example
Function UvLocalPackage.name is not accessible from the uv module
Function UvLocalPackage.name is not accessible from the uv module
Function UvLocalPackage.name is not accessible from the uv module
Function UvLocalPackage.name is not accessible from the uv module

path() 🔗

Workspace-relative path

Return Type
String !
Example
Function UvLocalPackage.path is not accessible from the uv module
Function UvLocalPackage.path is not accessible from the uv module
Function UvLocalPackage.path is not accessible from the uv module
Function UvLocalPackage.path is not accessible from the uv module

module() 🔗

Python module name

Return Type
String !
Example
Function UvLocalPackage.module is not accessible from the uv module
Function UvLocalPackage.module is not accessible from the uv module
Function UvLocalPackage.module is not accessible from the uv module
Function UvLocalPackage.module is not accessible from the uv module

flat() 🔗

Flat layout (module at package root) vs src layout (module under src/)

Return Type
Boolean !
Example
Function UvLocalPackage.flat is not accessible from the uv module
Function UvLocalPackage.flat is not accessible from the uv module
Function UvLocalPackage.flat is not accessible from the uv module
Function UvLocalPackage.flat is not accessible from the uv module

SyncPlan 🔗

Resolved build configuration for a uv workspace sync.

wsDir() 🔗

Resolved workspace directory (with codegen overlay if applicable)

Return Type
Directory !
Example
Function UvSyncPlan.wsDir is not accessible from the uv module
Function UvSyncPlan.wsDir is not accessible from the uv module
Function UvSyncPlan.wsDir is not accessible from the uv module
Function UvSyncPlan.wsDir is not accessible from the uv module

allLocal() 🔗

Every local package in the workspace (sorted by name)

Return Type
[LocalPackage ! ] !
Example
Function UvSyncPlan.allLocal is not accessible from the uv module
Function UvSyncPlan.allLocal is not accessible from the uv module
Function UvSyncPlan.allLocal is not accessible from the uv module
Function UvSyncPlan.allLocal is not accessible from the uv module

neededLocal() 🔗

Local packages the target transitively depends on (sorted by name)

Return Type
[LocalPackage ! ] !
Example
Function UvSyncPlan.neededLocal is not accessible from the uv module
Function UvSyncPlan.neededLocal is not accessible from the uv module
Function UvSyncPlan.neededLocal is not accessible from the uv module
Function UvSyncPlan.neededLocal is not accessible from the uv module

flatPackages() 🔗

Local packages with no build-system (virtual/deps-only: pyproject scaffolded, source skipped)

Return Type
[String ! ] !
Example
Function UvSyncPlan.flatPackages is not accessible from the uv module
Function UvSyncPlan.flatPackages is not accessible from the uv module
Function UvSyncPlan.flatPackages is not accessible from the uv module
Function UvSyncPlan.flatPackages is not accessible from the uv module

packages() 🔗

Target package names to install (empty means all packages)

Return Type
[String ! ] !
Example
Function UvSyncPlan.packages is not accessible from the uv module
Function UvSyncPlan.packages is not accessible from the uv module
Function UvSyncPlan.packages is not accessible from the uv module
Function UvSyncPlan.packages is not accessible from the uv module

uvSyncArgs() 🔗

Precomputed uv sync argv

Return Type
[String ! ] !
Example
Function UvSyncPlan.uvSyncArgs is not accessible from the uv module
Function UvSyncPlan.uvSyncArgs is not accessible from the uv module
Function UvSyncPlan.uvSyncArgs is not accessible from the uv module
Function UvSyncPlan.uvSyncArgs is not accessible from the uv module

WorkspaceBuild 🔗

An in-progress workspace build: a container plus its resolved sync plan. Drives the install pipeline: `with_remote_dependencies` to install remote deps, `with_workspace_files` to scaffold local packages, then `with_local_dependencies` to install them.

container() 🔗

Container carrying the workspace’s pyproject.toml and uv.lock

Return Type
Container !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 build --all-extras boolean --all-groups boolean --all-packages boolean --dagger-codegen boolean \
 container
func (m *MyModule) Example(path string, allExtras bool, allGroups bool, allPackages bool, daggerCodegen bool) *dagger.Container  {
	return dag.
			Uv().
			Workspace(path).
			Build(allExtras, allGroups, allPackages, daggerCodegen).
			Container()
}
@function
def example(path: str, all_extras: bool, all_groups: bool, all_packages: bool, dagger_codegen: bool) -> dagger.Container:
	return (
		dag.uv()
		.workspace(path)
		.build(all_extras, all_groups, all_packages, dagger_codegen)
		.container()
	)
@func()
example(path: string, allExtras: boolean, allGroups: boolean, allPackages: boolean, daggerCodegen: boolean): Container {
	return dag
		.uv()
		.workspace(path)
		.build(allExtras, allGroups, allPackages, daggerCodegen)
		.container()
}

plan() 🔗

Build configuration carried through the pipeline

Return Type
SyncPlan !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 build --all-extras boolean --all-groups boolean --all-packages boolean --dagger-codegen boolean \
 plan
func (m *MyModule) Example(path string, allExtras bool, allGroups bool, allPackages bool, daggerCodegen bool) *dagger.UvSyncPlan  {
	return dag.
			Uv().
			Workspace(path).
			Build(allExtras, allGroups, allPackages, daggerCodegen).
			Plan()
}
@function
def example(path: str, all_extras: bool, all_groups: bool, all_packages: bool, dagger_codegen: bool) -> dagger.UvSyncPlan:
	return (
		dag.uv()
		.workspace(path)
		.build(all_extras, all_groups, all_packages, dagger_codegen)
		.plan()
	)
@func()
example(path: string, allExtras: boolean, allGroups: boolean, allPackages: boolean, daggerCodegen: boolean): UvSyncPlan {
	return dag
		.uv()
		.workspace(path)
		.build(allExtras, allGroups, allPackages, daggerCodegen)
		.plan()
}

withAllWorkspaceMembers() 🔗

Like with_workspace_files but scaffolds every local package, not just transitive deps.

Return Type
WorkspaceBuild !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 build --all-extras boolean --all-groups boolean --all-packages boolean --dagger-codegen boolean \
 with-all-workspace-members
func (m *MyModule) Example(path string, allExtras bool, allGroups bool, allPackages bool, daggerCodegen bool) *dagger.UvWorkspaceBuild  {
	return dag.
			Uv().
			Workspace(path).
			Build(allExtras, allGroups, allPackages, daggerCodegen).
			WithAllWorkspaceMembers()
}
@function
def example(path: str, all_extras: bool, all_groups: bool, all_packages: bool, dagger_codegen: bool) -> dagger.UvWorkspaceBuild:
	return (
		dag.uv()
		.workspace(path)
		.build(all_extras, all_groups, all_packages, dagger_codegen)
		.with_all_workspace_members()
	)
@func()
example(path: string, allExtras: boolean, allGroups: boolean, allPackages: boolean, daggerCodegen: boolean): UvWorkspaceBuild {
	return dag
		.uv()
		.workspace(path)
		.build(allExtras, allGroups, allPackages, daggerCodegen)
		.withAllWorkspaceMembers()
}

withContainer() 🔗

Return a new UvWorkspaceBuild with a different container but the same plan.

Return Type
WorkspaceBuild !
Arguments
NameTypeDefault ValueDescription
containerContainer !-Replacement container (e.g. after installing non-Python packages)
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 build --all-extras boolean --all-groups boolean --all-packages boolean --dagger-codegen boolean \
 with-container --container IMAGE:TAG
func (m *MyModule) Example(path string, allExtras bool, allGroups bool, allPackages bool, daggerCodegen bool, container *dagger.Container) *dagger.UvWorkspaceBuild  {
	return dag.
			Uv().
			Workspace(path).
			Build(allExtras, allGroups, allPackages, daggerCodegen).
			WithContainer(container)
}
@function
def example(path: str, all_extras: bool, all_groups: bool, all_packages: bool, dagger_codegen: bool, container: dagger.Container) -> dagger.UvWorkspaceBuild:
	return (
		dag.uv()
		.workspace(path)
		.build(all_extras, all_groups, all_packages, dagger_codegen)
		.with_container(container)
	)
@func()
example(path: string, allExtras: boolean, allGroups: boolean, allPackages: boolean, daggerCodegen: boolean, container: Container): UvWorkspaceBuild {
	return dag
		.uv()
		.workspace(path)
		.build(allExtras, allGroups, allPackages, daggerCodegen)
		.withContainer(container)
}

withLocalDependencies() 🔗

Copy real source, run final uv sync.

Return Type
Container !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 build --all-extras boolean --all-groups boolean --all-packages boolean --dagger-codegen boolean \
 with-local-dependencies
func (m *MyModule) Example(path string, allExtras bool, allGroups bool, allPackages bool, daggerCodegen bool) *dagger.Container  {
	return dag.
			Uv().
			Workspace(path).
			Build(allExtras, allGroups, allPackages, daggerCodegen).
			WithLocalDependencies()
}
@function
def example(path: str, all_extras: bool, all_groups: bool, all_packages: bool, dagger_codegen: bool) -> dagger.Container:
	return (
		dag.uv()
		.workspace(path)
		.build(all_extras, all_groups, all_packages, dagger_codegen)
		.with_local_dependencies()
	)
@func()
example(path: string, allExtras: boolean, allGroups: boolean, allPackages: boolean, daggerCodegen: boolean): Container {
	return dag
		.uv()
		.workspace(path)
		.build(allExtras, allGroups, allPackages, daggerCodegen)
		.withLocalDependencies()
}

withRemoteDependencies() 🔗

Install remote (non-local) dependencies via uv sync --no-install-local.

Skip this step when another tool (e.g. pulumi install) handles dependency installation.

Return Type
WorkspaceBuild !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 build --all-extras boolean --all-groups boolean --all-packages boolean --dagger-codegen boolean \
 with-remote-dependencies
func (m *MyModule) Example(path string, allExtras bool, allGroups bool, allPackages bool, daggerCodegen bool) *dagger.UvWorkspaceBuild  {
	return dag.
			Uv().
			Workspace(path).
			Build(allExtras, allGroups, allPackages, daggerCodegen).
			WithRemoteDependencies()
}
@function
def example(path: str, all_extras: bool, all_groups: bool, all_packages: bool, dagger_codegen: bool) -> dagger.UvWorkspaceBuild:
	return (
		dag.uv()
		.workspace(path)
		.build(all_extras, all_groups, all_packages, dagger_codegen)
		.with_remote_dependencies()
	)
@func()
example(path: string, allExtras: boolean, allGroups: boolean, allPackages: boolean, daggerCodegen: boolean): UvWorkspaceBuild {
	return dag
		.uv()
		.workspace(path)
		.build(allExtras, allGroups, allPackages, daggerCodegen)
		.withRemoteDependencies()
}

withWorkspaceFiles() 🔗

Scaffold needed local package stubs (pyproject.toml + empty src/) into the container.

Return Type
WorkspaceBuild !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 build --all-extras boolean --all-groups boolean --all-packages boolean --dagger-codegen boolean \
 with-workspace-files
func (m *MyModule) Example(path string, allExtras bool, allGroups bool, allPackages bool, daggerCodegen bool) *dagger.UvWorkspaceBuild  {
	return dag.
			Uv().
			Workspace(path).
			Build(allExtras, allGroups, allPackages, daggerCodegen).
			WithWorkspaceFiles()
}
@function
def example(path: str, all_extras: bool, all_groups: bool, all_packages: bool, dagger_codegen: bool) -> dagger.UvWorkspaceBuild:
	return (
		dag.uv()
		.workspace(path)
		.build(all_extras, all_groups, all_packages, dagger_codegen)
		.with_workspace_files()
	)
@func()
example(path: string, allExtras: boolean, allGroups: boolean, allPackages: boolean, daggerCodegen: boolean): UvWorkspaceBuild {
	return dag
		.uv()
		.workspace(path)
		.build(allExtras, allGroups, allPackages, daggerCodegen)
		.withWorkspaceFiles()
}

WorkspaceSource 🔗

A self-contained uv workspace: the source files rooted at a ``uv.lock``. Carries the source tree and the workspace's path within it (``"."`` for a root workspace). From those it derives everything it needs to ``audit`` the locked dependencies or ``build`` a minimal container for a package — keeping the parent ``Uv`` a thin, container-free entrypoint. The full ``source`` (rather than just the sliced workspace directory) is carried so builds can reach sibling path-dependencies that live *outside* the workspace root (e.g. ``../my-dep`` in a nested workspace). Named ``UvWorkspaceSource`` (not ``UvWorkspace``) to avoid colliding with the sibling ``uv-workspace`` module's main ``UvWorkspace`` object when both are composed in a parent module.

source() 🔗

Source tree containing the workspace (and any sibling path-dependencies).

Return Type
Directory !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 source
func (m *MyModule) Example(path string) *dagger.Directory  {
	return dag.
			Uv().
			Workspace(path).
			Source()
}
@function
def example(path: str) -> dagger.Directory:
	return (
		dag.uv()
		.workspace(path)
		.source()
	)
@func()
example(path: string): Directory {
	return dag
		.uv()
		.workspace(path)
		.source()
}

path() 🔗

Workspace root path (holding uv.lock/pyproject.toml) within source. . for a root workspace.

Return Type
String !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 path
func (m *MyModule) Example(ctx context.Context, path string) string  {
	return dag.
			Uv().
			Workspace(path).
			Path(ctx)
}
@function
async def example(path: str) -> str:
	return await (
		dag.uv()
		.workspace(path)
		.path()
	)
@func()
async example(path: string): Promise<string> {
	return dag
		.uv()
		.workspace(path)
		.path()
}

audit() 🔗

Audit this workspace’s locked dependencies.

The image is resolved here (explicit image > image_ref(uv_version) > the version detected from the workspace) and handed to a container-bound Audit; resolving an image tag is pure string work, so this type stays container-free.

Return Type
Audit !
Arguments
NameTypeDefault ValueDescription
uvVersionString nulluv version (image tag) to audit with. Defaults to the version detected from the workspace; ignored when `image` is set.
imageString nullFull uv image reference to audit with. Overrides `uv_version`.
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 audit
func (m *MyModule) Example(path string) *dagger.UvAudit  {
	return dag.
			Uv().
			Workspace(path).
			Audit()
}
@function
def example(path: str) -> dagger.UvAudit:
	return (
		dag.uv()
		.workspace(path)
		.audit()
	)
@func()
example(path: string): UvAudit {
	return dag
		.uv()
		.workspace(path)
		.audit()
}

build() 🔗

Prepare a build for this workspace without installing anything yet.

Resolves the sync plan, mounts the uv cache, and copies the root pyproject.toml and uv.lock into the container. Nothing is installed — the returned UvWorkspaceBuild drives the pipeline from here: with_remote_dependencies() to install remote deps, with_workspace_files() to scaffold local packages, then with_local_dependencies() to install them. Skip with_remote_dependencies() when another tool (e.g. pulumi install) handles dependency installation.

Return Type
WorkspaceBuild !
Arguments
NameTypeDefault ValueDescription
baseContainerContainer nullContainer to build on top of (auth, system packages, etc.). Defaults to a Debian-based uv image at the workspace's uv version (uv provisions Python on demand).
package[String ! ] nullNo description provided
extra[String ! ] nullNo description provided
group[String ! ] nullNo description provided
allExtrasBoolean !falseInstall every extra; maps to `uv sync --all-extras`
allGroupsBoolean !falseInstall every dependency group; maps to `uv sync --all-groups`
allPackagesBoolean !falseInstall every workspace member; maps to `uv sync --all-packages`
daggerCodegenBoolean !trueIf True (default), and the package being built has a `dagger.json`, run Dagger codegen and overlay the generated SDK before `uv sync`. No-op for non-Dagger projects.
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 build --all-extras boolean --all-groups boolean --all-packages boolean --dagger-codegen boolean
func (m *MyModule) Example(path string, allExtras bool, allGroups bool, allPackages bool, daggerCodegen bool) *dagger.UvWorkspaceBuild  {
	return dag.
			Uv().
			Workspace(path).
			Build(allExtras, allGroups, allPackages, daggerCodegen)
}
@function
def example(path: str, all_extras: bool, all_groups: bool, all_packages: bool, dagger_codegen: bool) -> dagger.UvWorkspaceBuild:
	return (
		dag.uv()
		.workspace(path)
		.build(all_extras, all_groups, all_packages, dagger_codegen)
	)
@func()
example(path: string, allExtras: boolean, allGroups: boolean, allPackages: boolean, daggerCodegen: boolean): UvWorkspaceBuild {
	return dag
		.uv()
		.workspace(path)
		.build(allExtras, allGroups, allPackages, daggerCodegen)
}

install() 🔗

Build a minimal container with deps installed for the given package(s).

Convenience method composing build, with_remote_dependencies, with_workspace_files, and with_local_dependencies. For fine-grained control (e.g. running pulumi install between remote deps and local source), call them individually.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
baseContainerContainer nullContainer to build on (auth, system packages, etc.). Defaults to a Debian-based uv image at the workspace's uv version (uv provisions Python on demand).
package[String ! ] nullNo description provided
extra[String ! ] nullNo description provided
group[String ! ] nullNo description provided
allExtrasBoolean !falseInstall every extra; maps to `uv sync --all-extras`
allGroupsBoolean !falseInstall every dependency group; maps to `uv sync --all-groups`
allPackagesBoolean !falseInstall every workspace member; maps to `uv sync --all-packages`
daggerCodegenBoolean !trueIf True (default), and the package being built has a `dagger.json`, run Dagger codegen and overlay the generated SDK before `uv sync`. No-op for non-Dagger projects.
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 install --all-extras boolean --all-groups boolean --all-packages boolean --dagger-codegen boolean
func (m *MyModule) Example(path string, allExtras bool, allGroups bool, allPackages bool, daggerCodegen bool) *dagger.Container  {
	return dag.
			Uv().
			Workspace(path).
			Install(allExtras, allGroups, allPackages, daggerCodegen)
}
@function
def example(path: str, all_extras: bool, all_groups: bool, all_packages: bool, dagger_codegen: bool) -> dagger.Container:
	return (
		dag.uv()
		.workspace(path)
		.install(all_extras, all_groups, all_packages, dagger_codegen)
	)
@func()
example(path: string, allExtras: boolean, allGroups: boolean, allPackages: boolean, daggerCodegen: boolean): Container {
	return dag
		.uv()
		.workspace(path)
		.install(allExtras, allGroups, allPackages, daggerCodegen)
}

uvVersion() 🔗

The uv version this workspace requires, as a concrete image tag.

Reads required-version (a PEP 440 specifier) from uv.toml or the [tool.uv] table of pyproject.toml. Exact pins are used as-is; ranges resolve to their minimal compatible version (no PyPI lookup). Falls back to the default latest tag when unspecified.

Return Type
String !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string \
 uv-version
func (m *MyModule) Example(ctx context.Context, path string) string  {
	return dag.
			Uv().
			Workspace(path).
			UvVersion(ctx)
}
@function
async def example(path: str) -> str:
	return await (
		dag.uv()
		.workspace(path)
		.uv_version()
	)
@func()
async example(path: string): Promise<string> {
	return dag
		.uv()
		.workspace(path)
		.uvVersion()
}

Uv 🔗

Container-free entrypoint for uv-managed Python projects. Holds only the user-provided source tree and hands out :class:`UvWorkspaceSource` objects — one per workspace — which own the actual work (audit, build). Use `workspace` to grab a single workspace by path, `get_workspaces` to list them all, or `audit` to audit every one.

source() 🔗

Source directory.

Return Type
Directory !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 source
func (m *MyModule) Example() *dagger.Directory  {
	return dag.
			Uv().
			Source()
}
@function
def example() -> dagger.Directory:
	return (
		dag.uv()
		.source()
	)
@func()
example(): Directory {
	return dag
		.uv()
		.source()
}

audit() 🔗

Run uv audit for every workspace in parallel.

Exits non-zero when any (non-excluded) workspace fails its audit.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
exclude[String ! ] nullGlob patterns (source-relative) of workspace paths to skip, e.g. `**/tests/_packages/**`.
uvVersionString nulluv version (image tag) to run with. Defaults to the version detected per workspace; ignored when `image` is set.
imageString nullFull uv image reference to run with. Overrides `uv_version`.
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 audit
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Uv().
			Audit(ctx)
}
@function
async def example() -> None:
	return await (
		dag.uv()
		.audit()
	)
@func()
async example(): Promise<void> {
	return dag
		.uv()
		.audit()
}

getWorkspaces() 🔗

Every uv workspace in the source tree (one per uv.lock).

Return Type
[WorkspaceSource ! ] !
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 get-workspaces
func (m *MyModule) Example() []*dagger.UvWorkspaceSource  {
	return dag.
			Uv().
			GetWorkspaces()
}
@function
def example() -> List[dagger.UvWorkspaceSource]:
	return (
		dag.uv()
		.get_workspaces()
	)
@func()
example(): UvWorkspaceSource[] {
	return dag
		.uv()
		.getWorkspaces()
}

workspace() 🔗

A single uv workspace at path within the source tree.

The returned UvWorkspaceSource can audit its locked dependencies or build a minimal container for a package.

Return Type
WorkspaceSource !
Arguments
NameTypeDefault ValueDescription
pathString !"."Path to the workspace root (holding uv.lock and pyproject.toml) within the source directory.
Example
dagger -m github.com/typesafe-ai/daggerverse/uv@ad628c0bfd177e888af078d4a8855a568adcfbcf call \
 workspace --path string
func (m *MyModule) Example(path string) *dagger.UvWorkspaceSource  {
	return dag.
			Uv().
			Workspace(path)
}
@function
def example(path: str) -> dagger.UvWorkspaceSource:
	return (
		dag.uv()
		.workspace(path)
	)
@func()
example(path: string): UvWorkspaceSource {
	return dag
		.uv()
		.workspace(path)
}