worker: silence type error when calling pickle
authorGregory Szorc <gregory.szorc@gmail.com>
Thu, 03 Mar 2022 17:39:20 -0800
changeset 49003 a0674e916fb6
parent 49002 46b3ecfb16e2
child 49004 f254fc73d956
worker: silence type error when calling pickle pytype is complaining that the argument to `pickle.load()` is not an `IO`. pytype isn't wrong: `_blockingreader` doesn't implement `io.RawIOBase`, only `read()` and `readline()`. But it appears this is enough for pickle. So we silence the false positive. This fixes a regression introduced by D12304 / cc0e059d2af8: worker: remove Python 2 support code. Differential Revision: https://phab.mercurial-scm.org/D12337
mercurial/worker.py
--- a/mercurial/worker.py	Mon Feb 21 10:53:09 2022 -0700
+++ b/mercurial/worker.py	Thu Mar 03 17:39:20 2022 -0800
@@ -279,7 +279,11 @@
         while openpipes > 0:
             for key, events in selector.select():
                 try:
+                    # The pytype error likely goes away on a modern version of
+                    # pytype having a modern typeshed snapshot.
+                    # pytype: disable=wrong-arg-types
                     res = pickle.load(_blockingreader(key.fileobj))
+                    # pytype: enable=wrong-arg-types
                     if hasretval and res[0]:
                         retval.update(res[1])
                     else: