From patchwork Tue Dec 14 21:12:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D11919: pytype: stop excluding wireprotov2server.py From: phabricator X-Patchwork-Id: 50246 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Tue, 14 Dec 2021 21:12:00 +0000 mharbison72 created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This fixes: File "/mnt/c/Users/Matt/hg/mercurial/wireprotov2server.py", line 584, in _capabilitiesv2: unsupported operand type(s) for item assignment: Set[bytes] [unsupported-operands] No attribute '__setitem__' on Set[bytes] File "/mnt/c/Users/Matt/hg/mercurial/wireprotov2server.py", line 611, in _capabilitiesv2: No attribute 'append' on dict [attribute-error] In Union[List[bytes], List[nothing], dict] Called from (traceback): line 543, in httpv2apidescriptor REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11919 AFFECTED FILES mercurial/wireprotov2server.py tests/test-check-pytype.t CHANGE DETAILS To: mharbison72, #hg-reviewers Cc: mercurial-patches, mercurial-devel diff --git a/tests/test-check-pytype.t b/tests/test-check-pytype.t --- a/tests/test-check-pytype.t +++ b/tests/test-check-pytype.t @@ -44,7 +44,6 @@ mercurial/wireprotoserver.py # line 253, in _availableapis: No attribute '__iter__' on Callable[[Any, Any], Any] [attribute-error] mercurial/wireprotov1peer.py # [attribute-error] mercurial/wireprotov1server.py # BUG?: BundleValueError handler accesses subclass's attrs -mercurial/wireprotov2server.py # [unsupported-operands], [attribute-error] TODO: use --no-cache on test server? Caching the files locally helps during development, but may be a hinderance for CI testing. @@ -85,7 +84,6 @@ > -x mercurial/wireprotoserver.py \ > -x mercurial/wireprotov1peer.py \ > -x mercurial/wireprotov1server.py \ - > -x mercurial/wireprotov2server.py \ > > $TESTTMP/pytype-output.txt || cat $TESTTMP/pytype-output.txt Only show the results on a failure, because the output on success is also diff --git a/mercurial/wireprotov2server.py b/mercurial/wireprotov2server.py --- a/mercurial/wireprotov2server.py +++ b/mercurial/wireprotov2server.py @@ -579,10 +579,12 @@ ): continue + # pytype: disable=unsupported-operands caps[b'commands'][command] = { b'args': args, b'permissions': [entry.permission], } + # pytype: enable=unsupported-operands if entry.extracapabilitiesfn: extracaps = entry.extracapabilitiesfn(repo, proto) @@ -608,7 +610,9 @@ if key in target: entry[key] = target[key] + # pytype: disable=attribute-error caps[b'redirect'][b'targets'].append(entry) + # pytype: enable=attribute-error return proto.addcapabilities(repo, caps)