Skip to content

Commit e680683

Browse files
committed
fixed almost all mypy errors
1 parent 0c29ad6 commit e680683

3 files changed

Lines changed: 17 additions & 8 deletions

File tree

test/examples.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def _remove_version_suffixes(path: pathlib.Path) -> t.Optional[pathlib.Path]:
134134
'0.4.4.dev5+84e1d430': ((0, 4, 4, '.', 'dev', 5, '84e1d430'), {}),
135135
'0.4.4.dev5+20171003.84e1d430': ((0, 4, 4, '.', 'dev', 5, '20171003', '.', '84e1d430'), {})}
136136

137-
INCOMPATIBLE_STR_CASES = {
137+
INCOMPATIBLE_STR_CASES: t.Dict[str, t.Tuple[tuple, dict]] = {
138138
'1.0.0-2': ((1, 0, 0, '-', None, 2), {}),
139139
'1.0.0-0.2': ((1, 0, 0, '-', None, 0, '.', None, 2), {}),
140140
'4.5.0.dev': ((4, 5, 0, '.', 'dev', None), {})}

version_query/git_query.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ def _git_version_tags(repo: git.Repo) -> t.Mapping[git.Tag, Version]:
4242

4343
def _latest_git_version_tag_on_branches(
4444
repo: git.Repo, assume_if_none: bool, commit: git.Commit, commit_distance: int,
45-
skip_commits: t.Set[git.Commit]):
45+
skip_commits: t.Set[git.Commit]) -> t.Union[int, t.Tuple[
46+
git.Commit, t.Optional[git.TagReference], t.Optional[Version], int]]:
4647
_LOG.log(logging.NOTSET, 'entering %i branches...', len(commit.parents))
4748
results = []
4849
main_commit_distance = None
@@ -57,6 +58,7 @@ def _latest_git_version_tag_on_branches(
5758
if result[2] is not None:
5859
results.append(result)
5960
if not results:
61+
assert main_commit_distance is not None
6062
return main_commit_distance
6163
final_result = sorted(results, key=lambda _: _[2])[-1]
6264
_LOG.log(logging.NOTSET, 'result from %i branches is %s and %s',
@@ -70,10 +72,10 @@ def _latest_git_version_tag_on_branches(
7072
def _latest_git_version_tag(
7173
repo: git.Repo, assume_if_none: bool = False, base_commit: git.Commit = None,
7274
commit_distance: int = 0, skip_commits: t.Set[git.Commit] = None) -> t.Tuple[
73-
git.Commit, t.Optional[git.TagReference], Version, int]:
75+
git.Commit, t.Optional[git.TagReference], t.Optional[Version], int]:
7476
"""Retrun (commit, tag at that commit if any, latest version, distance from the version)."""
7577
version_tags = _git_version_tags(repo)
76-
version_tag_commits = {}
78+
version_tag_commits: t.Dict[git.Commit, set] = {}
7779
for tag, version in version_tags.items():
7880
commit = tag.commit
7981
if commit not in version_tag_commits:
@@ -159,7 +161,8 @@ def predict_git_repo(repo_path: pathlib.Path, search_parent_directories: bool =
159161
if is_repo_dirty:
160162
dt_ = 'dirty{}'.format(datetime.datetime.strftime(datetime.datetime.now(), '%Y%m%d%H%M%S'))
161163
if version.has_local:
162-
version.local += ('.', dt_)
164+
assert version.local is not None # mypy needs this
165+
version.local = (*version.local, '.', dt_)
163166
else:
164167
version.local = (dt_,)
165168
return version

version_query/version.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,9 @@ def __init__(
206206
self._major: t.Optional[int] = None
207207
self._minor: t.Optional[int] = None
208208
self._patch: t.Optional[int] = None
209-
self._pre_release = None
210-
self._local = None
209+
self._pre_release: t.Optional[
210+
t.List[t.Tuple[t.Optional[str], t.Optional[str], t.Optional[int]]]] = None
211+
self._local: t.Optional[t.Sequence[str]] = None
211212

212213
self.release = major, minor, patch
213214

@@ -453,6 +454,7 @@ def increment(self, component: VersionComponent, amount: int = 1) -> 'Version':
453454
def _increment_release(self, component: VersionComponent, amount: int):
454455
if component in (VersionComponent.Major, VersionComponent.Minor):
455456
if component is VersionComponent.Major:
457+
assert self._major is not None
456458
self._major += amount
457459
if self._minor is not None:
458460
self._minor = 0
@@ -511,6 +513,7 @@ def release_to_str(self) -> str:
511513
raise ValueError('cannot generate valid version string from {}'.format(repr(self)))
512514

513515
def _pre_release_segment_to_str(self, segment: int) -> str:
516+
assert self._pre_release is not None
514517
version_tuple = self._pre_release[segment]
515518
if _version_tuple_checker(version_tuple, (True, True, False)):
516519
return '{}{}'.format(*version_tuple[:2])
@@ -541,6 +544,7 @@ def release_to_tuple(self, sort: bool = False) -> tuple:
541544
(0 if sort else None) if self._patch is None else self._patch
542545

543546
def pre_release_segment_to_tuple(self, segment: int, sort: bool = False) -> tuple:
547+
assert self._pre_release is not None
544548
pre_separator, pre_type, pre_patch = self._pre_release[segment]
545549
return (1 if pre_type is None else 0) if sort else pre_separator, \
546550
('' if pre_type is None else pre_type.lower()) if sort else pre_type, \
@@ -549,7 +553,9 @@ def pre_release_segment_to_tuple(self, segment: int, sort: bool = False) -> tupl
549553
def pre_release_to_tuple(self, sort: bool = False) -> tuple:
550554
"""Create tuple from this version's pre-release component."""
551555
if self._pre_release is None:
552-
return ((1, '', 0),) if sort else ()
556+
if sort:
557+
return ((1, '', 0),)
558+
return ()
553559
parts = [self.pre_release_segment_to_tuple(i, sort)
554560
for i, _ in enumerate(self._pre_release)]
555561
return tuple(parts) if sort else tuple(itertools.chain.from_iterable(parts))

0 commit comments

Comments
 (0)