Mercurial > public > mercurial-scm > hg
annotate mercurial/interfaces/status.py @ 53042:cdd7bf612c7b stable tip
bundle-spec: properly format boolean parameter (issue6960)
This was breaking automatic clone bundle generation. This changeset fixes it and
add a test to catch it in the future.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 11 Mar 2025 02:29:42 +0100 |
parents | f5d134e57f51 |
children |
rev | line source |
---|---|
52450
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
1 # status.py - Type annotations for status related objects |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
2 # |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
3 # Copyright Matt Harbison <mharbison72@gmail.com> |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
4 # |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
6 # GNU General Public License version 2 or any later version. |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
7 |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
8 from __future__ import annotations |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
9 |
52451
f5d134e57f51
scmutil: explicitly subclass the `Status` protocol
Matt Harbison <matt_harbison@yahoo.com>
parents:
52450
diff
changeset
|
10 import abc |
f5d134e57f51
scmutil: explicitly subclass the `Status` protocol
Matt Harbison <matt_harbison@yahoo.com>
parents:
52450
diff
changeset
|
11 |
52450
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
12 from typing import ( |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
13 Iterator, |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
14 Protocol, |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
15 ) |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
16 |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
17 |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
18 class Status(Protocol): |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
19 """Struct with a list of files per status. |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
20 |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
21 The 'deleted', 'unknown' and 'ignored' properties are only |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
22 relevant to the working copy. |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
23 """ |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
24 |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
25 modified: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
26 """The list of files with modifications.""" |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
27 |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
28 added: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
29 """The list of files that started being tracked.""" |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
30 |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
31 removed: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
32 """The list of files that stopped being tracked.""" |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
33 |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
34 deleted: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
35 """The list of files in the working directory that are deleted from the |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
36 file system (but not in the removed state).""" |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
37 |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
38 unknown: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
39 """The list of files in the working directory that are not tracked.""" |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
40 |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
41 ignored: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
42 """The list of files in the working directory that are ignored.""" |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
43 |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
44 clean: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
45 """The list of files that are not in any other state.""" |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
46 |
52451
f5d134e57f51
scmutil: explicitly subclass the `Status` protocol
Matt Harbison <matt_harbison@yahoo.com>
parents:
52450
diff
changeset
|
47 @abc.abstractmethod |
52450
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
48 def __iter__(self) -> Iterator[list[bytes]]: |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
49 """Iterates over each of the categories of file lists.""" |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
50 |
52451
f5d134e57f51
scmutil: explicitly subclass the `Status` protocol
Matt Harbison <matt_harbison@yahoo.com>
parents:
52450
diff
changeset
|
51 @abc.abstractmethod |
52450
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
52 def __repr__(self) -> str: |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
53 """Creates a string representation of the file lists.""" |