view mercurial/interfaces/types.py @ 52971:469b9a628b51

dirstatemap: update, document and type the identity tracking This new form should hopefully be clearer and less error prone.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 18 Feb 2025 22:24:08 +0100
parents 3e8a3db5f5e8
children
line wrap: on
line source

# mercurial/interfaces/types.py - type alias for interfaces
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
#
# This is the main entry point for Mercurial code writing type annotations.
#
# The general principle can be summarized when dealing with <FooBar> object:
# - to type your code: use FooBarT from `mercurial.interface.types`
# - to subclass <FooBar>: use IFooBar from `mercurial.interface.foo_bar`

from __future__ import annotations

from ._basetypes import (  # noqa: F401 (ignore imported but not used)
    CallbackCategoryT,
    FsPathT,
    HgPathT,
    RepoT,
    UiT,
    UserMsgT,
    VfsKeyT,
    VfsT,
)

from . import (
    matcher,
    transaction,
)

MatcherT = matcher.IMatcher
TransactionT = transaction.ITransaction