Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Iterative Dvc Pyproject Config

From Leeroopedia


Knowledge Sources
Domains Build_System, Project_Configuration
Last Updated 2026-02-10 10:00 GMT

Overview

Concrete project configuration defining the DVC build system, dependencies, entry points, and development tool settings. The pyproject.toml serves as the single source of truth for the DVC package metadata, build configuration, runtime dependencies, optional extras, CLI entry points, filesystem plugin registrations, and development tool configurations (pytest, coverage, mypy, ruff, codespell).

Source: pyproject.toml (314 lines)

Note: This is a configuration file, not Python code. The signature section shows entry points instead of function signatures.

Entry Points

# CLI entry point
[project.scripts]
dvc = "dvc.cli:main"

# fsspec filesystem specification
[project.entry-points."fsspec.specs"]
dvc = "dvc.api:DVCFileSystem"

# universal_pathlib implementations
[project.entry-points."universal_pathlib.implementations"]
dvc = "dvc.fs.dvc_path:DVCPath"
"dvc+http" = "dvc.fs.dvc_path:DVCPath"
"dvc+https" = "dvc.fs.dvc_path:DVCPath"
"dvc+ssh" = "dvc.fs.dvc_path:DVCPath"

# PyInstaller hooks
[project.entry-points."pyinstaller40"]
hook-dirs = "dvc.__pyinstaller:get_hook_dirs"
tests = "dvc.__pyinstaller:get_PyInstaller_tests"

Import

N/A (configuration file)

Description

Build System

Setting Value
Build backend setuptools.build_meta
Build requirements setuptools>=77, setuptools_scm[toml]>=8
Version management Dynamic via setuptools_scm, written to dvc/_version.py
Package discovery setuptools.packages.find excluding tests and tests.*

Project Metadata

Field Value
Name dvc
Description "Git for data scientists - manage your code and data together"
License Apache-2.0
Python requirement >=3.9
Supported Python versions 3.9, 3.10, 3.11, 3.12, 3.13, 3.14
Author Dmitry Petrov (dmitry@dvc.org)
Maintainer Treeverse (support@dvc.org)

Runtime Dependencies

The project declares 40+ runtime dependencies. Key dependency groups:

Category Dependencies
Data management dvc-data>=3.18.2,<3.19.0, dvc-objects, dvc-render>=1.0.1,<2
Configuration hydra-core>=1.1, omegaconf, configobj>=5.0.9, tomlkit>=0.11.1
UI / Output rich>=12, colorama>=0.3.9, tabulate>=0.8.7, tqdm<5,>=4.63.1
Filesystem fsspec>=2024.2.0, dvc-http>=2.29.0
Git / SCM scmrepo>=3.5.2,<4, dulwich, gto>=1.6.0,<2
Task queue celery, kombu, dvc-task>=0.3.0,<1
Parsing / Serialization ruamel.yaml>=0.17.11, voluptuous>=0.11.7, flatten-dict<1,>=0.4.1, dpath<3,>=2.1.0
Networking requests>=2.22
Utilities funcy>=1.14, attrs>=22.2.0, shortuuid>=0.5, psutil>=5.8, packaging>=19
Studio integration dvc-studio-client>=0.21,<1, iterative-telemetry>=0.0.7
Graph / Visualization networkx>=2.5, grandalf<1,>=0.7, pydot>=1.2.4

Optional Dependency Groups

Extra Dependencies
all Installs all cloud backends: azure, gdrive, gs, hdfs, oss, s3, ssh, webdav, webhdfs
s3 dvc-s3>=3.2.1,<4
gs dvc-gs>=3.0.2,<4
azure dvc-azure>=3.1.0,<4
gdrive dvc-gdrive>=3,<4
hdfs dvc-hdfs>=3,<4
oss dvc-oss>=3,<4
ssh dvc-ssh>=4,<5
ssh_gssapi dvc-ssh[gssapi]>=4,<5
webdav dvc-webdav>=3.0.1,<4
webhdfs dvc-webhdfs>=3.1,<4
webhdfs_kerberos dvc-webhdfs[kerberos]>=3.1,<4
testing pytest-benchmark[histogram]>=5,<6, uv
tests pytest, pytest-cov, pytest-mock, pytest-docker, pytest-xdist, pytest-timeout, beautifulsoup4, filelock, sqlalchemy, pandas, and more
lint mypy==1.19.1, type stubs for colorama, psutil, requests, tabulate, tqdm, etc.
dev Combines all cloud backends, lint, and tests extras

Tool Configurations

pytest

Setting Value
Default options -ra --cov-config pyproject.toml
Test paths tests/
xfail_strict true
Custom markers needs_internet, studio, vscode
Filter warnings Converts ResourceWarning, PytestUnraisableExceptionWarning, PytestMockWarning to errors; ignores specific deprecation warnings from boto, google-cloud, networkx, etc.

coverage

Setting Value
Branch coverage Enabled
Source paths dvc, tests
Excluded lines if __name__, TYPE_CHECKING, @overload, pragma: no cover, raise AssertionError, raise NotImplementedError

mypy

Setting Value
Files dvc/
Key flags check_untyped_defs, no_implicit_optional, strict_equality, extra_checks, warn_unreachable
Ignored imports 30+ third-party modules without type stubs (celery, fsspec, funcy, networkx, ruamel, voluptuous, etc.)

ruff

Setting Value
Selected rule sets F, E, W, C90, I, N, UP, YTT, ASYNC, S, BLE, B, A, C4, DTZ, T10, EXE, ISC, ICN, LOG, G, INP, PIE, T20, PYI, PT, Q, RSE, RET, SLOT, SIM, TID, TC, ARG, PGH, PLC, PLE, PLR, PLW, TRY, FLY, PERF, FURB, RUF
Ignored rules PERF203 (try-except-in-loop), PLC0415 (import-outside-top-level), PLR2004 (magic-value), PLW2901 (redefined-loop-name), S101 (assert), SIM105, SIM108, SIM117, TRY003, TRY300
Per-file overrides dvc/commands/**: ignore N806; dvc/testing/**: ignore ARG002; tests/**: ignore S, ARG001, ARG002, TRY002, TRY301, PERF, PLR2004
isort config First-party: dvc, dvc_*, tests

Related

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment