Mercurial > public > mercurial-scm > hg-stable
view mercurial/typelib.py @ 51902:1c5810ce737e
typing: add `from __future__ import annotations` to remaining source files
Most of these look newer than when the original imports referenced in the
previous commit were dropped, so these weren't covered by the backout. These
were found with:
hg files mercurial hgext hgext3rd -I '**.py' -X '**/thirdparty' \
| xargs grep -L 'from __future__ import annotations'
All of the `__init__.py` files that finds are empty, so those were ignored and
the rest manually edited.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Thu, 12 Sep 2024 16:27:58 -0400 |
parents | 43460c311c0c |
children | 82e2c99c84f3 |
line wrap: on
line source
# 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, windows, ) BinaryIO_Proxy = BinaryIO CacheStat = Union[posix.cachestat, windows.cachestat] NodeConstants = node.sha1nodeconstants else: from typing import Any BinaryIO_Proxy = object CacheStat = Any NodeConstants = Any # scmutil.getuipathfn() related callback. UiPathFn = Callable[[bytes], bytes]