##// END OF EJS Templates
typing: make the localrepo classes known to pytype...
typing: make the localrepo classes known to pytype 9d4ad05bc91c and 1b17309cdaab both mentioned making `bundlerepository` and `unionrepository` subclass `localrepository` during the type checking phase, but that didn't apply to pytype in practice. See bcaa5d408657 and friends for how the zope interfaces confuse pytype, and end up converting the classes they decorate into `Any`. This commit is slightly more complex though, because `localrepository` has mixin classes applied to it when it is instantiated. Specifically, `RevlogFileStorage` is added, which adds `def file(f)` (which isn't defined on `localrepository`). Therefore a list of `localrepository` superclasses is provided during type checking to account for the mixins. Without this, the `bundlerepository` class gets flagged when it attempts to call its superclass implementation of `file()`. Note that pytype doesn't understand these mixin superclasses (it marks the superclass of `localrepository` as `Any`, because they are zope interfaces it doesn't understand), but that's enough to get it to not flag `bundlerepository`. PyCharm also stops flagging it as a missing function, though it seems like it is able to handle the zope interfaces.

File last commit:

r52756:f4733654 default
r52788:ee7e106b default
Show More
mergeutil.py
19 lines | 498 B | text/x-python | PythonLexer
Augie Fackler
checkunresolved: move to new package to help avoid import cycles...
r30494 # mergeutil.py - help for merge processing in mercurial
#
Raphaël Gomès
contributor: change mentions of mpm to olivia...
r47575 # Copyright 2005-2007 Olivia Mackall <olivia@selenic.com>
Augie Fackler
checkunresolved: move to new package to help avoid import cycles...
r30494 #
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
Matt Harbison
typing: add `from __future__ import annotations` to most files...
r52756 from __future__ import annotations
Augie Fackler
checkunresolved: move to new package to help avoid import cycles...
r30494
from .i18n import _
Augie Fackler
formatting: blacken the codebase...
r43346 from . import error
Augie Fackler
checkunresolved: move to new package to help avoid import cycles...
r30494
def checkunresolved(ms):
Augie Fackler
cleanup: use mergestate.unresolvedcount() instead of bool(list(unresolved()))...
r47070 if ms.unresolvedcount():
Martin von Zweigbergk
errors: raise StateError when there are unresolves merge conflicts...
r46528 raise error.StateError(
Martin von Zweigbergk
cleanup: join string literals that are already on one line...
r43387 _(b"unresolved merge conflicts (see 'hg help resolve')")
Augie Fackler
formatting: blacken the codebase...
r43346 )