瀏覽代碼

Fix typing.

Jelmer Vernooij 3 年之前
父節點
當前提交
4db481c660
共有 2 個文件被更改,包括 11 次插入7 次删除
  1. 3 3
      dulwich/diff_tree.py
  2. 8 4
      dulwich/merge.py

+ 3 - 3
dulwich/diff_tree.py

@@ -28,7 +28,7 @@ from collections import (
 from io import BytesIO
 from itertools import chain
 import stat
-from typing import Iterable, Tuple, List
+from typing import Iterable, Tuple, List, Optional, Dict
 
 from dulwich.objects import (
     S_ISGITLINK,
@@ -274,7 +274,7 @@ def tree_changes_for_merge(
         for t in parent_tree_ids
     ]
     num_parents = len(parent_tree_ids)
-    changes_by_path = defaultdict(lambda: [None] * num_parents)
+    changes_by_path = defaultdict(lambda: [None] * num_parents)  # type: Dict[str, List[Optional[TreeChange]]]
 
     # Organize by path.
     for i, parent_changes in enumerate(all_parent_changes):
@@ -413,7 +413,7 @@ class RenameDetector(object):
         store,
         rename_threshold: int = RENAME_THRESHOLD,
         max_files: int = MAX_FILES,
-        rewrite_threshold: int = REWRITE_THRESHOLD,
+        rewrite_threshold: Optional[int] = REWRITE_THRESHOLD,
         find_copies_harder: bool = False,
     ):
         """Initialize the rename detector.

+ 8 - 4
dulwich/merge.py

@@ -21,7 +21,7 @@
 """Merge support."""
 
 from collections import namedtuple
-from typing import Union, Iterable, List
+from typing import Union, Iterable, List, Callable, Optional
 
 
 from .diff_tree import (
@@ -38,6 +38,9 @@ from .merge_base import find_merge_base
 from .objects import Blob, Tree
 
 
+FileMerger = Callable[[bytes, bytes, bytes], bytes]
+
+
 class MergeConflict(namedtuple(
         'MergeConflict',
         ['this_entry', 'other_entry', 'base_entry', 'message'])):
@@ -47,7 +50,7 @@ class MergeConflict(namedtuple(
 def _merge_entry(
         new_path: str, object_store, this_entry: TreeEntry,
         other_entry: TreeEntry, base_entry: TreeEntry,
-        file_merger):
+        file_merger: Optional[FileMerger]):
     """Run a per entry-merge."""
     if file_merger is None:
         return MergeConflict(
@@ -73,7 +76,8 @@ def _merge_entry(
 
 def merge_tree(
         object_store, this_tree: bytes, other_tree: bytes, common_tree: bytes,
-        rename_detector=None, file_merger=None) -> Iterable[
+        rename_detector=None,
+        file_merger: Optional[FileMerger] = None) -> Iterable[
             Union[TreeEntry, MergeConflict]]:
     """Merge two trees.
 
@@ -181,7 +185,7 @@ class MergeResults(object):
 
 def merge(
         repo, commit_ids: List[bytes], rename_detector=None,
-        file_merger=None) -> MergeResults:
+        file_merger: Optional[FileMerger] = None) -> MergeResults:
     """Perform a merge.
     """
     conflicts = []