github-archive 7.0.2__tar.gz → 7.0.4__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 (27) hide show
  1. {github_archive-7.0.2 → github_archive-7.0.4}/PKG-INFO +3 -5
  2. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/__init__.py +0 -1
  3. github_archive-7.0.4/github_archive/_version.py +1 -0
  4. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/constants.py +0 -1
  5. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/gists.py +8 -2
  6. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/repos.py +7 -3
  7. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive.egg-info/PKG-INFO +3 -5
  8. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive.egg-info/requires.txt +1 -3
  9. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive.egg-info/top_level.txt +0 -1
  10. {github_archive-7.0.2 → github_archive-7.0.4}/pyproject.toml +10 -25
  11. github_archive-7.0.2/github_archive/_version.py +0 -1
  12. {github_archive-7.0.2 → github_archive-7.0.4}/LICENSE +0 -0
  13. {github_archive-7.0.2 → github_archive-7.0.4}/README.md +0 -0
  14. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/archive.py +0 -0
  15. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/cli.py +0 -0
  16. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/logger.py +0 -0
  17. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/py.typed +0 -0
  18. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive.egg-info/SOURCES.txt +0 -0
  19. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive.egg-info/dependency_links.txt +0 -0
  20. {github_archive-7.0.2 → github_archive-7.0.4}/github_archive.egg-info/entry_points.txt +0 -0
  21. {github_archive-7.0.2 → github_archive-7.0.4}/setup.cfg +0 -0
  22. {github_archive-7.0.2 → github_archive-7.0.4}/test/unit/__init__.py +0 -0
  23. {github_archive-7.0.2 → github_archive-7.0.4}/test/unit/conftest.py +0 -0
  24. {github_archive-7.0.2 → github_archive-7.0.4}/test/unit/test_archive.py +0 -0
  25. {github_archive-7.0.2 → github_archive-7.0.4}/test/unit/test_gists.py +0 -0
  26. {github_archive-7.0.2 → github_archive-7.0.4}/test/unit/test_logger.py +0 -0
  27. {github_archive-7.0.2 → github_archive-7.0.4}/test/unit/test_repos.py +0 -0
@@ -1,24 +1,22 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-archive
3
- Version: 7.0.2
3
+ Version: 7.0.4
4
4
  Summary: A powerful tool to concurrently clone, pull, or fork user and org repos and gists to create a GitHub archive.
5
5
  Author: Justintime50
6
6
  License: MIT
7
7
  Project-URL: Homepage, http://github.com/justintime50/github-archive
8
- Requires-Python: <4,>=3.10
8
+ Requires-Python: >=3.10
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE
11
11
  Requires-Dist: PyGithub==2.8.*
12
12
  Requires-Dist: woodchips==2.*
13
13
  Provides-Extra: dev
14
14
  Requires-Dist: bandit==1.9.*; extra == "dev"
15
- Requires-Dist: black==25.*; extra == "dev"
16
15
  Requires-Dist: build==1.3.*; extra == "dev"
17
- Requires-Dist: flake8==7.*; extra == "dev"
18
- Requires-Dist: isort==7.*; extra == "dev"
19
16
  Requires-Dist: mypy==1.18.*; extra == "dev"
20
17
  Requires-Dist: pytest==9.*; extra == "dev"
21
18
  Requires-Dist: pytest-cov==7.*; extra == "dev"
19
+ Requires-Dist: ruff==0.14.*; extra == "dev"
22
20
  Dynamic: license-file
23
21
 
24
22
  <div align="center">
@@ -1,6 +1,5 @@
1
1
  from github_archive.archive import GithubArchive
2
2
 
3
-
4
3
  __all__ = [
5
4
  "GithubArchive",
6
5
  ]
@@ -0,0 +1 @@
1
+ __version__ = "7.0.4"
@@ -1,7 +1,6 @@
1
1
  import os
2
2
  from typing import Literal
3
3
 
4
-
5
4
  DEFAULT_BASE_URL = "https://api.github.com"
6
5
  DEFAULT_LOCATION = os.path.join("~", "github-archive")
7
6
  DEFAULT_NUM_THREADS = 10
@@ -16,7 +16,6 @@ from typing import (
16
16
  import woodchips
17
17
  from github import Gist
18
18
 
19
-
20
19
  if TYPE_CHECKING:
21
20
  # This is needed to get around circular imports while allowing `mypy` to be happy
22
21
  from github_archive.archive import GithubArchive # pragma: no cover
@@ -28,7 +27,11 @@ from github_archive.constants import (
28
27
  )
29
28
 
30
29
 
31
- def iterate_gists_to_archive(github_archive: GithubArchive, gists: List[Gist.Gist], operation: str) -> None:
30
+ def iterate_gists_to_archive(
31
+ github_archive: GithubArchive,
32
+ gists: List[Gist.Gist],
33
+ operation: str,
34
+ ) -> List[Optional[str]]:
32
35
  """Iterate over each gist and start a thread if it can be archived."""
33
36
  pool = ThreadPoolExecutor(github_archive.threads)
34
37
  thread_list = []
@@ -46,6 +49,9 @@ def iterate_gists_to_archive(github_archive: GithubArchive, gists: List[Gist.Gis
46
49
  )
47
50
 
48
51
  wait(thread_list, return_when=ALL_COMPLETED)
52
+ failed_gists = [gist.result() for gist in thread_list if gist.result()]
53
+
54
+ return failed_gists
49
55
 
50
56
 
51
57
  def view_gists(gists: List[Gist.Gist]):
@@ -16,7 +16,6 @@ from typing import (
16
16
  import woodchips
17
17
  from github import Repository
18
18
 
19
-
20
19
  if TYPE_CHECKING:
21
20
  # This is needed to get around circular imports while allowing `mypy` to be happy
22
21
  from github_archive.archive import GithubArchive # pragma: no cover
@@ -29,7 +28,9 @@ from github_archive.constants import (
29
28
 
30
29
 
31
30
  def iterate_repos_to_archive(
32
- github_archive: GithubArchive, repos: List[Repository.Repository], operation: str
31
+ github_archive: GithubArchive,
32
+ repos: List[Repository.Repository],
33
+ operation: str,
33
34
  ) -> List[Optional[str]]:
34
35
  """Iterate over each repository and start a thread after filtering based on the
35
36
  user input and attempt to archive it.
@@ -82,7 +83,7 @@ def view_repos(repos: List[Repository.Repository]):
82
83
  logger.info(repo_name)
83
84
 
84
85
 
85
- def iterate_repos_to_fork(github_archive: GithubArchive, repos: List[Repository.Repository]) -> None:
86
+ def iterate_repos_to_fork(github_archive: GithubArchive, repos: List[Repository.Repository]) -> List[Optional[str]]:
86
87
  """Iterates through a list of repos and attempts to fork them."""
87
88
  pool = ThreadPoolExecutor(github_archive.threads)
88
89
  thread_list = []
@@ -96,6 +97,9 @@ def iterate_repos_to_fork(github_archive: GithubArchive, repos: List[Repository.
96
97
  )
97
98
 
98
99
  wait(thread_list, return_when=ALL_COMPLETED)
100
+ failed_repos = [repo.result() for repo in thread_list if repo.result()]
101
+
102
+ return failed_repos
99
103
 
100
104
 
101
105
  def _fork_repo(repo: Repository.Repository):
@@ -1,24 +1,22 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-archive
3
- Version: 7.0.2
3
+ Version: 7.0.4
4
4
  Summary: A powerful tool to concurrently clone, pull, or fork user and org repos and gists to create a GitHub archive.
5
5
  Author: Justintime50
6
6
  License: MIT
7
7
  Project-URL: Homepage, http://github.com/justintime50/github-archive
8
- Requires-Python: <4,>=3.10
8
+ Requires-Python: >=3.10
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE
11
11
  Requires-Dist: PyGithub==2.8.*
12
12
  Requires-Dist: woodchips==2.*
13
13
  Provides-Extra: dev
14
14
  Requires-Dist: bandit==1.9.*; extra == "dev"
15
- Requires-Dist: black==25.*; extra == "dev"
16
15
  Requires-Dist: build==1.3.*; extra == "dev"
17
- Requires-Dist: flake8==7.*; extra == "dev"
18
- Requires-Dist: isort==7.*; extra == "dev"
19
16
  Requires-Dist: mypy==1.18.*; extra == "dev"
20
17
  Requires-Dist: pytest==9.*; extra == "dev"
21
18
  Requires-Dist: pytest-cov==7.*; extra == "dev"
19
+ Requires-Dist: ruff==0.14.*; extra == "dev"
22
20
  Dynamic: license-file
23
21
 
24
22
  <div align="center">
@@ -3,10 +3,8 @@ woodchips==2.*
3
3
 
4
4
  [dev]
5
5
  bandit==1.9.*
6
- black==25.*
7
6
  build==1.3.*
8
- flake8==7.*
9
- isort==7.*
10
7
  mypy==1.18.*
11
8
  pytest==9.*
12
9
  pytest-cov==7.*
10
+ ruff==0.14.*
@@ -1,4 +1,3 @@
1
1
  dist
2
2
  github_archive
3
3
  test
4
- venv
@@ -7,51 +7,36 @@ name = "github-archive"
7
7
  description = "A powerful tool to concurrently clone, pull, or fork user and org repos and gists to create a GitHub archive."
8
8
  dynamic = ["version"]
9
9
  readme = "README.md"
10
- requires-python = ">=3.10, <4"
10
+ requires-python = ">=3.10"
11
11
  license = { text = "MIT" }
12
12
  authors = [{ name = "Justintime50" }]
13
+ urls = { Homepage = "http://github.com/justintime50/github-archive" }
14
+ scripts = { github-archive = "github_archive.cli:main" }
15
+ # TODO: PyGithub 2.9+ requires `pyjwt[crypto]` which isn't compatible on newer Python versions in Homebrew
13
16
  dependencies = ["PyGithub == 2.8.*", "woodchips == 2.*"]
14
-
15
- [project.optional-dependencies]
16
- dev = [
17
+ optional-dependencies = { dev = [
17
18
  "bandit == 1.9.*",
18
- "black == 25.*",
19
19
  "build == 1.3.*",
20
- "flake8 == 7.*",
21
- "isort == 7.*",
22
20
  "mypy == 1.18.*",
23
21
  "pytest == 9.*",
24
22
  "pytest-cov == 7.*",
25
- ]
23
+ "ruff == 0.14.*",
24
+ ] }
26
25
 
27
26
  [tool.setuptools.dynamic]
28
27
  version = { attr = "github_archive._version.__version__" }
29
28
 
30
- [project.urls]
31
- Homepage = "http://github.com/justintime50/github-archive"
32
-
33
29
  [tool.setuptools.packages.find]
34
30
  exclude = ["test"]
35
31
 
36
32
  [tool.setuptools.package-data]
37
33
  github_archive = ["py.typed"]
38
34
 
39
- [project.scripts]
40
- github-archive = "github_archive.cli:main"
41
-
42
- [tool.black]
35
+ [tool.ruff]
43
36
  line-length = 120
44
37
 
45
- [tool.isort]
46
- profile = "black"
47
- line_length = 120
48
- indent = 4
49
- force_grid_wrap = 2
50
- multi_line_output = 3
51
- sections = "FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,LOCALFOLDER"
52
- lines_after_imports = 2
53
- include_trailing_comma = true
54
- use_parentheses = true
38
+ [tool.ruff.lint]
39
+ extend-select = ["I", "E501"]
55
40
 
56
41
  [tool.mypy]
57
42
  disable_error_code = "import-untyped"
@@ -1 +0,0 @@
1
- __version__ = "7.0.2"
File without changes
File without changes
File without changes