# HG changeset patch # User Matt Harbison # Date 2021-09-20 15:22:27 # Node ID 0dc4cc654d96a73568daad2e9b04235eb224cd5f # Parent 376d08ae904fc7ec088404b0ac16921dab361554 typing: drop annotations on `mercurial/logcmdutil.walkopts` attributes Pytype 2021-09-09 must have learned some things about `@attr`, because while these were presumably required to help it before (c1d0f83d62c4::9a26fea2b518 and c11099cc1de4::224c786f4fce), these instances now get flagged as an assignment mismatch: File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 717, in walkopts: Type annotation for pats does not match type of assignment [annotation-type-mismatch] Annotation: List[bytes] Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 718, in walkopts: Type annotation for opts does not match type of assignment [annotation-type-mismatch] Annotation: Dict[bytes, Any] Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 722, in walkopts: Type annotation for revspec does not match type of assignment [annotation-type-mismatch] Annotation: List[bytes] Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 725, in walkopts: Type annotation for bookmarks does not match type of assignment [annotation-type-mismatch] Annotation: List[bytes] Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 726, in walkopts: Type annotation for branches does not match type of assignment [annotation-type-mismatch] Annotation: List[bytes] Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 727, in walkopts: Type annotation for date does not match type of assignment [annotation-type-mismatch] Annotation: Optional[bytes] Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 728, in walkopts: Type annotation for keywords does not match type of assignment [annotation-type-mismatch] Annotation: List[bytes] Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 729, in walkopts: Type annotation for no_merges does not match type of assignment [annotation-type-mismatch] Annotation: bool Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 730, in walkopts: Type annotation for only_merges does not match type of assignment [annotation-type-mismatch] Annotation: bool Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 731, in walkopts: Type annotation for prune_ancestors does not match type of assignment [annotation-type-mismatch] Annotation: List[bytes] Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 732, in walkopts: Type annotation for users does not match type of assignment [annotation-type-mismatch] Annotation: List[bytes] Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 735, in walkopts: Type annotation for include_pats does not match type of assignment [annotation-type-mismatch] Annotation: List[bytes] Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 736, in walkopts: Type annotation for exclude_pats does not match type of assignment [annotation-type-mismatch] Annotation: List[bytes] Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 739, in walkopts: Type annotation for follow does not match type of assignment [annotation-type-mismatch] Annotation: int Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 743, in walkopts: Type annotation for force_changelog_traversal does not match type of assignment [annotation-type-mismatch] Annotation: bool Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 747, in walkopts: Type annotation for filter_revisions_by_pats does not match type of assignment [annotation-type-mismatch] Annotation: bool Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 750, in walkopts: Type annotation for sort_revisions does not match type of assignment [annotation-type-mismatch] Annotation: Optional[bytes] Assignment: mercurial.thirdparty.attr._make._CountingAttr File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 753, in walkopts: Type annotation for limit does not match type of assignment [annotation-type-mismatch] Annotation: Optional[int] Assignment: mercurial.thirdparty.attr._make._CountingAttr Differential Revision: https://phab.mercurial-scm.org/D11474 diff --git a/mercurial/logcmdutil.py b/mercurial/logcmdutil.py --- a/mercurial/logcmdutil.py +++ b/mercurial/logcmdutil.py @@ -46,13 +46,12 @@ if pycompat.TYPE_CHECKING: Any, Callable, Dict, - List, Optional, Sequence, Tuple, ) - for t in (Any, Callable, Dict, List, Optional, Tuple): + for t in (Any, Callable, Dict, Optional, Tuple): assert t @@ -714,43 +713,43 @@ class walkopts(object): """ # raw command-line parameters, which a matcher will be built from - pats = attr.ib() # type: List[bytes] - opts = attr.ib() # type: Dict[bytes, Any] + pats = attr.ib() + opts = attr.ib() # a list of revset expressions to be traversed; if follow, it specifies # the start revisions - revspec = attr.ib() # type: List[bytes] + revspec = attr.ib() # miscellaneous queries to filter revisions (see "hg help log" for details) - bookmarks = attr.ib(default=attr.Factory(list)) # type: List[bytes] - branches = attr.ib(default=attr.Factory(list)) # type: List[bytes] - date = attr.ib(default=None) # type: Optional[bytes] - keywords = attr.ib(default=attr.Factory(list)) # type: List[bytes] - no_merges = attr.ib(default=False) # type: bool - only_merges = attr.ib(default=False) # type: bool - prune_ancestors = attr.ib(default=attr.Factory(list)) # type: List[bytes] - users = attr.ib(default=attr.Factory(list)) # type: List[bytes] + bookmarks = attr.ib(default=attr.Factory(list)) + branches = attr.ib(default=attr.Factory(list)) + date = attr.ib(default=None) + keywords = attr.ib(default=attr.Factory(list)) + no_merges = attr.ib(default=False) + only_merges = attr.ib(default=False) + prune_ancestors = attr.ib(default=attr.Factory(list)) + users = attr.ib(default=attr.Factory(list)) # miscellaneous matcher arguments - include_pats = attr.ib(default=attr.Factory(list)) # type: List[bytes] - exclude_pats = attr.ib(default=attr.Factory(list)) # type: List[bytes] + include_pats = attr.ib(default=attr.Factory(list)) + exclude_pats = attr.ib(default=attr.Factory(list)) # 0: no follow, 1: follow first, 2: follow both parents - follow = attr.ib(default=0) # type: int + follow = attr.ib(default=0) # do not attempt filelog-based traversal, which may be fast but cannot # include revisions where files were removed - force_changelog_traversal = attr.ib(default=False) # type: bool + force_changelog_traversal = attr.ib(default=False) # filter revisions by file patterns, which should be disabled only if # you want to include revisions where files were unmodified - filter_revisions_by_pats = attr.ib(default=True) # type: bool + filter_revisions_by_pats = attr.ib(default=True) # sort revisions prior to traversal: 'desc', 'topo', or None - sort_revisions = attr.ib(default=None) # type: Optional[bytes] + sort_revisions = attr.ib(default=None) # limit number of changes displayed; None means unlimited - limit = attr.ib(default=None) # type: Optional[int] + limit = attr.ib(default=None) def parseopts(ui, pats, opts):