dlt._workspace.deployment.requirements
Export, save, load, and migrate TWorkspaceRequirementsManifest — the wire format for workspace dependencies shipped to the runtime.
Supports requirements.txt and requirements.in. If uv installed - supports pyproject with dependency groups and uv/PEP lock files.
poetry/PDM support can be easily added.
WorkspaceRequirementsError Objects
class WorkspaceRequirementsError(Exception)
Raised when a workspace's dependency files cannot be exported.
get_dlt_requirement_spec
def get_dlt_requirement_spec() -> str
Build a PEP 508 spec for the currently installed dlt distribution.
Uses PEP 610 direct_url.json when dlt was installed from a URL (branch
zip, git) so the spec survives on a remote runner; falls back to a
dlt==<version> pin for ordinary index installs.
python_version
def python_version() -> str
Current interpreter's major.minor version, e.g. "3.12".
build_launcher_requirements
def build_launcher_requirements() -> Dict[str, List[str]]
Per-launcher mandatory specs. dlt is injected separately at build time.
build_dashboard_group
def build_dashboard_group() -> List[str]
Specs for the DASHBOARD_JOB_REF group.
default_requirements_manifest
def default_requirements_manifest() -> TWorkspaceRequirementsManifest
Minimal manifest: empty main, dashboard group, launcher specs with dlt injected.
export_workspace_requirements
def export_workspace_requirements(
workspace_root: Path,
default_groups: Optional[List[str]] = None
) -> TWorkspaceRequirementsManifest
Export a workspace's dependencies as a TWorkspaceRequirementsManifest.
If no default group names dlt, the installed dlt spec is injected into the launcher baseline so every job gets it.
Arguments:
workspace_rootPath - Workspace directory.default_groupsOptional[List[str]] - Manifest-leveldefault_groups. Defaults to["main"].
Returns:
TWorkspaceRequirementsManifest- Always contains amainentry ingroups.
Raises:
WorkspaceRequirementsError-uv.lockout of sync,uvfailure, or parse error.
migrate_requirements
def migrate_requirements(manifest_dict: DictStrAny, from_engine: int,
to_engine: int) -> TWorkspaceRequirementsManifest
Migrate a requirements manifest dict between engine versions.
save_requirements
def save_requirements(req: TWorkspaceRequirementsManifest,
f: BinaryIO) -> None
Serialize a requirements manifest as typed JSON.
load_requirements
def load_requirements(f: BinaryIO) -> TWorkspaceRequirementsManifest
Read, migrate, and validate a requirements manifest.