typelib.py
55 lines
| 1.4 KiB
| text/x-python
|
PythonLexer
/ mercurial / typelib.py
Matt Harbison
|
r50688 | # 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. | ||||
Matt Harbison
|
r52757 | from __future__ import annotations | ||
Matt Harbison
|
r50688 | import typing | ||
Matt Harbison
|
r52625 | from typing import ( | ||
Callable, | ||||
) | ||||
Matt Harbison
|
r50688 | # 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, | ||||
Matt Harbison
|
r52609 | Union, | ||
) | ||||
from . import ( | ||||
node, | ||||
posix, | ||||
r52995 | util, | |||
Matt Harbison
|
r52609 | windows, | ||
Matt Harbison
|
r50688 | ) | ||
BinaryIO_Proxy = BinaryIO | ||||
r52995 | CacheStat = Union[ | |||
posix.cachestat, | ||||
windows.cachestat, | ||||
util.uncacheable_cachestat, | ||||
] | ||||
Matt Harbison
|
r52609 | NodeConstants = node.sha1nodeconstants | ||
Matt Harbison
|
r50688 | else: | ||
Matt Harbison
|
r52609 | from typing import Any | ||
Matt Harbison
|
r50688 | BinaryIO_Proxy = object | ||
Matt Harbison
|
r52609 | CacheStat = Any | ||
NodeConstants = Any | ||||
Matt Harbison
|
r52625 | |||
# scmutil.getuipathfn() related callback. | ||||
UiPathFn = Callable[[bytes], bytes] | ||||