-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Expand file tree
/
Copy pathinifile.pyi
More file actions
130 lines (122 loc) · 4.78 KB
/
inifile.pyi
File metadata and controls
130 lines (122 loc) · 4.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
from _typeshed import StrPath, SupportsKeysAndGetItem
from collections.abc import Container, Iterable, Iterator, Mapping, MutableMapping, Sequence
from typing import Literal, TypeVar, overload
from typing_extensions import TypeAlias
from uuid import UUID
_T = TypeVar("_T")
_Token: TypeAlias = (
tuple[Literal["EMPTY"], str, None]
| tuple[Literal["COMMENT"], str, None]
| tuple[Literal["SECTION"], str, tuple[str, ...]]
| tuple[Literal["KV"], str, tuple[str, str, str]]
)
def get_app_dir(app_name: str, roaming: bool = ..., force_posix: bool = ...) -> str: ...
class Dialect:
def __init__(
self,
ns_sep: str = ...,
kv_sep: str = ...,
quotes: Sequence[str] = ...,
true: Sequence[str] = ...,
false: Sequence[str] = ...,
comments: Container[str] = ...,
allow_escaping: bool = ...,
linesep: str | None = ...,
) -> None: ...
@property
def ns_sep(self) -> str: ...
@property
def kv_sep(self) -> str: ...
@property
def quotes(self) -> Sequence[str]: ...
@property
def true(self) -> Sequence[str]: ...
@property
def false(self) -> Sequence[str]: ...
@property
def comments(self) -> Container[str]: ...
@property
def allow_escaping(self) -> bool: ...
@property
def linesep(self) -> str | None: ...
def get_actual_linesep(self) -> str: ...
def get_strippable_lineseps(self) -> str: ...
def kv_serialize(self, key: str, val: str | None) -> str | None: ...
def escape(self, value: str, quote: str | None = ...) -> str: ...
def unescape(self, value: str) -> str: ...
def to_string(self, value: bool | float | str) -> str: ...
def dict_from_iterable(self, iterable: Iterable[str]) -> MutableMapping[str, str]: ...
def tokenize(self, iterable: Iterable[str]) -> Iterator[_Token]: ...
def update_tokens(
self, old_tokens: Iterable[_Token], changes: SupportsKeysAndGetItem[str, str] | Iterable[tuple[str, str]]
) -> list[_Token]: ...
default_dialect: Dialect
class IniData(MutableMapping[str, str]):
def __init__(self, mapping: Mapping[str, str] | None = ..., dialect: Dialect | None = ...) -> None: ...
@property
def dialect(self) -> Dialect: ...
@property
def is_dirty(self) -> bool: ...
def get_updated_lines(self, line_iter: Iterable[_Token] | None = ...) -> list[_Token]: ...
def discard(self) -> None: ...
def rollover(self) -> None: ...
def to_dict(self) -> dict[str, str]: ...
def __len__(self) -> int: ...
@overload
def get(self, name: str) -> str | None: ...
@overload
def get(self, name: str, default: _T) -> str | _T: ...
@overload
def get_ascii(self, name: str) -> str | None: ...
@overload
def get_ascii(self, name: str, default: _T) -> str | _T: ...
@overload
def get_bool(self, name: str) -> bool: ...
@overload
def get_bool(self, name: str, default: _T) -> bool | _T: ...
@overload
def get_int(self, name: str) -> int | None: ...
@overload
def get_int(self, name: str, default: _T = ...) -> int | _T: ...
@overload
def get_float(self, name: str) -> float | None: ...
@overload
def get_float(self, name: str, default: _T) -> float | _T: ...
@overload
def get_uuid(self, name: str) -> UUID | None: ...
@overload
def get_uuid(self, name: str, default: _T) -> UUID | _T: ...
def itersections(self) -> Iterator[str]: ...
def sections(self) -> Iterator[str]: ...
def iteritems(self) -> Iterator[tuple[str, str]]: ...
def iterkeys(self) -> Iterator[str]: ...
def itervalues(self) -> Iterator[str]: ...
# NB: keys, items, values currently return a generator, which is
# incompatible with the views returned by Mappings
def items(self) -> Iterator[tuple[str, str]]: ... # type: ignore[override]
def keys(self) -> Iterator[str]: ... # type: ignore[override]
def __iter__(self) -> Iterator[str]: ...
def values(self) -> Iterator[str]: ... # type: ignore[override]
def section_as_dict(self, section: str) -> dict[str, str]: ...
def __getitem__(self, name: str) -> str: ...
def __setitem__(self, name: str, value: str) -> None: ...
def __delitem__(self, name: str) -> None: ...
class IniFile(IniData):
def __init__(self, filename: StrPath, encoding: str | None = ..., dialect: Dialect | None = ...) -> None: ...
@property
def filename(self) -> str: ...
@property
def encoding(self) -> str | None: ...
@property
def is_new(self) -> bool: ...
def save(self, create_folder: bool = ...) -> None: ...
class AppIniFile(IniFile):
def __init__(
self,
app_name: str,
filename: StrPath,
roaming: bool = ...,
force_posix: bool = ...,
encoding: str | None = ...,
dialect: Dialect | None = ...,
) -> None: ...