Mercurial > public > mercurial-scm > hg-stable
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 |
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 |