scmrepo 3.3.1__tar.gz → 3.3.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.

Potentially problematic release.


This version of scmrepo might be problematic. Click here for more details.

Files changed (73) hide show
  1. {scmrepo-3.3.1 → scmrepo-3.3.2}/.pre-commit-config.yaml +1 -1
  2. {scmrepo-3.3.1/src/scmrepo.egg-info → scmrepo-3.3.2}/PKG-INFO +2 -2
  3. {scmrepo-3.3.1 → scmrepo-3.3.2}/pyproject.toml +1 -1
  4. {scmrepo-3.3.1 → scmrepo-3.3.2/src/scmrepo.egg-info}/PKG-INFO +2 -2
  5. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo.egg-info/SOURCES.txt +3 -1
  6. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo.egg-info/requires.txt +1 -1
  7. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_dulwich.py +7 -1
  8. scmrepo-3.3.2/tests/vendor/__init__.py +0 -0
  9. scmrepo-3.3.2/tests/vendor/test_paramiko_vendor.py +119 -0
  10. {scmrepo-3.3.1 → scmrepo-3.3.2}/.coveragerc +0 -0
  11. {scmrepo-3.3.1 → scmrepo-3.3.2}/.cruft.json +0 -0
  12. {scmrepo-3.3.1 → scmrepo-3.3.2}/.gitattributes +0 -0
  13. {scmrepo-3.3.1 → scmrepo-3.3.2}/.github/dependabot.yml +0 -0
  14. {scmrepo-3.3.1 → scmrepo-3.3.2}/.github/workflows/release.yaml +0 -0
  15. {scmrepo-3.3.1 → scmrepo-3.3.2}/.github/workflows/tests.yaml +0 -0
  16. {scmrepo-3.3.1 → scmrepo-3.3.2}/.github/workflows/update-template.yaml +0 -0
  17. {scmrepo-3.3.1 → scmrepo-3.3.2}/.gitignore +0 -0
  18. {scmrepo-3.3.1 → scmrepo-3.3.2}/CODE_OF_CONDUCT.rst +0 -0
  19. {scmrepo-3.3.1 → scmrepo-3.3.2}/CONTRIBUTING.rst +0 -0
  20. {scmrepo-3.3.1 → scmrepo-3.3.2}/LICENSE +0 -0
  21. {scmrepo-3.3.1 → scmrepo-3.3.2}/README.rst +0 -0
  22. {scmrepo-3.3.1 → scmrepo-3.3.2}/noxfile.py +0 -0
  23. {scmrepo-3.3.1 → scmrepo-3.3.2}/setup.cfg +0 -0
  24. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/__init__.py +0 -0
  25. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/asyn.py +0 -0
  26. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/base.py +0 -0
  27. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/exceptions.py +0 -0
  28. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/fs.py +0 -0
  29. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/__init__.py +0 -0
  30. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/__init__.py +0 -0
  31. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/base.py +0 -0
  32. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/dulwich/__init__.py +0 -0
  33. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/dulwich/asyncssh_vendor.py +0 -0
  34. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/dulwich/client.py +0 -0
  35. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/gitpython.py +0 -0
  36. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/pygit2/__init__.py +0 -0
  37. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/pygit2/callbacks.py +0 -0
  38. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/pygit2/filter.py +0 -0
  39. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/config.py +0 -0
  40. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/credentials.py +0 -0
  41. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/__init__.py +0 -0
  42. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/client.py +0 -0
  43. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/exceptions.py +0 -0
  44. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/fetch.py +0 -0
  45. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/object.py +0 -0
  46. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/pointer.py +0 -0
  47. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/progress.py +0 -0
  48. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/smudge.py +0 -0
  49. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/storage.py +0 -0
  50. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/objects.py +0 -0
  51. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/stash.py +0 -0
  52. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/noscm.py +0 -0
  53. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/progress.py +0 -0
  54. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/py.typed +0 -0
  55. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/urls.py +0 -0
  56. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/utils.py +0 -0
  57. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo.egg-info/dependency_links.txt +0 -0
  58. {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo.egg-info/top_level.txt +0 -0
  59. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/__init__.py +0 -0
  60. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/conftest.py +0 -0
  61. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/docker-compose.yml +0 -0
  62. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/git-init/git.sh +0 -0
  63. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_credentials.py +0 -0
  64. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_fs.py +0 -0
  65. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_git.py +0 -0
  66. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_lfs.py +0 -0
  67. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_noscm.py +0 -0
  68. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_pygit2.py +0 -0
  69. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_scmrepo.py +0 -0
  70. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_stash.py +0 -0
  71. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_urls.py +0 -0
  72. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/user.key +0 -0
  73. {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/user.key.pub +0 -0
@@ -20,7 +20,7 @@ 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.3.3'
23
+ rev: 'v0.3.5'
24
24
  hooks:
25
25
  - id: ruff
26
26
  args: [--fix, --exit-non-zero-on-fix]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scmrepo
3
- Version: 3.3.1
3
+ Version: 3.3.2
4
4
  Summary: scmrepo
5
5
  Author-email: Iterative <support@dvc.org>
6
6
  License: Apache-2.0
@@ -16,7 +16,7 @@ Requires-Python: >=3.9
16
16
  Description-Content-Type: text/x-rst
17
17
  License-File: LICENSE
18
18
  Requires-Dist: gitpython>3
19
- Requires-Dist: dulwich>=0.21.6
19
+ Requires-Dist: dulwich>=0.22.1
20
20
  Requires-Dist: pygit2>=1.14.0
21
21
  Requires-Dist: pygtrie>=2.3.2
22
22
  Requires-Dist: fsspec[tqdm]>=2024.2.0
@@ -22,7 +22,7 @@ requires-python = ">=3.9"
22
22
  dynamic = ["version"]
23
23
  dependencies = [
24
24
  "gitpython>3",
25
- "dulwich>=0.21.6",
25
+ "dulwich>=0.22.1",
26
26
  "pygit2>=1.14.0",
27
27
  "pygtrie>=2.3.2",
28
28
  "fsspec[tqdm]>=2024.2.0",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scmrepo
3
- Version: 3.3.1
3
+ Version: 3.3.2
4
4
  Summary: scmrepo
5
5
  Author-email: Iterative <support@dvc.org>
6
6
  License: Apache-2.0
@@ -16,7 +16,7 @@ Requires-Python: >=3.9
16
16
  Description-Content-Type: text/x-rst
17
17
  License-File: LICENSE
18
18
  Requires-Dist: gitpython>3
19
- Requires-Dist: dulwich>=0.21.6
19
+ Requires-Dist: dulwich>=0.22.1
20
20
  Requires-Dist: pygit2>=1.14.0
21
21
  Requires-Dist: pygtrie>=2.3.2
22
22
  Requires-Dist: fsspec[tqdm]>=2024.2.0
@@ -66,4 +66,6 @@ tests/test_stash.py
66
66
  tests/test_urls.py
67
67
  tests/user.key
68
68
  tests/user.key.pub
69
- tests/git-init/git.sh
69
+ tests/git-init/git.sh
70
+ tests/vendor/__init__.py
71
+ tests/vendor/test_paramiko_vendor.py
@@ -1,5 +1,5 @@
1
1
  gitpython>3
2
- dulwich>=0.21.6
2
+ dulwich>=0.22.1
3
3
  pygit2>=1.14.0
4
4
  pygtrie>=2.3.2
5
5
  fsspec[tqdm]>=2024.2.0
@@ -8,12 +8,18 @@ from unittest.mock import AsyncMock
8
8
  import asyncssh
9
9
  import paramiko
10
10
  import pytest
11
- from dulwich.contrib.test_paramiko_vendor import CLIENT_KEY, PASSWORD, USER, Server
12
11
  from pytest_mock import MockerFixture
13
12
  from pytest_test_utils.waiters import wait_until
14
13
 
15
14
  from scmrepo.git.backend.dulwich.asyncssh_vendor import AsyncSSHVendor
16
15
 
16
+ from .vendor.test_paramiko_vendor import (
17
+ CLIENT_KEY,
18
+ PASSWORD,
19
+ USER,
20
+ Server,
21
+ )
22
+
17
23
  # pylint: disable=redefined-outer-name
18
24
 
19
25
 
File without changes
@@ -0,0 +1,119 @@
1
+ # test_paramiko_vendor.py
2
+ #
3
+ # Dulwich is dual-licensed under the Apache License, Version 2.0 and the GNU
4
+ # General Public License as public by the Free Software Foundation; version 2.0
5
+ # or (at your option) any later version. You can redistribute it and/or
6
+ # modify it under the terms of either of these two licenses.
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+ #
14
+ # You should have received a copy of the licenses; if not, see
15
+ # <http://www.gnu.org/licenses/> for a copy of the GNU General Public License
16
+ # and <http://www.apache.org/licenses/LICENSE-2.0> for a copy of the Apache
17
+ # License, Version 2.0.
18
+ #
19
+
20
+ """Tests for paramiko_vendor."""
21
+
22
+ from io import StringIO
23
+
24
+ try:
25
+ import paramiko
26
+ except ImportError:
27
+ has_paramiko = False
28
+ else:
29
+ has_paramiko = True
30
+
31
+ class Server(paramiko.ServerInterface):
32
+ """http://docs.paramiko.org/en/2.4/api/server.html."""
33
+
34
+ def __init__(self, commands, *args, **kwargs) -> None:
35
+ super().__init__(*args, **kwargs)
36
+ self.commands = commands
37
+
38
+ def check_channel_exec_request(self, channel, command):
39
+ self.commands.append(command)
40
+ return True
41
+
42
+ def check_auth_password(self, username, password):
43
+ if username == USER and password == PASSWORD:
44
+ return paramiko.AUTH_SUCCESSFUL
45
+ return paramiko.AUTH_FAILED
46
+
47
+ def check_auth_publickey(self, username, key):
48
+ pubkey = paramiko.RSAKey.from_private_key(StringIO(CLIENT_KEY))
49
+ if username == USER and key == pubkey:
50
+ return paramiko.AUTH_SUCCESSFUL
51
+ return paramiko.AUTH_FAILED
52
+
53
+ def check_channel_request(self, kind, chanid):
54
+ if kind == "session":
55
+ return paramiko.OPEN_SUCCEEDED
56
+ return paramiko.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
57
+
58
+ def get_allowed_auths(self, username):
59
+ return "password,publickey"
60
+
61
+
62
+ USER = "testuser"
63
+ PASSWORD = "test"
64
+ SERVER_KEY = """\
65
+ -----BEGIN RSA PRIVATE KEY-----
66
+ MIIEpAIBAAKCAQEAy/L1sSYAzxsMprtNXW4u/1jGXXkQmQ2xtmKVlR+RlIL3a1BH
67
+ bzTpPlZyjltAAwzIP8XRh0iJFKz5y3zSQChhX47ZGN0NvQsVct8R+YwsUonwfAJ+
68
+ JN0KBKKvC8fPHlzqBr3gX+ZxqsFH934tQ6wdQPH5eQWtdM8L826lMsH1737uyTGk
69
+ +mCSDjL3c6EzY83g7qhkJU2R4qbi6ne01FaWADzG8sOzXnHT+xpxtk8TTT8yCVUY
70
+ MmBNsSoA/ka3iWz70ghB+6Xb0WpFJZXWq1oYovviPAfZGZSrxBZMxsWMye70SdLl
71
+ TqsBEt0+miIcm9s0fvjWvQuhaHX6mZs5VO4r5QIDAQABAoIBAGYqeYWaYgFdrYLA
72
+ hUrubUCg+g3NHdFuGL4iuIgRXl4lFUh+2KoOuWDu8Uf60iA1AQNhV0sLvQ/Mbv3O
73
+ s4xMLisuZfaclctDiCUZNenqnDFkxEF7BjH1QJV94W5nU4wEQ3/JEmM4D2zYkfKb
74
+ FJW33JeyH6TOgUvohDYYEU1R+J9V8qA243p+ui1uVtNI6Pb0TXJnG5y9Ny4vkSWH
75
+ Fi0QoMPR1r9xJ4SEearGzA/crb4SmmDTKhGSoMsT3d5ATieLmwcS66xWz8w4oFGJ
76
+ yzDq24s4Fp9ccNjMf/xR8XRiekJv835gjEqwF9IXyvgOaq6XJ1iCqGPFDKa25nui
77
+ JnEstOkCgYEA/ZXk7aIanvdeJlTqpX578sJfCnrXLydzE8emk1b7+5mrzGxQ4/pM
78
+ PBQs2f8glT3t0O0mRX9NoRqnwrid88/b+cY4NCOICFZeasX336/gYQxyVeRLJS6Z
79
+ hnGEQqry8qS7PdKAyeHMNmZFrUh4EiHiObymEfQS+mkRUObn0cGBTw8CgYEAzeQU
80
+ D2baec1DawjppKaRynAvWjp+9ry1lZx9unryKVRwjRjkEpw+b3/+hdaF1IvsVSce
81
+ cNj+6W2guZ2tyHuPhZ64/4SJVyE2hKDSKD4xTb2nVjsMeN0bLD2UWXC9mwbx8nWa
82
+ 2tmtUZ7a/okQb2cSdosJinRewLNqXIsBXamT1csCgYEA0cXb2RCOQQ6U3dTFPx4A
83
+ 3vMXuA2iUKmrsqMoEx6T2LBow/Sefdkik1iFOdipVYwjXP+w9zC2QR1Rxez/DR/X
84
+ 8ymceNUjxPHdrSoTQQG29dFcC92MpDeGXQcuyA+uZjcLhbrLOzYEvsOfxBb87NMG
85
+ 14hNQPDNekTMREafYo9WrtUCgYAREK54+FVzcwf7fymedA/xb4r9N4v+d3W1iNsC
86
+ 8d3Qfyc1CrMct8aVB07ZWQaOr2pPRIbJY7L9NhD0UZVt4I/sy1MaGqonhqE2LP4+
87
+ R6legDG2e/50ph7yc8gwAaA1kUXMiuLi8Nfkw/3yyvmJwklNegi4aRzRbA2Mzhi2
88
+ 4q9WMQKBgQCb0JNyxHG4pvLWCF/j0Sm1FfvrpnqSv5678n1j4GX7Ka/TubOK1Y4K
89
+ U+Oib7dKa/zQMWehVFNTayrsq6bKVZ6q7zG+IHiRLw4wjeAxREFH6WUjDrn9vl2l
90
+ D48DKbBuBwuVOJWyq3qbfgJXojscgNQklrsPdXVhDwOF0dYxP89HnA==
91
+ -----END RSA PRIVATE KEY-----"""
92
+ CLIENT_KEY = """\
93
+ -----BEGIN RSA PRIVATE KEY-----
94
+ MIIEpAIBAAKCAQEAxvREKSElPOm/0z/nPO+j5rk2tjdgGcGc7We1QZ6TRXYLu7nN
95
+ GeEFIL4p8N1i6dmB+Eydt7xqCU79MWD6Yy4prFe1+/K1wCDUxIbFMxqQcX5zjJzd
96
+ i8j8PbcaUlVhP/OkjtkSxrXaGDO1BzfdV4iEBtTV/2l3zmLKJlt3jnOHLczP24CB
97
+ DTQKp3rKshbRefzot9Y+wnaK692RsYgsyo9YEP0GyWKG9topCHk13r46J6vGLeuj
98
+ ryUKqmbLJkzbJbIcEqwTDo5iHaCVqaMr5Hrb8BdMucSseqZQJsXSd+9tdRcIblUQ
99
+ 38kZjmFMm4SFbruJcpZCNM2wNSZPIRX+3eiwNwIDAQABAoIBAHSacOBSJsr+jIi5
100
+ KUOTh9IPtzswVUiDKwARCjB9Sf8p4lKR4N1L/n9kNJyQhApeikgGT2GCMftmqgoo
101
+ tlculQoHFgemBlOmak0MV8NNzF5YKEy/GzF0CDH7gJfEpoyetVFrdA+2QS5yD6U9
102
+ XqKQxiBi2VEqdScmyyeT8AwzNYTnPeH/DOEcnbdRjqiy/CD79F49CQ1lX1Fuqm0K
103
+ I7BivBH1xo/rVnUP4F+IzocDqoga+Pjdj0LTXIgJlHQDSbhsQqWujWQDDuKb+MAw
104
+ sNK4Zf8ErV3j1PyA7f/M5LLq6zgstkW4qikDHo4SpZX8kFOO8tjqb7kujj7XqeaB
105
+ CxqrOTECgYEA73uWkrohcmDJ4KqbuL3tbExSCOUiaIV+sT1eGPNi7GCmXD4eW5Z4
106
+ 75v2IHymW83lORSu/DrQ6sKr1nkuRpqr2iBzRmQpl/H+wahIhBXlnJ25uUjDsuPO
107
+ 1Pq2LcmyD+jTxVnmbSe/q7O09gZQw3I6H4+BMHmpbf8tC97lqimzpJ0CgYEA1K0W
108
+ ZL70Xtn9quyHvbtae/BW07NZnxvUg4UaVIAL9Zu34JyplJzyzbIjrmlDbv6aRogH
109
+ /KtuG9tfbf55K/jjqNORiuRtzt1hUN1ye4dyW7tHx2/7lXdlqtyK40rQl8P0kqf8
110
+ zaS6BqjnobgSdSpg32rWoL/pcBHPdJCJEgQ8zeMCgYEA0/PK8TOhNIzrP1dgGSKn
111
+ hkkJ9etuB5nW5mEM7gJDFDf6JPupfJ/xiwe6z0fjKK9S57EhqgUYMB55XYnE5iIw
112
+ ZQ6BV9SAZ4V7VsRs4dJLdNC3tn/rDGHJBgCaym2PlbsX6rvFT+h1IC8dwv0V79Ui
113
+ Ehq9WTzkMoE8yhvNokvkPZUCgYEAgBAFxv5xGdh79ftdtXLmhnDvZ6S8l6Fjcxqo
114
+ Ay/jg66Tp43OU226iv/0mmZKM8Dd1xC8dnon4GBVc19jSYYiWBulrRPlx0Xo/o+K
115
+ CzZBN1lrXH1i6dqufpc0jq8TMf/N+q1q/c1uMupsKCY1/xVYpc+ok71b7J7c49zQ
116
+ nOeuUW8CgYA9Infooy65FTgbzca0c9kbCUBmcAPQ2ItH3JcPKWPQTDuV62HcT00o
117
+ fZdIV47Nez1W5Clk191RMy8TXuqI54kocciUWpThc6j44hz49oUueb8U4bLcEHzA
118
+ WxtWBWHwxfSmqgTXilEA3ALJp0kNolLnEttnhENwJpZHlqtes0ZA4w==
119
+ -----END RSA PRIVATE KEY-----"""
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