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.
- {github_archive-7.0.2 → github_archive-7.0.4}/PKG-INFO +3 -5
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/__init__.py +0 -1
- github_archive-7.0.4/github_archive/_version.py +1 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/constants.py +0 -1
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/gists.py +8 -2
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/repos.py +7 -3
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive.egg-info/PKG-INFO +3 -5
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive.egg-info/requires.txt +1 -3
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive.egg-info/top_level.txt +0 -1
- {github_archive-7.0.2 → github_archive-7.0.4}/pyproject.toml +10 -25
- github_archive-7.0.2/github_archive/_version.py +0 -1
- {github_archive-7.0.2 → github_archive-7.0.4}/LICENSE +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/README.md +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/archive.py +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/cli.py +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/logger.py +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive/py.typed +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive.egg-info/SOURCES.txt +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive.egg-info/dependency_links.txt +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/github_archive.egg-info/entry_points.txt +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/setup.cfg +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/test/unit/__init__.py +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/test/unit/conftest.py +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/test/unit/test_archive.py +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/test/unit/test_gists.py +0 -0
- {github_archive-7.0.2 → github_archive-7.0.4}/test/unit/test_logger.py +0 -0
- {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.
|
|
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:
|
|
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">
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "7.0.4"
|
|
@@ -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(
|
|
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,
|
|
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]) ->
|
|
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.
|
|
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:
|
|
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">
|
|
@@ -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
|
|
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
|
-
[
|
|
40
|
-
github-archive = "github_archive.cli:main"
|
|
41
|
-
|
|
42
|
-
[tool.black]
|
|
35
|
+
[tool.ruff]
|
|
43
36
|
line-length = 120
|
|
44
37
|
|
|
45
|
-
[tool.
|
|
46
|
-
|
|
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
|
|
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
|