FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
GitPython/git/types.py at main · Unpublished/GitPython · GitHub
Unpublished
GitPython
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
GitPython
/
git
/
types.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
117 lines (87 loc) · 2.95 KB
Breadcrumbs
GitPython
/
git
/
types.py
Copy path
File metadata and controls
117 lines (87 loc) · 2.95 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# -*- coding: utf-8 -*-
# This module is part of GitPython and is released under
# the BSD License: http://www.opensource.org/licenses/bsd-license.php
# flake8: noqa
import
os
import
sys
from
typing
import
(
Dict
,
NoReturn
,
Sequence
,
Tuple
,
Union
,
Any
,
TYPE_CHECKING
,
TypeVar
,
)
# noqa: F401
if
sys
.
version_info
[:
2
]
>=
(
3
,
8
):
from
typing
import
(
Literal
,
SupportsIndex
,
TypedDict
,
Protocol
,
runtime_checkable
,
)
# noqa: F401
else
:
from
typing_extensions
import
(
Literal
,
SupportsIndex
,
# noqa: F401
TypedDict
,
Protocol
,
runtime_checkable
,
)
# noqa: F401
# if sys.version_info[:2] >= (3, 10):
# from typing import TypeGuard # noqa: F401
# else:
# from typing_extensions import TypeGuard # noqa: F401
if
sys
.
version_info
[:
2
]
<
(
3
,
9
):
PathLike
=
Union
[
str
,
os
.
PathLike
]
else
:
# os.PathLike only becomes subscriptable from Python 3.9 onwards
PathLike
=
Union
[
str
,
os
.
PathLike
[
str
]]
if
TYPE_CHECKING
:
from
git
.
repo
import
Repo
from
git
.
objects
import
Commit
,
Tree
,
TagObject
,
Blob
# from git.refs import SymbolicReference
TBD
=
Any
_T
=
TypeVar
(
"_T"
)
Tree_ish
=
Union
[
"Commit"
,
"Tree"
]
Commit_ish
=
Union
[
"Commit"
,
"TagObject"
,
"Blob"
,
"Tree"
]
Lit_commit_ish
=
Literal
[
"commit"
,
"tag"
,
"blob"
,
"tree"
]
# Config_levels ---------------------------------------------------------
Lit_config_levels
=
Literal
[
"system"
,
"global"
,
"user"
,
"repository"
]
# def is_config_level(inp: str) -> TypeGuard[Lit_config_levels]:
# # return inp in get_args(Lit_config_level) # only py >= 3.8
# return inp in ("system", "user", "global", "repository")
ConfigLevels_Tup
=
Tuple
[
Literal
[
"system"
],
Literal
[
"user"
],
Literal
[
"global"
],
Literal
[
"repository"
]]
# -----------------------------------------------------------------------------------
def
assert_never
(
inp
:
NoReturn
,
raise_error
:
bool
=
True
,
exc
:
Union
[
Exception
,
None
]
=
None
)
->
None
:
"""For use in exhaustive checking of literal or Enum in if/else chain.
Should only be reached if all members not handled OR attempt to pass non-members through chain.
If all members handled, type is Empty. Otherwise, will cause mypy error.
If non-members given, should cause mypy error at variable creation.
If raise_error is True, will also raise AssertionError or the Exception passed to exc.
"""
if
raise_error
:
if
exc
is
None
:
raise
ValueError
(
f"An unhandled Literal (
{
inp
}
) in an if/else chain was found"
)
else
:
raise
exc
class
Files_TD
(
TypedDict
):
insertions
:
int
deletions
:
int
lines
:
int
class
Total_TD
(
TypedDict
):
insertions
:
int
deletions
:
int
lines
:
int
files
:
int
class
HSH_TD
(
TypedDict
):
total
:
Total_TD
files
:
Dict
[
PathLike
,
Files_TD
]
@
runtime_checkable
class
Has_Repo
(
Protocol
):
repo
:
"Repo"
@
runtime_checkable
class
Has_id_attribute
(
Protocol
):
_id_attribute_
:
str
Back
|
FazBrowse Home
|
New Git URL