gitman 3.8__tar.gz → 3.9__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 (38) hide show
  1. {gitman-3.8 → gitman-3.9}/PKG-INFO +6 -4
  2. {gitman-3.8 → gitman-3.9}/README.md +1 -0
  3. {gitman-3.8 → gitman-3.9}/gitman/git.py +17 -1
  4. {gitman-3.8 → gitman-3.9}/gitman/models/source.py +5 -3
  5. {gitman-3.8 → gitman-3.9}/pyproject.toml +14 -13
  6. {gitman-3.8 → gitman-3.9}/LICENSE.md +0 -0
  7. {gitman-3.8 → gitman-3.9}/gitman/__init__.py +0 -0
  8. {gitman-3.8 → gitman-3.9}/gitman/__main__.py +0 -0
  9. {gitman-3.8 → gitman-3.9}/gitman/cli.py +0 -0
  10. {gitman-3.8 → gitman-3.9}/gitman/commands.py +0 -0
  11. {gitman-3.8 → gitman-3.9}/gitman/common.py +0 -0
  12. {gitman-3.8 → gitman-3.9}/gitman/decorators.py +0 -0
  13. {gitman-3.8 → gitman-3.9}/gitman/exceptions.py +0 -0
  14. {gitman-3.8 → gitman-3.9}/gitman/hook-gitman.py +0 -0
  15. {gitman-3.8 → gitman-3.9}/gitman/models/__init__.py +0 -0
  16. {gitman-3.8 → gitman-3.9}/gitman/models/config.py +0 -0
  17. {gitman-3.8 → gitman-3.9}/gitman/models/group.py +0 -0
  18. {gitman-3.8 → gitman-3.9}/gitman/plugin.py +0 -0
  19. {gitman-3.8 → gitman-3.9}/gitman/settings.py +0 -0
  20. {gitman-3.8 → gitman-3.9}/gitman/shell.py +0 -0
  21. {gitman-3.8 → gitman-3.9}/gitman/tests/__init__.py +0 -0
  22. {gitman-3.8 → gitman-3.9}/gitman/tests/conftest.py +0 -0
  23. {gitman-3.8 → gitman-3.9}/gitman/tests/files/gdm-custom.yml +0 -0
  24. {gitman-3.8 → gitman-3.9}/gitman/tests/files/gdm-default.yml +0 -0
  25. {gitman-3.8 → gitman-3.9}/gitman/tests/files/gitman.yml +0 -0
  26. {gitman-3.8 → gitman-3.9}/gitman/tests/files/subdir/gitman.yml +0 -0
  27. {gitman-3.8 → gitman-3.9}/gitman/tests/files/subdir/subsubdir/gitman.yml +0 -0
  28. {gitman-3.8 → gitman-3.9}/gitman/tests/files/subdir/subsubdir/skip/subsubsubsubdir/gitman.yml +0 -0
  29. {gitman-3.8 → gitman-3.9}/gitman/tests/test_cli.py +0 -0
  30. {gitman-3.8 → gitman-3.9}/gitman/tests/test_commands.py +0 -0
  31. {gitman-3.8 → gitman-3.9}/gitman/tests/test_common.py +0 -0
  32. {gitman-3.8 → gitman-3.9}/gitman/tests/test_git.py +0 -0
  33. {gitman-3.8 → gitman-3.9}/gitman/tests/test_models_config.py +0 -0
  34. {gitman-3.8 → gitman-3.9}/gitman/tests/test_models_group.py +0 -0
  35. {gitman-3.8 → gitman-3.9}/gitman/tests/test_models_source.py +0 -0
  36. {gitman-3.8 → gitman-3.9}/gitman/tests/test_plugin.py +0 -0
  37. {gitman-3.8 → gitman-3.9}/gitman/tests/test_shell.py +0 -0
  38. {gitman-3.8 → gitman-3.9}/gitman/tests/utils.py +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitman
3
- Version: 3.8
3
+ Version: 3.9
4
4
  Summary: A language-agnostic dependency manager using Git.
5
5
  License: MIT
6
6
  License-File: LICENSE.md
7
7
  Keywords: git,version control,build systems,dependency management,submodules
8
8
  Author: Jace Browning
9
9
  Author-email: jacebrowning@gmail.com
10
- Requires-Python: >=3.10,<3.15
10
+ Requires-Python: >=3.11,<4.0
11
11
  Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Environment :: Console
13
13
  Classifier: Intended Audience :: Developers
@@ -16,17 +16,18 @@ Classifier: Natural Language :: English
16
16
  Classifier: Operating System :: OS Independent
17
17
  Classifier: Programming Language :: Python
18
18
  Classifier: Programming Language :: Python :: 3
19
- Classifier: Programming Language :: Python :: 3.10
20
19
  Classifier: Programming Language :: Python :: 3.11
21
20
  Classifier: Programming Language :: Python :: 3.12
22
21
  Classifier: Programming Language :: Python :: 3.13
23
22
  Classifier: Programming Language :: Python :: 3.14
23
+ Classifier: Programming Language :: Python :: 3.15
24
24
  Classifier: Topic :: Software Development
25
25
  Classifier: Topic :: Software Development :: Build Tools
26
26
  Classifier: Topic :: Software Development :: Version Control
27
27
  Classifier: Topic :: System :: Software Distribution
28
- Requires-Dist: datafiles (>=2.3.1,<3.0.0)
28
+ Requires-Dist: datafiles (>=2.6,<3.0)
29
29
  Requires-Dist: minilog (>=2.3.1,<3.0.0)
30
+ Requires-Dist: regex (>=2026.5.9)
30
31
  Requires-Dist: universal-startfile (>=0.2,<0.5)
31
32
  Project-URL: Documentation, https://gitman.readthedocs.io
32
33
  Project-URL: Homepage, https://pypi.org/project/gitman
@@ -62,6 +63,7 @@ Install this tool globally with [pipx](https://pipxproject.github.io/pipx/) (or
62
63
  ```sh
63
64
  $ pipx install gitman
64
65
  ```
66
+
65
67
  or add it to your [Poetry](https://python-poetry.org/docs/) project:
66
68
 
67
69
  ```sh
@@ -27,6 +27,7 @@ Install this tool globally with [pipx](https://pipxproject.github.io/pipx/) (or
27
27
  ```sh
28
28
  $ pipx install gitman
29
29
  ```
30
+
30
31
  or add it to your [Poetry](https://python-poetry.org/docs/) project:
31
32
 
32
33
  ```sh
@@ -12,6 +12,11 @@ from .exceptions import ShellError
12
12
  from .shell import call, pwd
13
13
 
14
14
 
15
+ def sanitize_sparse_paths(sparse_paths):
16
+ """Strip trailing glob patterns for cone mode (e.g. 'src/*' -> 'src')."""
17
+ return [p.rstrip("/*") if p.endswith("/*") else p for p in sparse_paths]
18
+
19
+
15
20
  def git(*args, **kwargs):
16
21
  return call("git", *args, **kwargs)
17
22
 
@@ -69,7 +74,13 @@ def clone(
69
74
  fd.write("%s/objects" % sparse_paths_repo)
70
75
 
71
76
  git("-C", normpath, "sparse-checkout", "init", "--cone")
72
- git("-C", normpath, "sparse-checkout", "set", *sparse_paths)
77
+ git(
78
+ "-C",
79
+ normpath,
80
+ "sparse-checkout",
81
+ "set",
82
+ *sanitize_sparse_paths(sparse_paths)
83
+ )
73
84
  git("-C", normpath, "fetch", "origin")
74
85
  git("-C", normpath, "checkout", rev)
75
86
  elif settings.CACHE_DISABLE:
@@ -245,6 +256,11 @@ def am(patch, _skip=False):
245
256
  raise ShellError from e
246
257
 
247
258
 
259
+ def apply_sparse_checkout(sparse_paths):
260
+ """Re-apply sparse-checkout paths to an existing working tree."""
261
+ git("sparse-checkout", "set", *sanitize_sparse_paths(sparse_paths))
262
+
263
+
248
264
  def update(
249
265
  type, repo, path, *, clean=True, fetch=False, rev=None
250
266
  ): # pylint: disable=redefined-outer-name,unused-argument
@@ -204,6 +204,10 @@ class Source:
204
204
  if fetch or git.is_fetch_required(self.type, self.rev):
205
205
  git.fetch(self.type, self.repo, self.name, rev=self.rev)
206
206
 
207
+ # Re-apply sparse-checkout paths in case they changed since initial clone
208
+ if self.sparse_paths and self.sparse_paths[0]:
209
+ git.apply_sparse_checkout(self.sparse_paths)
210
+
207
211
  # Update the working tree to the desired revision
208
212
  git.update(
209
213
  self.type, self.repo, self.name, fetch=fetch, clean=clean, rev=self.rev
@@ -386,9 +390,7 @@ class Source:
386
390
 
387
391
  Not a valid repository: {}
388
392
  During install you can rebuild a repo with a missing .git directory using the --force option
389
- """.format(
390
- path
391
- )
393
+ """.format(path)
392
394
  return exceptions.InvalidRepository(msg)
393
395
 
394
396
 
@@ -1,7 +1,7 @@
1
1
  [tool.poetry]
2
2
 
3
3
  name = "gitman"
4
- version = "3.8"
4
+ version = "3.9"
5
5
  description = "A language-agnostic dependency manager using Git."
6
6
 
7
7
  license = "MIT"
@@ -30,11 +30,11 @@ classifiers = [
30
30
  "Operating System :: OS Independent",
31
31
  "Programming Language :: Python",
32
32
  "Programming Language :: Python :: 3",
33
- "Programming Language :: Python :: 3.10",
34
33
  "Programming Language :: Python :: 3.11",
35
34
  "Programming Language :: Python :: 3.12",
36
35
  "Programming Language :: Python :: 3.13",
37
36
  "Programming Language :: Python :: 3.14",
37
+ "Programming Language :: Python :: 3.15",
38
38
  "Topic :: Software Development",
39
39
  "Topic :: Software Development :: Build Tools",
40
40
  "Topic :: Software Development :: Version Control",
@@ -43,27 +43,28 @@ classifiers = [
43
43
 
44
44
  [tool.poetry.dependencies]
45
45
 
46
- python = "^3.10,<3.15"
46
+ python = "^3.11"
47
47
 
48
- datafiles = "^2.3.1"
48
+ datafiles = "^2.6"
49
49
  minilog = "^2.3.1"
50
+ regex = ">=2026.5.9"
50
51
  universal-startfile = ">=0.2,<0.5"
51
52
 
52
53
  [tool.poetry.group.dev.dependencies]
53
54
 
54
55
  # Formatters
55
- black = ">=24.8,<26.0"
56
- isort = ">=5.13,<7.0"
56
+ black = ">=24.8,<27.0"
57
+ isort = ">=5.13,<10.0"
57
58
 
58
59
  # Linters
59
- mypy = "^1.3"
60
+ mypy = ">=1.3,<3.0"
60
61
  pydocstyle = "*"
61
- pylint = "~3.3"
62
+ pylint = ">=3.3,<4.2"
62
63
  types-freezegun = "*"
63
64
  types-setuptools = "*"
64
65
 
65
66
  # Testing
66
- pytest = "^8.3"
67
+ pytest = ">=8.3,<10.0"
67
68
  pytest-cov = ">=5,<8"
68
69
  pytest-describe = ">=2.2,<4.0"
69
70
  pytest-expecter = "^3.0"
@@ -71,21 +72,21 @@ pytest-random = "*"
71
72
  freezegun = "*"
72
73
 
73
74
  # Reports
74
- coveragespace = "^6.1"
75
+ coveragespace = "^6.2"
75
76
 
76
77
  # Documentation
77
78
  mkdocs = "^1.2.3"
78
- mkdocstrings = ">=0.18.1,<0.31.0"
79
+ mkdocstrings = ">=0.18.1,<1.1.0"
79
80
  mkdocstrings-python = "*"
80
81
  pygments = "^2.15.0"
81
82
  jinja2 = "~3.1.6"
82
83
 
83
84
  # Tooling
84
- pyinstaller = "^6.15"
85
+ pyinstaller = { version = "^6.15", python = "<3.16" }
85
86
  sniffer = "*"
86
87
  macfsevents = { version = "*", platform = "darwin", python = "<3.13" }
87
88
  pync = { version = "*", platform = "darwin" }
88
- rope = ">=0.14,<1.15"
89
+ rope = ">=0.14,<1.16"
89
90
 
90
91
  [tool.poetry.requires-plugins]
91
92
 
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