mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
fix: #8615 1. This is because, at the end of the tasks, the temp running directly will be deleted 1. Only fetch result during running (not during the result collection) 2. Bump into scmrepo 0.1.4 in which we wrapped `KeyError` into `SCMError`.
240 lines
6.5 KiB
TOML
240 lines
6.5 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=61", "setuptools_scm[toml]>=7"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "dvc"
|
|
description = "Git for data scientists - manage your code and data together"
|
|
readme = "README.rst"
|
|
keywords = [
|
|
"data-science",
|
|
"data-version-control",
|
|
"machine-learning",
|
|
"git",
|
|
"developer-tools",
|
|
"reproducibility",
|
|
"collaboration",
|
|
"ai",
|
|
]
|
|
license = { text = "Apache License 2.0" }
|
|
authors = [{ name = "Dmitry Petrov", email = "[email protected]" }]
|
|
maintainers = [{ name = "Iterative", email = "[email protected]" }]
|
|
requires-python = ">=3.8"
|
|
dependencies = [
|
|
"colorama>=0.3.9",
|
|
"configobj>=5.0.6",
|
|
"voluptuous>=0.11.7",
|
|
"requests>=2.22.0",
|
|
# See https://github.com/bdcht/grandalf/issues/26
|
|
"grandalf==0.6",
|
|
"distro>=1.3.0",
|
|
"appdirs>=1.4.3",
|
|
"ruamel.yaml>=0.17.11",
|
|
"tomlkit>=0.11.1",
|
|
"funcy>=1.14",
|
|
"pathspec>=0.9.0,<0.10.0",
|
|
"shortuuid>=0.5.0",
|
|
"tqdm>=4.63.1,<5",
|
|
"packaging>=19.0",
|
|
"zc.lockfile>=1.2.1",
|
|
"flufl.lock>=5",
|
|
"networkx>=2.5",
|
|
"psutil>=5.8.0",
|
|
"pydot>=1.2.4",
|
|
"importlib-resources>=5.2.2; python_version < '3.9'",
|
|
"flatten_dict>=0.4.1,<1",
|
|
"tabulate>=0.8.7",
|
|
"pygtrie>=2.3.2",
|
|
"dpath>=2.0.2,<3",
|
|
"shtab>=1.3.4,<2",
|
|
"rich>=10.13.0",
|
|
"pyparsing>=2.4.7",
|
|
"typing-extensions>=3.7.4",
|
|
"scmrepo==0.1.4",
|
|
"dvc-render==0.0.14",
|
|
"dvc-task==0.1.6",
|
|
"dvclive>=1.0",
|
|
"dvc-data==0.28.2",
|
|
"dvc-http==2.27.2",
|
|
"hydra-core>=1.1.0",
|
|
"iterative-telemetry==0.0.6",
|
|
]
|
|
dynamic = ["version"]
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
azure = ["dvc-azure==2.20.5"]
|
|
gdrive = ["dvc-gdrive==2.19.1"]
|
|
gs = ["dvc-gs==2.20.0"]
|
|
hdfs = ["dvc-hdfs==2.19.0"]
|
|
oss = ["dvc-oss==2.19.0"]
|
|
s3 = ["dvc-s3==2.21.0"]
|
|
ssh = ["dvc-ssh==2.20.0"]
|
|
ssh_gssapi = ["dvc-ssh[gssapi]==2.20.0"]
|
|
webdav = ["dvc-webdav==2.19.0"]
|
|
webhdfs = ["dvc-webhdfs==2.19.0"]
|
|
webhdfs_kerberos = ["dvc-webhdfs[kerberos]==2.19.0"]
|
|
terraform = ["tpi[ssh]>=2.1.0"]
|
|
testing = ["pytest-test-utils==0.0.8"]
|
|
tests = [
|
|
"tpi[ssh]>=2.1.0",
|
|
"dvc-ssh==2.20.0",
|
|
"pytest-test-utils==0.0.8",
|
|
# Test requirements
|
|
"pytest==7.2.0",
|
|
"pytest-cov==4.0.0",
|
|
"pytest-xdist==3.0.2",
|
|
"pytest-mock==3.10.0",
|
|
"pytest-lazy-fixture==0.6.3",
|
|
# https://github.com/docker/docker-py/issues/2902
|
|
"pytest-docker==0.11.0; python_version < '3.10' or sys_platform != 'win32'",
|
|
"flaky==3.7.0",
|
|
"pytest-timeout==2.1.0",
|
|
"filelock==3.8.0",
|
|
"beautifulsoup4==4.11.1",
|
|
"pywin32>=225; sys_platform == 'win32'", # optional dependency
|
|
# pylint requirements
|
|
"pylint==2.15.5",
|
|
# we use this to suppress pytest-related false positives in our tests.
|
|
"pylint-pytest==1.1.2",
|
|
# we use this to suppress some messages in tests, eg: foo/bar naming,
|
|
# and, protected method calls in our tests
|
|
"pylint-plugin-utils==0.7",
|
|
# type-checking
|
|
"mypy==0.990",
|
|
"types-requests",
|
|
"types-tabulate",
|
|
"types-toml",
|
|
]
|
|
all = ["dvc[azure,gdrive,gs,hdfs,oss,s3,ssh,webdav,webhdfs]"]
|
|
dev = ["dvc[azure,gdrive,gs,hdfs,oss,s3,ssh,webdav,webhdfs,tests]"]
|
|
|
|
[project.urls]
|
|
Documentation = "https://dvc.org/doc"
|
|
"Bug Tracker" = "https://github.com/iterative/dvc/issues"
|
|
Source = "https://github.com/iterative/dvc"
|
|
|
|
[project.scripts]
|
|
dvc = "dvc.cli:main"
|
|
|
|
[project.entry-points."fsspec.specs"]
|
|
dvc = "dvc.api:DVCFileSystem"
|
|
|
|
[tool.setuptools]
|
|
license-files = ["LICENSE"]
|
|
|
|
[tool.setuptools.packages]
|
|
find = {namespaces = false, exclude=["tests", "tests.*"]}
|
|
|
|
[tool.setuptools_scm]
|
|
write_to = "dvc/_dvc_version.py"
|
|
|
|
[tool.black]
|
|
line-length = 79
|
|
include = '\.pyi?$'
|
|
exclude = '''
|
|
/(
|
|
\.eggs
|
|
| \.git
|
|
| \.hg
|
|
| \.mypy_cache
|
|
| \.tox
|
|
| \.venv
|
|
| _build
|
|
| buck-out
|
|
| build
|
|
| dist
|
|
)/
|
|
'''
|
|
|
|
[tool.isort]
|
|
profile = "black"
|
|
known_first_party = ["dvc", "dvc_data", "dvc_objects", "dvc_render", "dvc_task", "tests"]
|
|
line_length = 79
|
|
|
|
[tool.pytest.ini_options]
|
|
log_level = "debug"
|
|
addopts = "-ra -p no:hydra_pytest --cov-config pyproject.toml"
|
|
markers = [
|
|
"needs_internet: Might need network access for the tests",
|
|
"vscode: Tests verifying contract between DVC and VSCode plugin",
|
|
"studio: Tests verifying contract between DVC and Studio",
|
|
]
|
|
xfail_strict = true
|
|
testpaths = ["tests"]
|
|
filterwarnings = ["error::pytest_mock.PytestMockWarning"]
|
|
|
|
[tool.coverage.run]
|
|
branch = true
|
|
source = ["dvc", "tests"]
|
|
|
|
[tool.coverage.paths]
|
|
source = ["dvc"]
|
|
|
|
[tool.coverage.report]
|
|
show_missing = true
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"if __name__ == .__main__.:",
|
|
"if typing.TYPE_CHECKING:",
|
|
"if TYPE_CHECKING:",
|
|
"raise NotImplementedError",
|
|
"raise AssertionError",
|
|
"@overload",
|
|
]
|
|
|
|
[tool.mypy]
|
|
# Error output
|
|
show_column_numbers = true
|
|
show_error_codes = true
|
|
show_error_context = true
|
|
show_traceback = true
|
|
pretty = true
|
|
# See https://mypy.readthedocs.io/en/latest/running_mypy.html#missing-imports.
|
|
ignore_missing_imports = true
|
|
implicit_optional = true
|
|
check_untyped_defs = false
|
|
# Warnings
|
|
warn_no_return = true
|
|
warn_redundant_casts = true
|
|
warn_unreachable = true
|
|
files = ["dvc"]
|
|
|
|
[tool.pylint.master]
|
|
extension-pkg-whitelist = ["pygit2"]
|
|
init-hook = "import sys; sys.path.append(str('tests'))"
|
|
load-plugins = ["pylint_pytest", "pylint_plugin_disable"]
|
|
|
|
[tool.pylint.message_control]
|
|
disable = [
|
|
"format", "refactoring", "spelling", "design",
|
|
"invalid-name", "duplicate-code", "fixme",
|
|
"unused-wildcard-import", "cyclic-import", "wrong-import-order",
|
|
"wrong-import-position", "ungrouped-imports", "multiple-imports",
|
|
"logging-format-interpolation", "logging-fstring-interpolation",
|
|
"missing-function-docstring", "missing-module-docstring",
|
|
"missing-class-docstring", "raise-missing-from", "import-outside-toplevel",
|
|
"cannot-enumerate-pytest-fixtures",
|
|
]
|
|
enable = ["c-extension-no-member", "no-else-return"]
|
|
|
|
[tool.pylint.typecheck]
|
|
generated-members = ["pytest.lazy_fixture", "logging.TRACE", "logger.trace", "sys.getwindowsversion", "argparse.Namespace"]
|
|
ignored-classes = ["Dvcfile"]
|
|
ignored-modules = ["azure"]
|
|
signature-mutators = ["funcy.decorators.decorator"]
|
|
|
|
[tool.pylint.variables]
|
|
dummy-variables-rgx = "_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_"
|
|
ignored-argument-names = "_.*|^ignored_|^unused_|args|kwargs"
|
|
|
|
[tool.codespell]
|
|
ignore-words-list = "ba,datas,fo,uptodate,cachable,falsy"
|