From 5dd082ea5440c0c067e8416440d0fee09f635e46 Mon Sep 17 00:00:00 2001 From: Jayaram Kancherla Date: Wed, 21 Jun 2023 18:05:15 -0700 Subject: [PATCH] check for order, add type hints for slice --- src/filebackedarray/H5Dense.py | 9 ++++++++- src/filebackedarray/H5Sparse.py | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/filebackedarray/H5Dense.py b/src/filebackedarray/H5Dense.py index 7087a06..eb94d0a 100644 --- a/src/filebackedarray/H5Dense.py +++ b/src/filebackedarray/H5Dense.py @@ -1,6 +1,7 @@ from typing import Optional, Sequence, Tuple, Union import h5py +import numpy as np from .utils import _check_indices, infer_h5_dataset @@ -31,6 +32,12 @@ def __init__(self, path: str, group: str, order: str = "C") -> None: self._h5file = h5py.File(path, mode="r") self._dataset = self._h5file[group] self._dataset_info = infer_h5_dataset(self._dataset) + + if order not in ("C", "F"): + raise ValueError( + "order must be C (c-style, row-major) or F (fortran-style, column-major)" + ) + self._order = order if self._dataset_info.format != "dense": @@ -71,7 +78,7 @@ def mat_format(self) -> str: def __getitem__( self, args: Tuple[Union[slice, Sequence[int]], Optional[Union[slice, Sequence[int]]]], - ): + ) -> np.ndarray: if len(args) == 0: raise ValueError("Arguments must contain one slice") diff --git a/src/filebackedarray/H5Sparse.py b/src/filebackedarray/H5Sparse.py index 6f255f7..da225aa 100644 --- a/src/filebackedarray/H5Sparse.py +++ b/src/filebackedarray/H5Sparse.py @@ -1,6 +1,7 @@ from typing import Optional, Sequence, Tuple, Union import h5py +import scipy.sparse as sp from .utils import _check_indices, _slice_h5_sparse, infer_h5_dataset @@ -67,7 +68,7 @@ def mat_format(self) -> str: def __getitem__( self, args: Tuple[Union[slice, Sequence[int]], Optional[Union[slice, Sequence[int]]]], - ): + ) -> sp.spmatrix: if len(args) == 0: raise ValueError("Arguments must contain one slice")