dvc-objects 5.1.1__tar.gz → 5.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/.github/workflows/release.yml +4 -4
  2. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/.github/workflows/tests.yml +13 -4
  3. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/.github/workflows/update-template.yaml +1 -1
  4. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/.pre-commit-config.yaml +3 -3
  5. {dvc_objects-5.1.1/src/dvc_objects.egg-info → dvc_objects-5.1.2}/PKG-INFO +5 -4
  6. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/noxfile.py +5 -3
  7. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/pyproject.toml +6 -4
  8. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/fs/system.py +8 -0
  9. {dvc_objects-5.1.1 → dvc_objects-5.1.2/src/dvc_objects.egg-info}/PKG-INFO +5 -4
  10. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects.egg-info/requires.txt +2 -2
  11. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/.cruft.json +0 -0
  12. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/.gitattributes +0 -0
  13. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/.github/dependabot.yml +0 -0
  14. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/.gitignore +0 -0
  15. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/CODE_OF_CONDUCT.rst +0 -0
  16. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/CONTRIBUTING.rst +0 -0
  17. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/LICENSE +0 -0
  18. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/README.rst +0 -0
  19. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/setup.cfg +0 -0
  20. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/__init__.py +0 -0
  21. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/compat.py +0 -0
  22. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/db.py +0 -0
  23. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/errors.py +0 -0
  24. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/executors.py +0 -0
  25. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/fs/__init__.py +0 -0
  26. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/fs/base.py +0 -0
  27. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/fs/callbacks.py +0 -0
  28. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/fs/errors.py +0 -0
  29. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/fs/generic.py +0 -0
  30. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/fs/local.py +0 -0
  31. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/fs/memory.py +0 -0
  32. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/fs/scheme.py +0 -0
  33. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/fs/utils.py +0 -0
  34. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/obj.py +0 -0
  35. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/py.typed +0 -0
  36. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects/transfer.py +0 -0
  37. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects.egg-info/SOURCES.txt +0 -0
  38. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects.egg-info/dependency_links.txt +0 -0
  39. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/src/dvc_objects.egg-info/top_level.txt +0 -0
  40. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/__init__.py +0 -0
  41. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/benchmarks/__init__.py +0 -0
  42. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/benchmarks/test_fs.py +0 -0
  43. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/conftest.py +0 -0
  44. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/fs/__init__.py +0 -0
  45. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/fs/test_callbacks.py +0 -0
  46. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/fs/test_generic.py +0 -0
  47. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/fs/test_localfs.py +0 -0
  48. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/fs/test_system.py +0 -0
  49. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/fs/test_utils.py +0 -0
  50. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/test_odb.py +0 -0
  51. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/test_reflink.py +0 -0
  52. {dvc_objects-5.1.1 → dvc_objects-5.1.2}/tests/test_transfer.py +0 -0
@@ -17,14 +17,14 @@ jobs:
17
17
  runs-on: ubuntu-latest
18
18
  steps:
19
19
  - name: Check out the repository
20
- uses: actions/checkout@v4
20
+ uses: actions/checkout@v5
21
21
  with:
22
22
  fetch-depth: 0
23
23
 
24
- - name: Set up Python 3.11
25
- uses: actions/setup-python@v5
24
+ - name: Set up Python 3.13
25
+ uses: actions/setup-python@v6
26
26
  with:
27
- python-version: '3.11'
27
+ python-version: '3.13'
28
28
 
29
29
  - name: Upgrade pip and nox
30
30
  run: |
@@ -21,18 +21,18 @@ jobs:
21
21
  fail-fast: false
22
22
  matrix:
23
23
  os: [ubuntu-latest, windows-latest, macos-latest]
24
- pyv: ['3.9', '3.10', '3.11', '3.12', '3.13']
24
+ pyv: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
25
25
  include:
26
26
  - {os: ubuntu-latest, pyv: 'pypy3.9'}
27
27
 
28
28
  steps:
29
29
  - name: Check out the repository
30
- uses: actions/checkout@v4
30
+ uses: actions/checkout@v5
31
31
  with:
32
32
  fetch-depth: 0
33
33
 
34
34
  - name: Set up Python ${{ matrix.pyv }}
35
- uses: actions/setup-python@v5
35
+ uses: actions/setup-python@v6
36
36
  with:
37
37
  python-version: ${{ matrix.pyv }}
38
38
  cache: pip
@@ -49,7 +49,7 @@ jobs:
49
49
  run: nox -s lint
50
50
 
51
51
  - name: Run tests
52
- run: nox -s tests-${{ matrix.nox_pyv || matrix.pyv }} -- --cov-report=xml
52
+ run: nox -s tests-${{ matrix.pyv }} -- --cov-report=xml
53
53
 
54
54
  - name: Upload coverage report
55
55
  uses: codecov/codecov-action@v5
@@ -59,3 +59,12 @@ jobs:
59
59
 
60
60
  - name: Build package
61
61
  run: nox -s build
62
+
63
+ check:
64
+ if: always()
65
+ needs: [tests]
66
+ runs-on: ubuntu-latest
67
+ steps:
68
+ - uses: re-actors/alls-green@release/v1
69
+ with:
70
+ jobs: ${{ toJSON(needs) }}
@@ -10,7 +10,7 @@ jobs:
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
12
  - name: Check out the repository
13
- uses: actions/checkout@v4
13
+ uses: actions/checkout@v5
14
14
 
15
15
  - name: Update template
16
16
  uses: iterative/py-template@main
@@ -2,7 +2,7 @@ default_language_version:
2
2
  python: python3
3
3
  repos:
4
4
  - repo: https://github.com/pre-commit/pre-commit-hooks
5
- rev: v5.0.0
5
+ rev: v6.0.0
6
6
  hooks:
7
7
  - id: check-added-large-files
8
8
  - id: check-case-conflict
@@ -20,9 +20,9 @@ repos:
20
20
  - id: sort-simple-yaml
21
21
  - id: trailing-whitespace
22
22
  - repo: https://github.com/astral-sh/ruff-pre-commit
23
- rev: 'v0.11.12'
23
+ rev: 'v0.13.1'
24
24
  hooks:
25
- - id: ruff
25
+ - id: ruff-check
26
26
  args: [--fix, --exit-non-zero-on-fix]
27
27
  - id: ruff-format
28
28
  - repo: https://github.com/codespell-project/codespell
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dvc-objects
3
- Version: 5.1.1
3
+ Version: 5.1.2
4
4
  Summary: dvc objects - filesystem and object-db level abstractions to use in dvc and dvc-data
5
5
  Author-email: Iterative <support@dvc.org>
6
- License: Apache-2.0
6
+ License-Expression: Apache-2.0
7
7
  Project-URL: Issues, https://github.com/iterative/dvc-objects/issues
8
8
  Project-URL: Source, https://github.com/iterative/dvc-objects
9
9
  Classifier: Programming Language :: Python :: 3
@@ -12,6 +12,7 @@ Classifier: Programming Language :: Python :: 3.10
12
12
  Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
15
16
  Classifier: Development Status :: 4 - Beta
16
17
  Requires-Python: >=3.9
17
18
  Description-Content-Type: text/x-rst
@@ -24,11 +25,11 @@ Requires-Dist: pytest-sugar; extra == "tests"
24
25
  Requires-Dist: pytest-cov>=4.1.0; extra == "tests"
25
26
  Requires-Dist: pytest-mock; extra == "tests"
26
27
  Requires-Dist: pytest-benchmark; extra == "tests"
27
- Requires-Dist: pytest-asyncio<1,>=0.23.2; extra == "tests"
28
+ Requires-Dist: pytest-asyncio<2,>=0.23.2; extra == "tests"
28
29
  Requires-Dist: reflink; extra == "tests"
29
30
  Provides-Extra: dev
30
31
  Requires-Dist: dvc-objects[tests]; extra == "dev"
31
- Requires-Dist: mypy==1.16.0; extra == "dev"
32
+ Requires-Dist: mypy==1.18.2; extra == "dev"
32
33
  Dynamic: license-file
33
34
 
34
35
  DVC objects
@@ -11,10 +11,12 @@ locations = "src", "tests"
11
11
 
12
12
  pip_dev_flags = ["--use-pep517"] # reflink package is still missing wheels
13
13
 
14
+ project = nox.project.load_toml()
15
+ python_versions = nox.project.python_versions(project)
16
+ pypy_versions = ["pypy3.9", "pypy3.10", "pypy3.11"]
14
17
 
15
- @nox.session(
16
- python=["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "pypy3.8", "pypy3.9"]
17
- )
18
+
19
+ @nox.session(python=python_versions + pypy_versions)
18
20
  def tests(session: nox.Session) -> None:
19
21
  session.install(".[tests]", *pip_dev_flags)
20
22
  session.run(
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["setuptools>=48", "setuptools_scm[toml]>=6.3.1"]
2
+ requires = ["setuptools>=77", "setuptools_scm[toml]>=8"]
3
3
  build-backend = "setuptools.build_meta"
4
4
 
5
5
  [tool.setuptools_scm]
@@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
8
8
  name = "dvc-objects"
9
9
  description = "dvc objects - filesystem and object-db level abstractions to use in dvc and dvc-data"
10
10
  readme = "README.rst"
11
- license = {text = "Apache-2.0"}
11
+ license = "Apache-2.0"
12
12
  authors = [{ name = "Iterative", email = "support@dvc.org" }]
13
13
  classifiers = [
14
14
  "Programming Language :: Python :: 3",
@@ -17,6 +17,7 @@ classifiers = [
17
17
  "Programming Language :: Python :: 3.11",
18
18
  "Programming Language :: Python :: 3.12",
19
19
  "Programming Language :: Python :: 3.13",
20
+ "Programming Language :: Python :: 3.14",
20
21
  "Development Status :: 4 - Beta",
21
22
  ]
22
23
  requires-python = ">=3.9"
@@ -37,12 +38,12 @@ tests = [
37
38
  "pytest-cov>=4.1.0",
38
39
  "pytest-mock",
39
40
  "pytest-benchmark",
40
- "pytest-asyncio>=0.23.2,<1",
41
+ "pytest-asyncio>=0.23.2,<2",
41
42
  "reflink",
42
43
  ]
43
44
  dev = [
44
45
  "dvc-objects[tests]",
45
- "mypy==1.16.0",
46
+ "mypy==1.18.2",
46
47
  ]
47
48
 
48
49
  [tool.setuptools.packages.find]
@@ -111,6 +112,7 @@ show-fixes = true
111
112
  [tool.ruff.lint]
112
113
  ignore = [
113
114
  "ISC001", # single-line-implicit-string-concatenation
115
+ "PLC0415", # import-outside-top-level
114
116
  "PLR2004", # magic-value-comparison
115
117
  "PLW2901", # redefined-loop-name
116
118
  "RET501", # unnecessary-return-none
@@ -12,7 +12,15 @@ if TYPE_CHECKING:
12
12
  logger = logging.getLogger(__name__)
13
13
 
14
14
 
15
+ has_link = hasattr(os, "link")
16
+
17
+
15
18
  def hardlink(source: "AnyFSPath", link_name: "AnyFSPath") -> None:
19
+ if not has_link:
20
+ # some Python ports (eg: Termux) don't have os.link()
21
+ # see: https://github.com/iterative/dvc/issues/10875
22
+ raise OSError(errno.ENOTSUP, "hardlink is not supported")
23
+
16
24
  # NOTE: we should really be using `os.link()` here with
17
25
  # `follow_symlinks=True`, but unfortunately the implementation is
18
26
  # buggy across platforms, so until it is fixed, we just dereference
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dvc-objects
3
- Version: 5.1.1
3
+ Version: 5.1.2
4
4
  Summary: dvc objects - filesystem and object-db level abstractions to use in dvc and dvc-data
5
5
  Author-email: Iterative <support@dvc.org>
6
- License: Apache-2.0
6
+ License-Expression: Apache-2.0
7
7
  Project-URL: Issues, https://github.com/iterative/dvc-objects/issues
8
8
  Project-URL: Source, https://github.com/iterative/dvc-objects
9
9
  Classifier: Programming Language :: Python :: 3
@@ -12,6 +12,7 @@ Classifier: Programming Language :: Python :: 3.10
12
12
  Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
15
16
  Classifier: Development Status :: 4 - Beta
16
17
  Requires-Python: >=3.9
17
18
  Description-Content-Type: text/x-rst
@@ -24,11 +25,11 @@ Requires-Dist: pytest-sugar; extra == "tests"
24
25
  Requires-Dist: pytest-cov>=4.1.0; extra == "tests"
25
26
  Requires-Dist: pytest-mock; extra == "tests"
26
27
  Requires-Dist: pytest-benchmark; extra == "tests"
27
- Requires-Dist: pytest-asyncio<1,>=0.23.2; extra == "tests"
28
+ Requires-Dist: pytest-asyncio<2,>=0.23.2; extra == "tests"
28
29
  Requires-Dist: reflink; extra == "tests"
29
30
  Provides-Extra: dev
30
31
  Requires-Dist: dvc-objects[tests]; extra == "dev"
31
- Requires-Dist: mypy==1.16.0; extra == "dev"
32
+ Requires-Dist: mypy==1.18.2; extra == "dev"
32
33
  Dynamic: license-file
33
34
 
34
35
  DVC objects
@@ -5,7 +5,7 @@ funcy>=1.14
5
5
 
6
6
  [dev]
7
7
  dvc-objects[tests]
8
- mypy==1.16.0
8
+ mypy==1.18.2
9
9
 
10
10
  [tests]
11
11
  pytest<9,>=7
@@ -13,5 +13,5 @@ pytest-sugar
13
13
  pytest-cov>=4.1.0
14
14
  pytest-mock
15
15
  pytest-benchmark
16
- pytest-asyncio<1,>=0.23.2
16
+ pytest-asyncio<2,>=0.23.2
17
17
  reflink
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes