summaryrefslogtreecommitdiff
path: root/git/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/util.py')
-rw-r--r--git/util.py25
1 files changed, 13 insertions, 12 deletions
diff --git a/git/util.py b/git/util.py
index 245f45d1..0783918d 100644
--- a/git/util.py
+++ b/git/util.py
@@ -32,7 +32,7 @@ if TYPE_CHECKING:
from git.repo.base import Repo
from git.config import GitConfigParser, SectionConstraint
-from .types import PathLike, TBD, Literal, SupportsIndex
+from .types import PathLike, Literal, SupportsIndex, HSH_TD, Files_TD
# ---------------------------------------------------------------------
@@ -746,7 +746,9 @@ class Stats(object):
files = number of changed files as int"""
__slots__ = ("total", "files")
- def __init__(self, total: Dict[str, Dict[str, int]], files: Dict[str, Dict[str, int]]):
+ from git.types import Total_TD, Files_TD
+
+ def __init__(self, total: Total_TD, files: Dict[str, Files_TD]):
self.total = total
self.files = files
@@ -756,13 +758,12 @@ class Stats(object):
:return: git.Stat"""
- # hsh: Dict[str, Dict[str, Union[int, Dict[str, int]]]]
- hsh: Dict[str, Dict[str, TBD]] = {'total': {'insertions': 0,
- 'deletions': 0,
- 'lines': 0,
- 'files': 0},
- 'files': {}
- } # need typeddict?
+ hsh: HSH_TD = {'total': {'insertions': 0,
+ 'deletions': 0,
+ 'lines': 0,
+ 'files': 0},
+ 'files': {}
+ }
for line in text.splitlines():
(raw_insertions, raw_deletions, filename) = line.split("\t")
insertions = raw_insertions != '-' and int(raw_insertions) or 0
@@ -771,9 +772,9 @@ class Stats(object):
hsh['total']['deletions'] += deletions
hsh['total']['lines'] += insertions + deletions
hsh['total']['files'] += 1
- files_dict = {'insertions': insertions,
- 'deletions': deletions,
- 'lines': insertions + deletions}
+ files_dict: Files_TD = {'insertions': insertions,
+ 'deletions': deletions,
+ 'lines': insertions + deletions}
hsh['files'][filename.strip()] = files_dict
return Stats(hsh['total'], hsh['files'])