diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3f91485..7135fec 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -33,7 +33,7 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.15.6 + rev: v0.16.5 hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix] diff --git a/README.md b/README.md index f2ddafb..fc79db1 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ Let's mock up a dense array: ```python import numpy + data = numpy.random.rand(40, 50) tiledb.from_numpy("dense.tiledb", data) @@ -34,6 +35,7 @@ We can now represent it as a `TileDbArray`: ```python import tiledbarray + arr = tiledbarray.TileDbArray("dense.tiledb", attribute_name="") # <40 x 50> TileDbArray object of type 'float64' # [[0.96316214, 0.90187013, 0.55767551, ..., 0.81663263, 0.57660051, @@ -82,12 +84,10 @@ We can perform similar operations on a sparse matrix as well. Lets mock a sparse ```python dir_path = "sparse_array.tiledb" dom = tiledb.Domain( - tiledb.Dim(name="rows", domain=(0, 4), tile=5, dtype=np.int32), - tiledb.Dim(name="cols", domain=(0, 4), tile=5, dtype=np.int32), -) -schema = tiledb.ArraySchema( - domain=dom, sparse=True, attrs=[tiledb.Attr(name="", dtype=np.int32)] + tiledb.Dim(name="rows", domain=(0, 4), tile=5, dtype=np.int32), + tiledb.Dim(name="cols", domain=(0, 4), tile=5, dtype=np.int32), ) +schema = tiledb.ArraySchema(domain=dom, sparse=True, attrs=[tiledb.Attr(name="", dtype=np.int32)]) tiledb.SparseArray.create(f"{dir_path}", schema) tdb = tiledb.SparseArray(f"{dir_path}", mode="w") @@ -100,11 +100,13 @@ We can now represent this as a `TileDbArray`: ```python import tiledbarray + arr = tiledbarray.TileDbArray(dir_path, attribute_name="") -slices = (slice(0,3), [2, 4]) +slices = (slice(0, 3), [2, 4]) import delayedarray + subset = delayedarray.extract_sparse_array(arr, (*slices,)) print(subset) # <3 x 2> SparseNdarray object of type 'int32' diff --git a/setup.py b/setup.py index 4a17468..68babf5 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ if __name__ == "__main__": try: setup(use_scm_version={"version_scheme": "no-guess-dev"}) - except: # noqa + except: print( "\n\nAn error occurred while building the project, " "please ensure you have the most updated version of setuptools, " diff --git a/src/tiledbarray/TileDBArraySeed.py b/src/tiledbarray/TileDBArraySeed.py index a8a9c86..ba1d10d 100644 --- a/src/tiledbarray/TileDBArraySeed.py +++ b/src/tiledbarray/TileDBArraySeed.py @@ -1,4 +1,4 @@ -from typing import List, Optional, Sequence, Tuple, Union +from collections.abc import Sequence import numpy import tiledb @@ -68,7 +68,7 @@ def dtype(self) -> numpy.dtype: return self._dtype @property - def shape(self) -> Tuple[int, ...]: + def shape(self) -> tuple[int, ...]: """ Returns: Tuple containing the dimensions of this array. @@ -100,7 +100,7 @@ def is_sparse(self) -> bool: return self._is_sparse @property - def dimnames(self) -> List[str]: + def dimnames(self) -> list[str]: """ Returns: Names of each dimension of the matrix. @@ -141,7 +141,7 @@ def _sanitize_subset(subset, dimlength): return sorted(subset) -def _extract_array(x: TileDbArraySeed, subset: Tuple[Sequence[int], ...]): +def _extract_array(x: TileDbArraySeed, subset: tuple[Sequence[int], ...]): """Extract slices from a TileDB Array.""" _parsed_subset = [] @@ -168,7 +168,7 @@ def _extract_array(x: TileDbArraySeed, subset: Tuple[Sequence[int], ...]): @extract_dense_array.register -def extract_dense_array_TileDbArraySeed(x: TileDbArraySeed, subset: Tuple[Sequence[int], ...]) -> numpy.ndarray: +def extract_dense_array_TileDbArraySeed(x: TileDbArraySeed, subset: tuple[Sequence[int], ...]) -> numpy.ndarray: """See :py:meth:`~delayedarray.extract_dense_array.extract_dense_array`. Subset parameter is passed to tiledb's @@ -206,7 +206,7 @@ def _SparseNdarray_contents_from_coordinates(rows, cols, vals, shape, val_dtype, @extract_sparse_array.register -def extract_sparse_array_TileDbArraySeed(x: TileDbArraySeed, subset: Tuple[Sequence[int], ...]) -> SparseNdarray: +def extract_sparse_array_TileDbArraySeed(x: TileDbArraySeed, subset: tuple[Sequence[int], ...]) -> SparseNdarray: """See :py:meth:`~delayedarray.extract_sparse_array.extract_sparse_array`. Subset parameter is passed to tiledb's @@ -234,8 +234,8 @@ class TileDbArray(DelayedArray): def __init__( self, - path: Union[str, TileDbArraySeed], - attribute_name: Optional[str], + path: str | TileDbArraySeed, + attribute_name: str | None, ): """To construct a ``TileDbArray`` from an existing :py:class:`~TileDbArraySeed`, use :py:meth:`~delayedarray.wrap.wrap` instead. @@ -255,7 +255,7 @@ def __init__( seed = TileDbArraySeed(path, attribute_name) - super(TileDbArray, self).__init__(seed) + super().__init__(seed) @property def path(self) -> str: @@ -266,7 +266,7 @@ def path(self) -> str: return self.seed.path @property - def attribute_name(self) -> Optional[str]: + def attribute_name(self) -> str | None: """ Returns: Name of the TileDB attribute containing the matrix contents. diff --git a/src/tiledbarray/__init__.py b/src/tiledbarray/__init__.py index 48ce606..dba0d15 100644 --- a/src/tiledbarray/__init__.py +++ b/src/tiledbarray/__init__.py @@ -15,4 +15,4 @@ finally: del version, PackageNotFoundError -from .TileDBArraySeed import TileDbArraySeed, TileDbArray +from .TileDBArraySeed import TileDbArray, TileDbArraySeed