D11926: pytype: stop excluding chgserver.py

mharbison72 (Matt Harbison) phabricator at mercurial-scm.org
Wed Dec 15 20:47:40 UTC 2021


mharbison72 created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  This teaches pytype about some lazy initialization, and avoids the following:
  
    File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 666, in _checkextensions:
        No attribute '_hashstate' on chgunixservicehandler [attribute-error]
    File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 672, in _checkextensions:
        No attribute '_hashstate' on chgunixservicehandler [attribute-error]
    File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 677, in _bind:
        No attribute '_realaddress' on chgunixservicehandler [attribute-error]
    File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 683, in _bind:
        No attribute '_realaddress' on chgunixservicehandler [attribute-error]
    File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 686, in _createsymlink:
        No attribute '_baseaddress' on chgunixservicehandler [attribute-error]
    File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 686, in _createsymlink:
        No attribute '_realaddress' on chgunixservicehandler [attribute-error]
    File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 688, in _createsymlink:
        No attribute '_baseaddress' on chgunixservicehandler [attribute-error]
    File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 689, in _createsymlink:
        No attribute '_realaddress' on chgunixservicehandler [attribute-error]
    File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 690, in _createsymlink:
        No attribute '_baseaddress' on chgunixservicehandler [attribute-error]

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D11926

AFFECTED FILES
  mercurial/chgserver.py
  tests/test-check-pytype.t

CHANGE DETAILS

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
@@ -10,7 +10,6 @@
 probably hiding real problems.
 
 mercurial/bundlerepo.py       # no vfs and ui attrs on bundlerepo
-mercurial/chgserver.py        # [attribute-error]
 mercurial/context.py          # many [attribute-error]
 mercurial/crecord.py          # tons of [attribute-error], [module-attr]
 mercurial/debugcommands.py    # [wrong-arg-types]
@@ -46,7 +45,6 @@
 
   $ pytype -V 3.6 --keep-going --jobs auto mercurial \
   >    -x mercurial/bundlerepo.py \
-  >    -x mercurial/chgserver.py \
   >    -x mercurial/context.py \
   >    -x mercurial/crecord.py \
   >    -x mercurial/debugcommands.py \
diff --git a/mercurial/chgserver.py b/mercurial/chgserver.py
--- a/mercurial/chgserver.py
+++ b/mercurial/chgserver.py
@@ -643,6 +643,13 @@
 
     def __init__(self, ui):
         self.ui = ui
+
+        # TODO: use PEP 526 syntax (`_hashstate: hashstate` at the class level)
+        #  when 3.5 support is dropped.
+        self._hashstate = None  # type: hashstate
+        self._baseaddress = None  # type: bytes
+        self._realaddress = None  # type: bytes
+
         self._idletimeout = ui.configint(b'chgserver', b'idletimeout')
         self._lastactive = time.time()
 



To: mharbison72, #hg-reviewers
Cc: mercurial-patches, mercurial-devel


More information about the Mercurial-devel mailing list