_iotools.pyi 3.6 KB

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