##// END OF EJS Templates
interfaces: mark `completelocalrepository` as a Protocol class...
interfaces: mark `completelocalrepository` as a Protocol class This is just for completeness, since everything else in here is explicitly marked. The *.pyi file generated for this module is unchanged, because this class currently has no methods or attrs of its own (other than `__doc__`). With this, the odyssey of converting the zope interfaces to Protocol classes is complete. There's a little bit of mopping up in making sure the previously converted Protocols use `@abc.abstractmethod` where appropriate, but that can be deferred for now.

File last commit:

r52995:82e2c99c default
r53397:3abf9bc1 default
Show More
typelib.py
55 lines | 1.4 KiB | text/x-python | PythonLexer
# typelib.py - type hint aliases and support
#
# Copyright 2022 Matt Harbison <matt_harbison@yahoo.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import annotations
import typing
from typing import (
Callable,
)
# Note: this is slightly different from pycompat.TYPE_CHECKING, as using
# pycompat causes the BinaryIO_Proxy type to be resolved to ``object`` when
# used as the base class during a pytype run.
TYPE_CHECKING = typing.TYPE_CHECKING
# The BinaryIO class provides empty methods, which at runtime means that
# ``__getattr__`` on the proxy classes won't get called for the methods that
# should delegate to the internal object. So to avoid runtime changes because
# of the required typing inheritance, just use BinaryIO when typechecking, and
# ``object`` otherwise.
if TYPE_CHECKING:
from typing import (
BinaryIO,
Union,
)
from . import (
node,
posix,
util,
windows,
)
BinaryIO_Proxy = BinaryIO
CacheStat = Union[
posix.cachestat,
windows.cachestat,
util.uncacheable_cachestat,
]
NodeConstants = node.sha1nodeconstants
else:
from typing import Any
BinaryIO_Proxy = object
CacheStat = Any
NodeConstants = Any
# scmutil.getuipathfn() related callback.
UiPathFn = Callable[[bytes], bytes]