scmrepo 3.3.9__tar.gz → 3.3.10__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.
- {scmrepo-3.3.9 → scmrepo-3.3.10}/.github/workflows/tests.yaml +1 -1
- {scmrepo-3.3.9 → scmrepo-3.3.10}/.pre-commit-config.yaml +2 -2
- {scmrepo-3.3.9/src/scmrepo.egg-info → scmrepo-3.3.10}/PKG-INFO +3 -3
- {scmrepo-3.3.9 → scmrepo-3.3.10}/pyproject.toml +1 -1
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/fs.py +0 -31
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/__init__.py +2 -2
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/backend/gitpython.py +1 -1
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/backend/pygit2/__init__.py +1 -1
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/credentials.py +1 -1
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/lfs/fetch.py +1 -1
- {scmrepo-3.3.9 → scmrepo-3.3.10/src/scmrepo.egg-info}/PKG-INFO +3 -3
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo.egg-info/requires.txt +1 -1
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/test_lfs.py +1 -1
- {scmrepo-3.3.9 → scmrepo-3.3.10}/.coveragerc +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/.cruft.json +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/.gitattributes +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/.github/dependabot.yml +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/.github/workflows/release.yaml +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/.github/workflows/update-template.yaml +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/.gitignore +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/CODE_OF_CONDUCT.rst +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/CONTRIBUTING.rst +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/LICENSE +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/README.rst +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/noxfile.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/setup.cfg +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/__init__.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/asyn.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/base.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/exceptions.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/backend/__init__.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/backend/base.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/backend/dulwich/__init__.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/backend/dulwich/asyncssh_vendor.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/backend/dulwich/client.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/backend/pygit2/callbacks.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/backend/pygit2/filter.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/config.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/lfs/__init__.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/lfs/client.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/lfs/exceptions.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/lfs/object.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/lfs/pointer.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/lfs/progress.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/lfs/smudge.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/lfs/storage.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/objects.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/git/stash.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/noscm.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/progress.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/py.typed +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/urls.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo/utils.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo.egg-info/SOURCES.txt +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo.egg-info/dependency_links.txt +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/src/scmrepo.egg-info/top_level.txt +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/__init__.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/conftest.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/docker-compose.yml +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/git-init/git.sh +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/test_credentials.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/test_dulwich.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/test_fs.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/test_git.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/test_noscm.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/test_pygit2.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/test_scmrepo.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/test_stash.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/test_urls.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/user.key +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/user.key.pub +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/vendor/__init__.py +0 -0
- {scmrepo-3.3.9 → scmrepo-3.3.10}/tests/vendor/test_paramiko_vendor.py +0 -0
|
@@ -20,13 +20,13 @@ 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.
|
|
23
|
+
rev: 'v0.9.3'
|
|
24
24
|
hooks:
|
|
25
25
|
- id: ruff
|
|
26
26
|
args: [--fix, --exit-non-zero-on-fix]
|
|
27
27
|
- id: ruff-format
|
|
28
28
|
- repo: https://github.com/codespell-project/codespell
|
|
29
|
-
rev: v2.
|
|
29
|
+
rev: v2.4.0
|
|
30
30
|
hooks:
|
|
31
31
|
- id: codespell
|
|
32
32
|
additional_dependencies: ["tomli"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: scmrepo
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.10
|
|
4
4
|
Summary: scmrepo
|
|
5
5
|
Author-email: Iterative <support@dvc.org>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -38,7 +38,7 @@ Requires-Dist: pytest-sugar; extra == "tests"
|
|
|
38
38
|
Requires-Dist: pytest-test-utils<0.2,>=0.1.0; extra == "tests"
|
|
39
39
|
Requires-Dist: proxy.py; extra == "tests"
|
|
40
40
|
Provides-Extra: dev
|
|
41
|
-
Requires-Dist: mypy==1.
|
|
41
|
+
Requires-Dist: mypy==1.14.1; extra == "dev"
|
|
42
42
|
Requires-Dist: scmrepo[tests]; extra == "dev"
|
|
43
43
|
Requires-Dist: types-certifi; extra == "dev"
|
|
44
44
|
Requires-Dist: types-mock; extra == "dev"
|
|
@@ -3,9 +3,7 @@ import os
|
|
|
3
3
|
import posixpath
|
|
4
4
|
from typing import TYPE_CHECKING, Any, BinaryIO, Callable, Optional
|
|
5
5
|
|
|
6
|
-
from fsspec.callbacks import _DEFAULT_CALLBACK
|
|
7
6
|
from fsspec.spec import AbstractFileSystem
|
|
8
|
-
from fsspec.utils import isfilelike
|
|
9
7
|
|
|
10
8
|
if TYPE_CHECKING:
|
|
11
9
|
from io import BytesIO
|
|
@@ -242,32 +240,3 @@ class GitFileSystem(AbstractFileSystem):
|
|
|
242
240
|
return paths
|
|
243
241
|
|
|
244
242
|
return [self.info(_path) for _path in paths]
|
|
245
|
-
|
|
246
|
-
def get_file(
|
|
247
|
-
self, rpath, lpath, callback=_DEFAULT_CALLBACK, outfile=None, **kwargs
|
|
248
|
-
):
|
|
249
|
-
# NOTE: temporary workaround while waiting for
|
|
250
|
-
# https://github.com/fsspec/filesystem_spec/pull/1191
|
|
251
|
-
|
|
252
|
-
if isfilelike(lpath):
|
|
253
|
-
outfile = lpath
|
|
254
|
-
elif self.isdir(rpath):
|
|
255
|
-
os.makedirs(lpath, exist_ok=True)
|
|
256
|
-
return None
|
|
257
|
-
|
|
258
|
-
with self.open(rpath, "rb", **kwargs) as f1:
|
|
259
|
-
if outfile is None:
|
|
260
|
-
outfile = open(lpath, "wb") # noqa: SIM115
|
|
261
|
-
|
|
262
|
-
try:
|
|
263
|
-
callback.set_size(getattr(f1, "size", None))
|
|
264
|
-
data = True
|
|
265
|
-
while data:
|
|
266
|
-
data = f1.read(self.blocksize)
|
|
267
|
-
segment_len = outfile.write(data)
|
|
268
|
-
if segment_len is None:
|
|
269
|
-
segment_len = len(data)
|
|
270
|
-
callback.relative_update(segment_len)
|
|
271
|
-
finally:
|
|
272
|
-
if not isfilelike(lpath):
|
|
273
|
-
outfile.close()
|
|
@@ -258,7 +258,7 @@ class Git(Base):
|
|
|
258
258
|
self.hooks_dir.mkdir(exist_ok=True)
|
|
259
259
|
hook = self.hooks_dir / name
|
|
260
260
|
|
|
261
|
-
directive = f"#!{shutil.which(interpreter) or '/bin/sh'
|
|
261
|
+
directive = f"#!{shutil.which(interpreter) or '/bin/sh'}"
|
|
262
262
|
hook.write_text(f"{directive}\n{script}\n", encoding="utf-8")
|
|
263
263
|
hook.chmod(0o777)
|
|
264
264
|
|
|
@@ -287,7 +287,7 @@ class Git(Base):
|
|
|
287
287
|
def no_commits(self):
|
|
288
288
|
return not bool(self.get_ref("HEAD"))
|
|
289
289
|
|
|
290
|
-
# Prefer
|
|
290
|
+
# Prefer reusing the most recently used backend when possible. When
|
|
291
291
|
# changing backends (due to unimplemented calls), we close the previous
|
|
292
292
|
# backend to release any open git files/contexts that may cause conflicts
|
|
293
293
|
# with the new backend.
|
|
@@ -184,7 +184,7 @@ class GitPythonBackend(BaseGitBackend): # pylint:disable=abstract-method
|
|
|
184
184
|
# In fix_env, we delete LD_LIBRARY_PATH key if it was empty before
|
|
185
185
|
# PyInstaller modified it. GitPython, in git.Repo.clone_from, uses
|
|
186
186
|
# env to update its own internal state. When there is no key in
|
|
187
|
-
# env, this value is not updated and GitPython
|
|
187
|
+
# env, this value is not updated and GitPython reuses
|
|
188
188
|
# LD_LIBRARY_PATH that has been set by PyInstaller.
|
|
189
189
|
# See [1] for more info.
|
|
190
190
|
# [1] https://github.com/gitpython-developers/GitPython/issues/924
|
|
@@ -720,7 +720,7 @@ class Pygit2Backend(BaseGitBackend): # pylint:disable=abstract-method
|
|
|
720
720
|
for refname in remote_refs:
|
|
721
721
|
if fnmatch.fnmatch(refname, lh):
|
|
722
722
|
src = refname
|
|
723
|
-
dst = f"{rh_prefix}{refname[len(lh_prefix):]}"
|
|
723
|
+
dst = f"{rh_prefix}{refname[len(lh_prefix) :]}"
|
|
724
724
|
result[dst] = cb.result.get(
|
|
725
725
|
src, _default_status(src, dst, remote_refs)
|
|
726
726
|
)
|
|
@@ -324,7 +324,7 @@ def _input_tty(prompt: str = "Username: ") -> str:
|
|
|
324
324
|
try:
|
|
325
325
|
fd = os.open(
|
|
326
326
|
"/dev/tty",
|
|
327
|
-
os.O_RDWR | os.O_NOCTTY, #
|
|
327
|
+
os.O_RDWR | os.O_NOCTTY, # type: ignore[attr-defined]
|
|
328
328
|
)
|
|
329
329
|
tty = io.FileIO(fd, "w+")
|
|
330
330
|
stack.enter_context(tty)
|
|
@@ -122,7 +122,7 @@ def _collect_objects(
|
|
|
122
122
|
and (result := _ROOT_PATH_PREFIX_REGEX.match(path := include[0]))
|
|
123
123
|
):
|
|
124
124
|
root = result.group("prefix")
|
|
125
|
-
if path in {root, f
|
|
125
|
+
if path in {root, f"{root.rstrip('/')}/**"}:
|
|
126
126
|
include = []
|
|
127
127
|
else:
|
|
128
128
|
root = "/"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: scmrepo
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.10
|
|
4
4
|
Summary: scmrepo
|
|
5
5
|
Author-email: Iterative <support@dvc.org>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -38,7 +38,7 @@ Requires-Dist: pytest-sugar; extra == "tests"
|
|
|
38
38
|
Requires-Dist: pytest-test-utils<0.2,>=0.1.0; extra == "tests"
|
|
39
39
|
Requires-Dist: proxy.py; extra == "tests"
|
|
40
40
|
Provides-Extra: dev
|
|
41
|
-
Requires-Dist: mypy==1.
|
|
41
|
+
Requires-Dist: mypy==1.14.1; extra == "dev"
|
|
42
42
|
Requires-Dist: scmrepo[tests]; extra == "dev"
|
|
43
43
|
Requires-Dist: types-certifi; extra == "dev"
|
|
44
44
|
Requires-Dist: types-mock; extra == "dev"
|
|
@@ -32,7 +32,7 @@ def storage(tmp_dir_factory: TempDirFactory) -> LFSStorage:
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
@pytest.fixture
|
|
35
|
-
def lfs(tmp_dir: TmpDir, scm: Git) -> None:
|
|
35
|
+
def lfs(tmp_dir: TmpDir, scm: Git) -> None:
|
|
36
36
|
tmp_dir.gen(".gitattributes", "*.lfs filter=lfs diff=lfs merge=lfs -text")
|
|
37
37
|
scm.add([".gitattributes"])
|
|
38
38
|
scm.commit("init lfs attributes")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|