annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
52755
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
1 # mercurial/interfaces/types.py - type alias for interfaces
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
2 #
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
3 # This software may be used and distributed according to the terms of the
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
4 # GNU General Public License version 2 or any later version.
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
5 #
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
6 # This is the main entry point for Mercurial code writing type annotations.
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
7 #
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
8 # The general principle can be summarized when dealing with <FooBar> object:
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
9 # - to type your code: use FooBarT from `mercurial.interface.types`
52762
fecda9f44e57 interfaces: minor documentation tweaks to the `types` module
Matt Harbison <matt_harbison@yahoo.com>
parents: 52755
diff changeset
10 # - to subclass <FooBar>: use IFooBar from `mercurial.interface.foo_bar`
52755
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
11
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
12 from __future__ import annotations
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
13
52766
4eede65d68cf lint: add comments for disabling unused import warnings where appropriate
Matt Harbison <matt_harbison@yahoo.com>
parents: 52764
diff changeset
14 from ._basetypes import ( # noqa: F401 (ignore imported but not used)
52767
ae2848198462 typing: add annotation to the public API of the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52766
diff changeset
15 CallbackCategoryT,
52764
2a5450ecde20 interfaces: direct import the basetypes into the `types` module
Matt Harbison <matt_harbison@yahoo.com>
parents: 52762
diff changeset
16 FsPathT,
2a5450ecde20 interfaces: direct import the basetypes into the `types` module
Matt Harbison <matt_harbison@yahoo.com>
parents: 52762
diff changeset
17 HgPathT,
52914
3e8a3db5f5e8 typing: introduce a few basic alias for common types
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52768
diff changeset
18 RepoT,
3e8a3db5f5e8 typing: introduce a few basic alias for common types
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52768
diff changeset
19 UiT,
52764
2a5450ecde20 interfaces: direct import the basetypes into the `types` module
Matt Harbison <matt_harbison@yahoo.com>
parents: 52762
diff changeset
20 UserMsgT,
52767
ae2848198462 typing: add annotation to the public API of the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52766
diff changeset
21 VfsKeyT,
52914
3e8a3db5f5e8 typing: introduce a few basic alias for common types
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52768
diff changeset
22 VfsT,
52764
2a5450ecde20 interfaces: direct import the basetypes into the `types` module
Matt Harbison <matt_harbison@yahoo.com>
parents: 52762
diff changeset
23 )
2a5450ecde20 interfaces: direct import the basetypes into the `types` module
Matt Harbison <matt_harbison@yahoo.com>
parents: 52762
diff changeset
24
52755
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
25 from . import (
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
26 matcher,
52768
a7dcb7c1ff5a typing: add a transaction protocol
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52767
diff changeset
27 transaction,
52755
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
28 )
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
29
5c48fd4c0e68 typing: introduce a `types` module and a MatcherT alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
30 MatcherT = matcher.IMatcher
52768
a7dcb7c1ff5a typing: add a transaction protocol
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52767
diff changeset
31 TransactionT = transaction.ITransaction