codekingpro/portable-devtools
114k
1from collections.abc import Callable, Iterable, Sequence
2from typing import (
3 Any,
4 ClassVar,
5 Final,
6 Literal,
7 TypedDict,
8 TypeVar,
9 Unpack,
10 overload,
11 type_check_only,
12)
13
14import numpy as np
15import numpy.typing as npt
16from numpy._typing._dtype_like import _DTypeLikeNested
17
18_T = TypeVar("_T")
19
20@type_check_only
21class _NameValidatorKwargs(TypedDict, total=False):
22 excludelist: Iterable[str] | None
23 deletechars: Iterable[str] | None
24 case_sensitive: Literal["upper", "lower"] | bool | None
25 replace_space: str
26
27###
28
29__docformat__: Final = "restructuredtext en"
30
31class ConverterError(Exception): ...
32class ConverterLockError(ConverterError): ...
33class ConversionWarning(UserWarning): ...
34
35class LineSplitter:
36 delimiter: str | int | Iterable[int] | None
37 comments: str
38 encoding: str | None
39
40 def __init__(
41 self,
42 /,
43 delimiter: str | bytes | int | Iterable[int] | None = None,
44 comments: str | bytes = "#",
45 autostrip: bool = True,
46 encoding: str | None = None,
47 ) -> None: ...
48 def __call__(self, /, line: str | bytes) -> list[str]: ...
49 def autostrip(self, /, method: Callable[[_T], Iterable[str]]) -> Callable[[_T], list[str]]: ...
50
51class NameValidator:
52 defaultexcludelist: ClassVar[Sequence[str]] = ...
53 defaultdeletechars: ClassVar[frozenset[str]] = ...
54 excludelist: list[str]
55 deletechars: set[str]
56 case_converter: Callable[[str], str]
57 replace_space: str
58
59 def __init__(
60 self,
61 /,
62 excludelist: Iterable[str] | None = None,
63 deletechars: Iterable[str] | None = None,
64 case_sensitive: Literal["upper", "lower"] | bool | None = None,
65 replace_space: str = "_",
66 ) -> None: ...
67 def __call__(self, /, names: Iterable[str], defaultfmt: str = "f%i", nbfields: int | None = None) -> tuple[str, ...]: ...
68 def validate(self, /, names: Iterable[str], defaultfmt: str = "f%i", nbfields: int | None = None) -> tuple[str, ...]: ...
69
70class StringConverter:
71 func: Callable[[str], Any] | None
72 default: Any
73 missing_values: set[str]
74 type: np.dtype[np.datetime64] | np.generic
75
76 def __init__(
77 self,
78 /,
79 dtype_or_func: npt.DTypeLike | None = None,
80 default: None = None,
81 missing_values: Iterable[str] | None = None,
82 locked: bool = False,
83 ) -> None: ...
84 def update(
85 self,
86 /,
87 func: Callable[[str], Any],
88 default: object | None = None,
89 testing_value: str | None = None,
90 missing_values: str = "",
91 locked: bool = False,
92 ) -> None: ...
93 #
94 def __call__(self, /, value: str) -> Any: ...
95 def upgrade(self, /, value: str) -> Any: ...
96 def iterupgrade(self, /, value: Iterable[str] | str) -> None: ...
97
98 #
99 @classmethod
100 def upgrade_mapper(cls, func: Callable[[str], Any], default: object | None = None) -> None: ...
101
102def _decode_line(line: str | bytes, encoding: str | None = None) -> str: ...
103def _is_string_like(obj: object) -> bool: ...
104def _is_bytes_like(obj: object) -> bool: ...
105def has_nested_fields(ndtype: np.dtype[np.void]) -> bool: ...
106def flatten_dtype(ndtype: np.dtype[np.void], flatten_base: bool = False) -> type[np.dtype]: ...
107@overload
108def str2bool(value: Literal["false", "False", "FALSE"]) -> Literal[False]: ...
109@overload
110def str2bool(value: Literal["true", "True", "TRUE"]) -> Literal[True]: ...
111def easy_dtype(
112 ndtype: str | Sequence[_DTypeLikeNested],
113 names: str | Sequence[str] | None = None,
114 defaultfmt: str = "f%i",
115 **validationargs: Unpack[_NameValidatorKwargs],
116) -> np.dtype[np.void]: ...
117 