Patchwork D11919: pytype: stop excluding wireprotov2server.py

login
register
mail settings
Submitter phabricator
Date Dec. 14, 2021, 9:12 p.m.
Message ID <differential-rev-PHID-DREV-2tyq7eodvg2m54qjxgcd-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/50246/
State New
Headers show

Comments

phabricator - Dec. 14, 2021, 9:12 p.m.
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

Patch

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)