Matt Harbison <matt_harbison@yahoo.com> [Fri, 12 Mar 2021 21:19:17 -0500] rev 46419
obsutil: maintain a homogenous list when computing successors
In practice, this wasn't a problem because of an internal check for an empty
list, but it avoids the following pytype error:
File "/mnt/c/Users/Matt/hg/mercurial/obsutil.py", line 823, in successorsandmarkers: No attribute 'markers' on List[nothing] [attribute-error]
In Union[Any, List[nothing], _succs]
Differential Revision: https://phab.mercurial-scm.org/D10213
Matt Harbison <matt_harbison@yahoo.com> [Fri, 12 Mar 2021 23:28:56 -0500] rev 46418
typing: add an assertion to verify.py to appease pytype
Differential Revision: https://phab.mercurial-scm.org/D10212
Matt Harbison <matt_harbison@yahoo.com> [Fri, 12 Mar 2021 20:25:12 -0500] rev 46417
typing: add an assertion to mercurial/hgweb/webcommands.py to help pytype
I have no idea why this is needed, given the check immediately above. But
without it, I'm getting this:
File "/mnt/c/Users/Matt/hg/mercurial/hgweb/webcommands.py", line 1164, in filelog: Missing parameter 'toline' in call to function mercurial.dagop.blockdescendants [missing-parameter]
Expected: (fctx, fromline, toline)
Actually passed: (fctx, fromline)
File "/mnt/c/Users/Matt/hg/mercurial/hgweb/webcommands.py", line 1166, in filelog: Missing parameter 'toline' in call to function mercurial.dagop.blockancestors [missing-parameter]
Expected: (fctx, fromline, toline, followfirst)
Actually passed: (fctx, fromline)
Differential Revision: https://phab.mercurial-scm.org/D10211
Matt Harbison <matt_harbison@yahoo.com> [Fri, 12 Mar 2021 19:02:07 -0500] rev 46416
crecord: null out the curses attribute with `None` on failure to import
Pytype got really confused that this could be `Union[module, bool]`, and spewed
about tons of attributes that are not available on `bool`.
Differential Revision: https://phab.mercurial-scm.org/D10210
Matt Harbison <matt_harbison@yahoo.com> [Sat, 13 Mar 2021 00:41:37 -0500] rev 46415
typing: fix directives mangled by black
Differential Revision: https://phab.mercurial-scm.org/D10209
Matt Harbison <matt_harbison@yahoo.com> [Sat, 13 Mar 2021 00:40:46 -0500] rev 46414
typing: disable module attribute warnings for properly conditionalized code
Differential Revision: https://phab.mercurial-scm.org/D10208
Matt Harbison <matt_harbison@yahoo.com> [Sat, 13 Mar 2021 00:38:59 -0500] rev 46413
typing: disable import error warnings that are already handled
I'm assuming that the cffi ones are handled somewhere, but the others definitely
are.
Differential Revision: https://phab.mercurial-scm.org/D10207
Matt Harbison <matt_harbison@yahoo.com> [Fri, 12 Mar 2021 17:22:35 -0500] rev 46412
typing: disable a few errors when accessing Windows specific attributes
This is already guarded with conditionals. The entire win32 module is
conditionally loaded.
File "/mnt/c/Users/Matt/hg/mercurial/utils/procutil.py", line 162, in <module>: No attribute 'winstdout' on module 'mercurial.posix' [module-attr]
File "/mnt/c/Users/Matt/hg/mercurial/utils/procutil.py", line 163, in <module>: No attribute 'winstdout' on module 'mercurial.posix' [module-attr]
File "/mnt/c/Users/Matt/hg/mercurial/utils/procutil.py", line 174, in <module>: No attribute 'winstdout' on module 'mercurial.posix' [module-attr]
File "/mnt/c/Users/Matt/hg/mercurial/utils/procutil.py", line 175, in <module>: No attribute 'winstdout' on module 'mercurial.posix' [module-attr]
Differential Revision: https://phab.mercurial-scm.org/D10206
Matt Harbison <matt_harbison@yahoo.com> [Fri, 12 Mar 2021 16:55:18 -0500] rev 46411
typing: disable a few errors calling py3.7+ functions in resourceutil.py
There's a graceful fallback when these methods are unavailable.
Differential Revision: https://phab.mercurial-scm.org/D10205
Raphaël Gomès <rgomes@octobus.net> [Wed, 17 Mar 2021 12:06:49 +0100] rev 46410
formatting: fix redundant parentheses
These were introduced by 0d055849d5f9d682ef931d2566b760d5c6bf7e52.
Differential Revision: https://phab.mercurial-scm.org/D10229
Matt Harbison <matt_harbison@yahoo.com> [Fri, 12 Mar 2021 20:19:12 -0500] rev 46409
wsgicgi: switch the default PATH_INFO back to str
It looks like everything here is meant to be str, and regressed in 687b865b95ad.
Pytype didn't flag this, but is really confused about the range of possible
types for the dictionary values, and flagged missing `lower()` on various types
in this area.
Differential Revision: https://phab.mercurial-scm.org/D10204
Matt Harbison <matt_harbison@yahoo.com> [Fri, 12 Mar 2021 18:55:06 -0500] rev 46408
crecord: convert an instance of bytes to str
Caught by pytype:
File "/mnt/c/Users/Matt/hg/mercurial/crecord.py", line 1154, in printstring: Function _CursesWindow.addstr was called with the wrong arguments [wrong-arg-types]
Expected: (self, str: str, ...)
Actually passed: (self, str: bytes, ...)
Differential Revision: https://phab.mercurial-scm.org/D10203
Matt Harbison <matt_harbison@yahoo.com> [Fri, 12 Mar 2021 18:51:22 -0500] rev 46407
crecord: change str literals to byte literals
Differential Revision: https://phab.mercurial-scm.org/D10202
Matt Harbison <matt_harbison@yahoo.com> [Fri, 12 Mar 2021 17:59:02 -0500] rev 46406
bisect: replace a missing method on the list primitive
Caught by pytype:
File "/mnt/c/Users/Matt/hg/mercurial/commands.py", line 1095, in bisect: No attribute 'last' on list [attribute-error]
In list
Differential Revision: https://phab.mercurial-scm.org/D10201
Matt Harbison <matt_harbison@yahoo.com> [Thu, 11 Mar 2021 21:09:55 -0500] rev 46405
typing: disable a module-attr warning in the worker module's py2 code
Differential Revision: https://phab.mercurial-scm.org/D10183
Matt Harbison <matt_harbison@yahoo.com> [Thu, 11 Mar 2021 21:07:04 -0500] rev 46404
wireprotoserver: convert ErrorResponse to bytes
Caught by pytype:
File "/mnt/c/Users/Matt/hg/mercurial/wireprotoserver.py", line 236, in handlewsgirequest: Function _bytestr.__init__ was called with the wrong arguments [wrong-arg-types]
Expected: (self, ints: Iterable[int])
Actually passed: (self, ints: mercurial.hgweb.common.ErrorResponse)
The following methods aren't implemented on mercurial.hgweb.common.ErrorResponse:
__iter__
File "/mnt/c/Users/Matt/hg/mercurial/wireprotoserver.py", line 239, in handlewsgirequest: Function _bytestr.__init__ was called with the wrong arguments [wrong-arg-types]
Expected: (self, ints: Iterable[int])
Actually passed: (self, ints: mercurial.hgweb.common.ErrorResponse)
The following methods aren't implemented on mercurial.hgweb.common.ErrorResponse:
__iter__
File "/mnt/c/Users/Matt/hg/mercurial/wireprotov2server.py", line 91, in handlehttpv2request: Function _bytestr.__init__ was called with the wrong arguments [wrong-arg-types]
Expected: (self, ints: Iterable[int])
Actually passed: (self, ints: mercurial.hgweb.common.ErrorResponse)
The following methods aren't implemented on mercurial.hgweb.common.ErrorResponse:
__iter__
Differential Revision: https://phab.mercurial-scm.org/D10182