author | Matt Harbison <matt_harbison@yahoo.com> |
Sun, 08 Dec 2024 23:52:12 -0500 | |
changeset 52450 | a1c0f19e7cb4 |
child 52451 | f5d134e57f51 |
permissions | -rw-r--r-- |
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 |
|
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
10 |
from typing import ( |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
11 |
Iterator, |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
12 |
Protocol, |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
13 |
) |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
14 |
|
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 |
class Status(Protocol): |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
17 |
"""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
|
18 |
|
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
19 |
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
|
20 |
relevant to the working copy. |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
21 |
""" |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
22 |
|
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
23 |
modified: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
24 |
"""The list of files with modifications.""" |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
25 |
|
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
26 |
added: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
27 |
"""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
|
28 |
|
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
29 |
removed: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
30 |
"""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
|
31 |
|
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
32 |
deleted: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
33 |
"""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
|
34 |
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
|
35 |
|
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
36 |
unknown: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
37 |
"""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
|
38 |
|
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
39 |
ignored: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
40 |
"""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
|
41 |
|
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
42 |
clean: list[bytes] |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
43 |
"""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
|
44 |
|
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
45 |
def __iter__(self) -> Iterator[list[bytes]]: |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
46 |
"""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
|
47 |
|
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
48 |
def __repr__(self) -> str: |
a1c0f19e7cb4
interfaces: add a Protocol class for `scmutil.status`
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff
changeset
|
49 |
"""Creates a string representation of the file lists.""" |