##// END OF EJS Templates
typing: make `bundlerepository` subclass `localrepository` while type checking...
typing: make `bundlerepository` subclass `localrepository` while type checking Currently, `mercurial/bundlerepo.py` is excluded from pytype, mostly because it complains that various `ui` and `vfs` fields in `localrepository` are missing. (`bundlerepository` dynamically subclasses `localrepository` when it is instantiated, so it works at runtime.) This makes that class hierarchy known to pytype. Having a protocol for `Repository` is probably the right thing to do, but that will be a lot of work and this still reflects the class at runtime. Subclassing also has the benefit of making sure any method overrides have a matching signature, so maybe this is a situation where we do both of these things. (I'm not sure how clear the diagnostics are if a class *almost* implements a protocol, but is missing a method argument or similar.) The subclassing is not done outside of type checking runs to avoid any side effects on already complex code.

File last commit:

r52755:607e94e0 default
r52763:9d4ad05b 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
format: add many "missing" comma...
r52755 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 )