301 lines
9.2 KiB
Python
301 lines
9.2 KiB
Python
import types
|
|
import zipfile
|
|
from collections.abc import Callable, Collection, Iterable, Iterator, Mapping, Sequence
|
|
from re import Pattern
|
|
from typing import (
|
|
IO,
|
|
Any,
|
|
ClassVar,
|
|
Generic,
|
|
Protocol,
|
|
Self,
|
|
TypeAlias,
|
|
overload,
|
|
type_check_only,
|
|
)
|
|
from typing import Literal as L
|
|
|
|
from _typeshed import (
|
|
StrOrBytesPath,
|
|
StrPath,
|
|
SupportsKeysAndGetItem,
|
|
SupportsRead,
|
|
SupportsWrite,
|
|
)
|
|
from typing_extensions import TypeVar, deprecated, override
|
|
|
|
import numpy as np
|
|
from numpy._core.multiarray import packbits, unpackbits
|
|
from numpy._typing import ArrayLike, DTypeLike, NDArray, _DTypeLike, _SupportsArrayFunc
|
|
from numpy.ma.mrecords import MaskedRecords
|
|
|
|
from ._datasource import DataSource as DataSource
|
|
|
|
__all__ = [
|
|
"fromregex",
|
|
"genfromtxt",
|
|
"load",
|
|
"loadtxt",
|
|
"packbits",
|
|
"save",
|
|
"savetxt",
|
|
"savez",
|
|
"savez_compressed",
|
|
"unpackbits",
|
|
]
|
|
|
|
_T_co = TypeVar("_T_co", covariant=True)
|
|
_ScalarT = TypeVar("_ScalarT", bound=np.generic)
|
|
_ScalarT_co = TypeVar("_ScalarT_co", bound=np.generic, default=Any, covariant=True)
|
|
|
|
_FName: TypeAlias = StrPath | Iterable[str] | Iterable[bytes]
|
|
_FNameRead: TypeAlias = StrPath | SupportsRead[str] | SupportsRead[bytes]
|
|
_FNameWriteBytes: TypeAlias = StrPath | SupportsWrite[bytes]
|
|
_FNameWrite: TypeAlias = _FNameWriteBytes | SupportsWrite[str]
|
|
|
|
@type_check_only
|
|
class _SupportsReadSeek(SupportsRead[_T_co], Protocol[_T_co]):
|
|
def seek(self, offset: int, whence: int, /) -> object: ...
|
|
|
|
class BagObj(Generic[_T_co]):
|
|
def __init__(self, /, obj: SupportsKeysAndGetItem[str, _T_co]) -> None: ...
|
|
def __getattribute__(self, key: str, /) -> _T_co: ...
|
|
def __dir__(self) -> list[str]: ...
|
|
|
|
class NpzFile(Mapping[str, NDArray[_ScalarT_co]]):
|
|
_MAX_REPR_ARRAY_COUNT: ClassVar[int] = 5
|
|
|
|
zip: zipfile.ZipFile
|
|
fid: IO[str] | None
|
|
files: list[str]
|
|
allow_pickle: bool
|
|
pickle_kwargs: Mapping[str, Any] | None
|
|
f: BagObj[NpzFile[_ScalarT_co]]
|
|
|
|
#
|
|
def __init__(
|
|
self,
|
|
/,
|
|
fid: IO[Any],
|
|
own_fid: bool = False,
|
|
allow_pickle: bool = False,
|
|
pickle_kwargs: Mapping[str, object] | None = None,
|
|
*,
|
|
max_header_size: int = 10_000,
|
|
) -> None: ...
|
|
def __del__(self) -> None: ...
|
|
def __enter__(self) -> Self: ...
|
|
def __exit__(self, cls: type[BaseException] | None, e: BaseException | None, tb: types.TracebackType | None, /) -> None: ...
|
|
@override
|
|
def __len__(self) -> int: ...
|
|
@override
|
|
def __iter__(self) -> Iterator[str]: ...
|
|
@override
|
|
def __getitem__(self, key: str, /) -> NDArray[_ScalarT_co]: ...
|
|
def close(self) -> None: ...
|
|
|
|
# NOTE: Returns a `NpzFile` if file is a zip file;
|
|
# returns an `ndarray`/`memmap` otherwise
|
|
def load(
|
|
file: StrOrBytesPath | _SupportsReadSeek[bytes],
|
|
mmap_mode: L["r+", "r", "w+", "c"] | None = None,
|
|
allow_pickle: bool = False,
|
|
fix_imports: bool = True,
|
|
encoding: L["ASCII", "latin1", "bytes"] = "ASCII",
|
|
*,
|
|
max_header_size: int = 10_000,
|
|
) -> Any: ...
|
|
|
|
@overload
|
|
def save(file: _FNameWriteBytes, arr: ArrayLike, allow_pickle: bool = True) -> None: ...
|
|
@overload
|
|
@deprecated("The 'fix_imports' flag is deprecated in NumPy 2.1.")
|
|
def save(file: _FNameWriteBytes, arr: ArrayLike, allow_pickle: bool, fix_imports: bool) -> None: ...
|
|
@overload
|
|
@deprecated("The 'fix_imports' flag is deprecated in NumPy 2.1.")
|
|
def save(file: _FNameWriteBytes, arr: ArrayLike, allow_pickle: bool = True, *, fix_imports: bool) -> None: ...
|
|
|
|
#
|
|
def savez(file: _FNameWriteBytes, *args: ArrayLike, allow_pickle: bool = True, **kwds: ArrayLike) -> None: ...
|
|
|
|
#
|
|
def savez_compressed(file: _FNameWriteBytes, *args: ArrayLike, allow_pickle: bool = True, **kwds: ArrayLike) -> None: ...
|
|
|
|
# File-like objects only have to implement `__iter__` and,
|
|
# optionally, `encoding`
|
|
@overload
|
|
def loadtxt(
|
|
fname: _FName,
|
|
dtype: None = None,
|
|
comments: str | Sequence[str] | None = "#",
|
|
delimiter: str | None = None,
|
|
converters: Mapping[int | str, Callable[[str], Any]] | Callable[[str], Any] | None = None,
|
|
skiprows: int = 0,
|
|
usecols: int | Sequence[int] | None = None,
|
|
unpack: bool = False,
|
|
ndmin: L[0, 1, 2] = 0,
|
|
encoding: str | None = None,
|
|
max_rows: int | None = None,
|
|
*,
|
|
quotechar: str | None = None,
|
|
like: _SupportsArrayFunc | None = None,
|
|
) -> NDArray[np.float64]: ...
|
|
@overload
|
|
def loadtxt(
|
|
fname: _FName,
|
|
dtype: _DTypeLike[_ScalarT],
|
|
comments: str | Sequence[str] | None = "#",
|
|
delimiter: str | None = None,
|
|
converters: Mapping[int | str, Callable[[str], Any]] | Callable[[str], Any] | None = None,
|
|
skiprows: int = 0,
|
|
usecols: int | Sequence[int] | None = None,
|
|
unpack: bool = False,
|
|
ndmin: L[0, 1, 2] = 0,
|
|
encoding: str | None = None,
|
|
max_rows: int | None = None,
|
|
*,
|
|
quotechar: str | None = None,
|
|
like: _SupportsArrayFunc | None = None,
|
|
) -> NDArray[_ScalarT]: ...
|
|
@overload
|
|
def loadtxt(
|
|
fname: _FName,
|
|
dtype: DTypeLike,
|
|
comments: str | Sequence[str] | None = "#",
|
|
delimiter: str | None = None,
|
|
converters: Mapping[int | str, Callable[[str], Any]] | Callable[[str], Any] | None = None,
|
|
skiprows: int = 0,
|
|
usecols: int | Sequence[int] | None = None,
|
|
unpack: bool = False,
|
|
ndmin: L[0, 1, 2] = 0,
|
|
encoding: str | None = None,
|
|
max_rows: int | None = None,
|
|
*,
|
|
quotechar: str | None = None,
|
|
like: _SupportsArrayFunc | None = None,
|
|
) -> NDArray[Any]: ...
|
|
|
|
def savetxt(
|
|
fname: _FNameWrite,
|
|
X: ArrayLike,
|
|
fmt: str | Sequence[str] = "%.18e",
|
|
delimiter: str = " ",
|
|
newline: str = "\n",
|
|
header: str = "",
|
|
footer: str = "",
|
|
comments: str = "# ",
|
|
encoding: str | None = None,
|
|
) -> None: ...
|
|
|
|
@overload
|
|
def fromregex(
|
|
file: _FNameRead,
|
|
regexp: str | bytes | Pattern[Any],
|
|
dtype: _DTypeLike[_ScalarT],
|
|
encoding: str | None = None,
|
|
) -> NDArray[_ScalarT]: ...
|
|
@overload
|
|
def fromregex(
|
|
file: _FNameRead,
|
|
regexp: str | bytes | Pattern[Any],
|
|
dtype: DTypeLike,
|
|
encoding: str | None = None,
|
|
) -> NDArray[Any]: ...
|
|
|
|
@overload
|
|
def genfromtxt(
|
|
fname: _FName,
|
|
dtype: None = None,
|
|
comments: str = ...,
|
|
delimiter: str | int | Iterable[int] | None = ...,
|
|
skip_header: int = ...,
|
|
skip_footer: int = ...,
|
|
converters: Mapping[int | str, Callable[[str], Any]] | None = ...,
|
|
missing_values: Any = ...,
|
|
filling_values: Any = ...,
|
|
usecols: Sequence[int] | None = ...,
|
|
names: L[True] | str | Collection[str] | None = ...,
|
|
excludelist: Sequence[str] | None = ...,
|
|
deletechars: str = ...,
|
|
replace_space: str = ...,
|
|
autostrip: bool = ...,
|
|
case_sensitive: bool | L["upper", "lower"] = ...,
|
|
defaultfmt: str = ...,
|
|
unpack: bool | None = ...,
|
|
usemask: bool = ...,
|
|
loose: bool = ...,
|
|
invalid_raise: bool = ...,
|
|
max_rows: int | None = ...,
|
|
encoding: str = ...,
|
|
*,
|
|
ndmin: L[0, 1, 2] = ...,
|
|
like: _SupportsArrayFunc | None = ...,
|
|
) -> NDArray[Any]: ...
|
|
@overload
|
|
def genfromtxt(
|
|
fname: _FName,
|
|
dtype: _DTypeLike[_ScalarT],
|
|
comments: str = ...,
|
|
delimiter: str | int | Iterable[int] | None = ...,
|
|
skip_header: int = ...,
|
|
skip_footer: int = ...,
|
|
converters: Mapping[int | str, Callable[[str], Any]] | None = ...,
|
|
missing_values: Any = ...,
|
|
filling_values: Any = ...,
|
|
usecols: Sequence[int] | None = ...,
|
|
names: L[True] | str | Collection[str] | None = ...,
|
|
excludelist: Sequence[str] | None = ...,
|
|
deletechars: str = ...,
|
|
replace_space: str = ...,
|
|
autostrip: bool = ...,
|
|
case_sensitive: bool | L["upper", "lower"] = ...,
|
|
defaultfmt: str = ...,
|
|
unpack: bool | None = ...,
|
|
usemask: bool = ...,
|
|
loose: bool = ...,
|
|
invalid_raise: bool = ...,
|
|
max_rows: int | None = ...,
|
|
encoding: str = ...,
|
|
*,
|
|
ndmin: L[0, 1, 2] = ...,
|
|
like: _SupportsArrayFunc | None = ...,
|
|
) -> NDArray[_ScalarT]: ...
|
|
@overload
|
|
def genfromtxt(
|
|
fname: _FName,
|
|
dtype: DTypeLike,
|
|
comments: str = ...,
|
|
delimiter: str | int | Iterable[int] | None = ...,
|
|
skip_header: int = ...,
|
|
skip_footer: int = ...,
|
|
converters: Mapping[int | str, Callable[[str], Any]] | None = ...,
|
|
missing_values: Any = ...,
|
|
filling_values: Any = ...,
|
|
usecols: Sequence[int] | None = ...,
|
|
names: L[True] | str | Collection[str] | None = ...,
|
|
excludelist: Sequence[str] | None = ...,
|
|
deletechars: str = ...,
|
|
replace_space: str = ...,
|
|
autostrip: bool = ...,
|
|
case_sensitive: bool | L["upper", "lower"] = ...,
|
|
defaultfmt: str = ...,
|
|
unpack: bool | None = ...,
|
|
usemask: bool = ...,
|
|
loose: bool = ...,
|
|
invalid_raise: bool = ...,
|
|
max_rows: int | None = ...,
|
|
encoding: str = ...,
|
|
*,
|
|
ndmin: L[0, 1, 2] = ...,
|
|
like: _SupportsArrayFunc | None = ...,
|
|
) -> NDArray[Any]: ...
|
|
|
|
@overload
|
|
def recfromtxt(fname: _FName, *, usemask: L[False] = False, **kwargs: object) -> np.recarray[Any, np.dtype[np.record]]: ...
|
|
@overload
|
|
def recfromtxt(fname: _FName, *, usemask: L[True], **kwargs: object) -> MaskedRecords[Any, np.dtype[np.void]]: ...
|
|
|
|
@overload
|
|
def recfromcsv(fname: _FName, *, usemask: L[False] = False, **kwargs: object) -> np.recarray[Any, np.dtype[np.record]]: ...
|
|
@overload
|
|
def recfromcsv(fname: _FName, *, usemask: L[True], **kwargs: object) -> MaskedRecords[Any, np.dtype[np.void]]: ...
|