gitman 3.4.1b2__tar.gz → 3.5__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.4.1b2 → gitman-3.5}/PKG-INFO +7 -8
  2. {gitman-3.4.1b2 → gitman-3.5}/README.md +4 -5
  3. {gitman-3.4.1b2 → gitman-3.5}/gitman/git.py +6 -2
  4. {gitman-3.4.1b2 → gitman-3.5}/gitman/models/config.py +1 -1
  5. {gitman-3.4.1b2 → gitman-3.5}/gitman/shell.py +10 -8
  6. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/conftest.py +2 -0
  7. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/test_cli.py +1 -1
  8. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/test_git.py +0 -2
  9. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/test_models_config.py +1 -1
  10. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/test_models_source.py +1 -1
  11. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/test_plugin.py +0 -2
  12. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/test_shell.py +1 -1
  13. {gitman-3.4.1b2 → gitman-3.5}/pyproject.toml +36 -8
  14. {gitman-3.4.1b2 → gitman-3.5}/LICENSE.md +0 -0
  15. {gitman-3.4.1b2 → gitman-3.5}/gitman/__init__.py +0 -0
  16. {gitman-3.4.1b2 → gitman-3.5}/gitman/__main__.py +0 -0
  17. {gitman-3.4.1b2 → gitman-3.5}/gitman/cli.py +0 -0
  18. {gitman-3.4.1b2 → gitman-3.5}/gitman/commands.py +0 -0
  19. {gitman-3.4.1b2 → gitman-3.5}/gitman/common.py +0 -0
  20. {gitman-3.4.1b2 → gitman-3.5}/gitman/decorators.py +0 -0
  21. {gitman-3.4.1b2 → gitman-3.5}/gitman/exceptions.py +0 -0
  22. {gitman-3.4.1b2 → gitman-3.5}/gitman/hook-gitman.py +0 -0
  23. {gitman-3.4.1b2 → gitman-3.5}/gitman/models/__init__.py +0 -0
  24. {gitman-3.4.1b2 → gitman-3.5}/gitman/models/group.py +0 -0
  25. {gitman-3.4.1b2 → gitman-3.5}/gitman/models/source.py +0 -0
  26. {gitman-3.4.1b2 → gitman-3.5}/gitman/plugin.py +0 -0
  27. {gitman-3.4.1b2 → gitman-3.5}/gitman/settings.py +0 -0
  28. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/__init__.py +0 -0
  29. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/files/gdm-custom.yml +0 -0
  30. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/files/gdm-default.yml +0 -0
  31. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/files/gitman.yml +0 -0
  32. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/files/subdir/gitman.yml +0 -0
  33. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/files/subdir/subsubdir/gitman.yml +0 -0
  34. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/files/subdir/subsubdir/skip/subsubsubsubdir/gitman.yml +0 -0
  35. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/test_commands.py +0 -0
  36. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/test_common.py +0 -0
  37. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/test_models_group.py +0 -0
  38. {gitman-3.4.1b2 → gitman-3.5}/gitman/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gitman
3
- Version: 3.4.1b2
3
+ Version: 3.5
4
4
  Summary: A language-agnostic dependency manager using Git.
5
5
  Home-page: https://pypi.org/project/gitman
6
6
  License: MIT
@@ -25,8 +25,8 @@ 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.1.2,<3.0.0)
29
- Requires-Dist: minilog (>=2.1,<3.0)
28
+ Requires-Dist: datafiles (>=2.2,<3.0)
29
+ Requires-Dist: minilog (>=2.3,<3.0)
30
30
  Requires-Dist: universal-startfile (>=0.2,<0.3)
31
31
  Project-URL: Documentation, https://gitman.readthedocs.io
32
32
  Project-URL: Repository, https://github.com/jacebrowning/gitman
@@ -38,12 +38,11 @@ Gitman is a language-agnostic dependency manager using Git. It aims to serve as
38
38
 
39
39
  [![Demo](https://raw.githubusercontent.com/jacebrowning/gitman/main/docs/demo.gif)](https://asciinema.org/a/3DLos4HIU84P0AfFlZMYcgPus)
40
40
 
41
- [![Unix Build Status](https://img.shields.io/travis/com/jacebrowning/gitman/main.svg?label=unix)](https://travis-ci.com/jacebrowning/gitman)
42
- [![Windows Build Status](https://img.shields.io/appveyor/ci/jacebrowning/gitman/main.svg?label=window)](https://ci.appveyor.com/project/jacebrowning/gitman)
43
- [![Coverage Status](https://img.shields.io/coveralls/jacebrowning/gitman/main.svg)](https://coveralls.io/r/jacebrowning/gitman)
44
- [![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/jacebrowning/gitman.svg)](https://scrutinizer-ci.com/g/jacebrowning/gitman/?branch=main)
41
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/jacebrowning/gitman/main.yml?branch=main)](https://github.com/jacebrowning/gitman/actions)
42
+ [![Code Coverage](https://img.shields.io/codecov/c/gh/jacebrowning/gitman)](https://codecov.io/gh/jacebrowning/gitman)
43
+ [![Code Quality](https://img.shields.io/scrutinizer/g/jacebrowning/gitman.svg?label=quiality)](https://scrutinizer-ci.com/g/jacebrowning/gitman/?branch=main)
45
44
  [![PyPI License](https://img.shields.io/pypi/l/gitman.svg)](https://pypi.org/project/gitman)
46
- [![PyPI Version](https://img.shields.io/pypi/v/gitman.svg)](https://pypi.org/project/gitman)
45
+ [![PyPI Version](https://img.shields.io/pypi/v/gitman.svg?label=version)](https://pypi.org/project/gitman)
47
46
  [![PyPI Downloads](https://img.shields.io/pypi/dm/gitman.svg?color=orange)](https://pypistats.org/packages/gitman)
48
47
 
49
48
  ## Setup
@@ -4,12 +4,11 @@ Gitman is a language-agnostic dependency manager using Git. It aims to serve as
4
4
 
5
5
  [![Demo](https://raw.githubusercontent.com/jacebrowning/gitman/main/docs/demo.gif)](https://asciinema.org/a/3DLos4HIU84P0AfFlZMYcgPus)
6
6
 
7
- [![Unix Build Status](https://img.shields.io/travis/com/jacebrowning/gitman/main.svg?label=unix)](https://travis-ci.com/jacebrowning/gitman)
8
- [![Windows Build Status](https://img.shields.io/appveyor/ci/jacebrowning/gitman/main.svg?label=window)](https://ci.appveyor.com/project/jacebrowning/gitman)
9
- [![Coverage Status](https://img.shields.io/coveralls/jacebrowning/gitman/main.svg)](https://coveralls.io/r/jacebrowning/gitman)
10
- [![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/jacebrowning/gitman.svg)](https://scrutinizer-ci.com/g/jacebrowning/gitman/?branch=main)
7
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/jacebrowning/gitman/main.yml?branch=main)](https://github.com/jacebrowning/gitman/actions)
8
+ [![Code Coverage](https://img.shields.io/codecov/c/gh/jacebrowning/gitman)](https://codecov.io/gh/jacebrowning/gitman)
9
+ [![Code Quality](https://img.shields.io/scrutinizer/g/jacebrowning/gitman.svg?label=quiality)](https://scrutinizer-ci.com/g/jacebrowning/gitman/?branch=main)
11
10
  [![PyPI License](https://img.shields.io/pypi/l/gitman.svg)](https://pypi.org/project/gitman)
12
- [![PyPI Version](https://img.shields.io/pypi/v/gitman.svg)](https://pypi.org/project/gitman)
11
+ [![PyPI Version](https://img.shields.io/pypi/v/gitman.svg?label=version)](https://pypi.org/project/gitman)
13
12
  [![PyPI Downloads](https://img.shields.io/pypi/dm/gitman.svg?color=orange)](https://pypistats.org/packages/gitman)
14
13
 
15
14
  ## Setup
@@ -62,11 +62,15 @@ def clone(
62
62
  git("-C", normpath, "remote", "add", "-f", "origin", sparse_paths_repo)
63
63
 
64
64
  with open(
65
- "%s/%s/.git/info/sparse-checkout" % (os.getcwd(), normpath), "w"
65
+ "%s/%s/.git/info/sparse-checkout" % (os.getcwd(), normpath),
66
+ "w",
67
+ encoding="utf-8",
66
68
  ) as fd:
67
69
  fd.write("\n".join(sparse_paths))
68
70
  with open(
69
- "%s/%s/.git/objects/info/alternates" % (os.getcwd(), normpath), "w"
71
+ "%s/%s/.git/objects/info/alternates" % (os.getcwd(), normpath),
72
+ "w",
73
+ encoding="utf-8",
70
74
  ) as fd:
71
75
  fd.write("%s/objects" % sparse_paths_repo)
72
76
 
@@ -329,7 +329,7 @@ class Config:
329
329
  def log(self, message: str = "", *args):
330
330
  """Append a message to the log file."""
331
331
  os.makedirs(self.location_path, exist_ok=True)
332
- with open(self.log_path, "a") as outfile:
332
+ with open(self.log_path, "a", encoding="utf-8") as outfile:
333
333
  outfile.write(message.format(*args) + "\n")
334
334
 
335
335
  def _get_sources(self, *, use_locked: Optional[bool] = None) -> List[Source]:
@@ -46,14 +46,16 @@ def call(name, *args, _show=True, _stream=True, _shell=False, _ignore=False):
46
46
  else:
47
47
  env.pop(lp_key, None) # last resort: remove the env var
48
48
 
49
- command = subprocess.Popen( # pylint: disable=subprocess-run-check
50
- name if _shell else [name, *args],
51
- encoding="utf-8",
52
- universal_newlines=True,
53
- stdout=subprocess.PIPE,
54
- stderr=subprocess.STDOUT,
55
- shell=_shell,
56
- env=env,
49
+ command = (
50
+ subprocess.Popen( # pylint: disable=subprocess-run-check,consider-using-with
51
+ name if _shell else [name, *args],
52
+ encoding="utf-8",
53
+ universal_newlines=True,
54
+ stdout=subprocess.PIPE,
55
+ stderr=subprocess.STDOUT,
56
+ shell=_shell,
57
+ env=env,
58
+ )
57
59
  )
58
60
 
59
61
  # Poll process.stdout to show stdout live
@@ -24,6 +24,8 @@ def pytest_configure(config):
24
24
  def pytest_runtest_setup(item):
25
25
  """Disable file storage during unit tests."""
26
26
  if "integration" in item.keywords:
27
+ if os.name == "nt":
28
+ pytest.skip("Integration tests not supported on Windows")
27
29
  if not os.getenv(ENV):
28
30
  pytest.skip(REASON)
29
31
  else:
@@ -1,4 +1,4 @@
1
- # pylint: disable=no-self-use,unused-variable,expression-not-assigned
1
+ # pylint: disable=unused-variable,expression-not-assigned
2
2
 
3
3
  from unittest.mock import Mock, patch
4
4
 
@@ -1,5 +1,3 @@
1
- # pylint: disable=no-self-use
2
-
3
1
  import os
4
2
  from unittest.mock import Mock, patch
5
3
 
@@ -1,4 +1,4 @@
1
- # pylint: disable=no-self-use,redefined-outer-name,unused-variable,expression-not-assigned,misplaced-comparison-constant,len-as-condition
1
+ # pylint: disable=redefined-outer-name,unused-variable,expression-not-assigned,len-as-condition
2
2
 
3
3
  import os
4
4
 
@@ -1,4 +1,4 @@
1
- # pylint: disable=no-self-use,redefined-outer-name,misplaced-comparison-constant
1
+ # pylint: disable=redefined-outer-name
2
2
 
3
3
  from copy import copy
4
4
  from unittest.mock import Mock, patch
@@ -1,5 +1,3 @@
1
- # pylint: disable=no-self-use
2
-
3
1
  from unittest.mock import call, patch
4
2
 
5
3
  from gitman import plugin
@@ -1,4 +1,4 @@
1
- # pylint: disable=no-self-use,misplaced-comparison-constant,expression-not-assigned
1
+ # pylint: disable=expression-not-assigned
2
2
 
3
3
  import os
4
4
  from unittest.mock import Mock, patch
@@ -1,7 +1,7 @@
1
1
  [tool.poetry]
2
2
 
3
3
  name = "gitman"
4
- version = "3.4.1b2"
4
+ version = "3.5"
5
5
  description = "A language-agnostic dependency manager using Git."
6
6
 
7
7
  license = "MIT"
@@ -44,8 +44,8 @@ classifiers = [
44
44
 
45
45
  python = "^3.8"
46
46
 
47
- datafiles = "^2.1.2"
48
- minilog = "^2.1"
47
+ datafiles = "^2.2"
48
+ minilog = "^2.3"
49
49
  universal-startfile = "~0.2"
50
50
 
51
51
  [tool.poetry.dev-dependencies]
@@ -57,20 +57,20 @@ isort = "^5.10"
57
57
  # Linters
58
58
  mypy = "^1.3"
59
59
  pydocstyle = "*"
60
- pylint = "~2.6"
60
+ pylint = "~2.15"
61
61
  types-freezegun = "*"
62
62
  types-setuptools = "*"
63
63
 
64
64
  # Testing
65
- pytest = "^7.3"
66
- pytest-cov = "^4.1"
67
- pytest-describe = "^2.0"
65
+ pytest = "^8.1"
66
+ pytest-cov = "^5.0"
67
+ pytest-describe = "^2.2"
68
68
  pytest-expecter = "^3.0"
69
69
  pytest-random = "*"
70
70
  freezegun = "*"
71
71
 
72
72
  # Reports
73
- coveragespace = "^6.0"
73
+ coveragespace = "^6.1"
74
74
 
75
75
  # Documentation
76
76
  mkdocs = "^1.2.3"
@@ -98,6 +98,34 @@ quiet = true
98
98
 
99
99
  profile = "black"
100
100
 
101
+ [tool.mypy]
102
+
103
+ ignore_missing_imports = true
104
+ no_implicit_optional = true
105
+ check_untyped_defs = true
106
+
107
+ cache_dir = ".cache/mypy/"
108
+
109
+ plugins = "datafiles.plugins:mypy"
110
+
111
+ [tool.pytest.ini_options]
112
+
113
+ addopts = """
114
+ --strict-markers
115
+
116
+ -r sxX
117
+ --show-capture=log
118
+
119
+ --cov=gitman
120
+ --cov-report=html
121
+ --cov-report=term-missing:skip-covered
122
+ --no-cov-on-fail
123
+ """
124
+
125
+ cache_dir = ".cache/pytest/"
126
+
127
+ markers = ["integration"]
128
+
101
129
  [build-system]
102
130
 
103
131
  requires = ["poetry-core>=1.0"]
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