Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ repos:

- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.15.6
rev: v0.16.0
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,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, "
Expand Down
8 changes: 4 additions & 4 deletions src/compressed_lists/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
finally:
del version, PackageNotFoundError

from .partition import Partitioning
from .base import CompressedList
from .integer_list import CompressedIntegerList
from .string_list import CompressedStringList, CompressedCharacterList
from .biocframe_list import CompressedSplitBiocFrameList
from .bool_list import CompressedBooleanList
from .float_list import CompressedFloatList
from .integer_list import CompressedIntegerList
from .numpy_list import CompressedNumpyList
from .biocframe_list import CompressedSplitBiocFrameList
from .partition import Partitioning
from .split_generic import splitAsCompressedList
from .string_list import CompressedCharacterList, CompressedStringList
27 changes: 14 additions & 13 deletions src/compressed_lists/base.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
from __future__ import annotations

from typing import Any, Callable, Dict, Iterator, List, Optional, Sequence, Union
from collections.abc import Callable, Iterator, Sequence
from typing import Any
from warnings import warn

import biocutils as ut
from biocframe import BiocFrame
import numpy as np
from biocframe import BiocFrame

from .partition import Partitioning

Expand Down Expand Up @@ -59,8 +60,8 @@ def __init__(
unlist_data: Any,
partitioning: Partitioning,
element_type: Any = None,
element_metadata: Optional[BiocFrame] = None,
metadata: Optional[Union[Dict[str, Any], ut.NamedList]] = None,
element_metadata: BiocFrame | None = None,
metadata: dict[str, Any] | ut.NamedList | None = None,
_validate: bool = True,
):
"""Initialize a CompressedList.
Expand Down Expand Up @@ -205,8 +206,8 @@ def __str__(self) -> str:

output += f"partitioning: {ut.print_truncated_list(self._partitioning)}\n"

output += f"element_metadata({str(len(self._element_metadata))} rows): {ut.print_truncated_list(list(self._element_metadata.get_column_names()), sep=' ', include_brackets=False, transform=lambda y: y)}\n"
output += f"metadata({str(len(self._metadata))}): {ut.print_truncated_list(list(self._metadata.keys()), sep=' ', include_brackets=False, transform=lambda y: y)}\n"
output += f"element_metadata({len(self._element_metadata)!s} rows): {ut.print_truncated_list(list(self._element_metadata.get_column_names()), sep=' ', include_brackets=False, transform=lambda y: y)}\n"
output += f"metadata({len(self._metadata)!s}): {ut.print_truncated_list(list(self._metadata.keys()), sep=' ', include_brackets=False, transform=lambda y: y)}\n"

return output

Expand Down Expand Up @@ -240,7 +241,7 @@ def paritioning(self) -> Partitioning:
######>> names <<######
#######################

def get_names(self) -> Optional[ut.Names]:
def get_names(self) -> ut.Names | None:
"""Get the names of list elements."""
return self._partitioning.get_names()

Expand All @@ -264,7 +265,7 @@ def set_names(self, names: Sequence[str], in_place: bool = False) -> CompressedL
return output

@property
def names(self) -> Optional[ut.Names]:
def names(self) -> ut.Names | None:
"""Alias for :py:attr:`~get_names`."""
return self._partitioning.get_names()

Expand Down Expand Up @@ -379,7 +380,7 @@ def element_metadata(self, element_metadata: BiocFrame):
######>> accessors <<#####
##########################

def __getitem__(self, key: Union[int, str, slice]) -> Any:
def __getitem__(self, key: int | str | slice) -> Any:
"""Get an element or slice of elements from the list.

Args:
Expand Down Expand Up @@ -458,8 +459,8 @@ def extract_range(self, start: int, end: int) -> Any:
def from_list(
cls,
lst: Any,
names: Optional[Union[ut.Names, Sequence[str]]] = None,
metadata: Optional[Union[Dict[str, Any], ut.NamedList]] = None,
names: ut.Names | Sequence[str] | None = None,
metadata: dict[str, Any] | ut.NamedList | None = None,
) -> CompressedList:
"""Create a CompressedList from a regular list.

Expand Down Expand Up @@ -496,7 +497,7 @@ def from_list(
######>> coercions <<######
###########################

def to_list(self) -> List[List[Any]]:
def to_list(self) -> list[list[Any]]:
"""Convert to a regular Python list.

Returns:
Expand All @@ -511,7 +512,7 @@ def to_list(self) -> List[List[Any]]:

return result

def as_list(self) -> List[List[Any]]:
def as_list(self) -> list[list[Any]]:
"""Alias to :py:meth:`~to_list`"""
return self.to_list()

Expand Down
25 changes: 13 additions & 12 deletions src/compressed_lists/biocframe_list.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from __future__ import annotations

from typing import Any, Dict, List, Optional, Sequence, Union
from collections.abc import Sequence
from typing import Any

import biocutils as ut
from biocframe import BiocFrame
Expand All @@ -23,8 +24,8 @@ def __init__(
self,
unlist_data: BiocFrame,
partitioning: Partitioning,
element_metadata: Optional[dict] = None,
metadata: Optional[Union[Dict[str, Any], ut.NamedList]] = None,
element_metadata: dict | None = None,
metadata: dict[str, Any] | ut.NamedList | None = None,
**kwargs,
):
"""Initialize a CompressedSplitBiocFrameList.
Expand Down Expand Up @@ -55,9 +56,9 @@ def __init__(
@classmethod
def from_list(
cls,
lst: List[BiocFrame],
names: Optional[Union[ut.Names, Sequence[str]]] = None,
metadata: Optional[dict] = None,
lst: list[BiocFrame],
names: ut.Names | Sequence[str] | None = None,
metadata: dict | None = None,
) -> CompressedSplitBiocFrameList:
"""Create a `CompressedSplitBiocFrameList` from a regular list.

Expand All @@ -82,7 +83,7 @@ def from_list(
partitioning = Partitioning.from_list(lst, names)
return cls(unlist_data, partitioning, metadata=metadata)

def __getitem__(self, key: Union[int, str, slice]):
def __getitem__(self, key: int | str | slice):
"""Override to handle column extraction using `splitAsCompressedList`."""
if isinstance(key, str):
column_data = self._unlist_data.get_column(key)
Expand Down Expand Up @@ -154,8 +155,8 @@ def __str__(self) -> str:

output += f"partitioning: {ut.print_truncated_list(self._partitioning)}\n"

output += f"element_metadata({str(len(self._element_metadata))} rows): {ut.print_truncated_list(list(self._element_metadata.get_column_names()), sep=' ', include_brackets=False, transform=lambda y: y)}\n"
output += f"metadata({str(len(self._metadata))}): {ut.print_truncated_list(list(self._metadata.keys()), sep=' ', include_brackets=False, transform=lambda y: y)}\n"
output += f"element_metadata({len(self._element_metadata)!s} rows): {ut.print_truncated_list(list(self._element_metadata.get_column_names()), sep=' ', include_brackets=False, transform=lambda y: y)}\n"
output += f"metadata({len(self._metadata)!s}): {ut.print_truncated_list(list(self._metadata.keys()), sep=' ', include_brackets=False, transform=lambda y: y)}\n"

return output

Expand All @@ -179,9 +180,9 @@ def empty(cls, n: int):
@splitAsCompressedList.register
def _(
data: BiocFrame,
groups_or_partitions: Union[list, Partitioning],
names: Optional[Union[ut.Names, Sequence[str]]] = None,
metadata: Optional[dict] = None,
groups_or_partitions: list | Partitioning,
names: ut.Names | Sequence[str] | None = None,
metadata: dict | None = None,
) -> CompressedSplitBiocFrameList:
"""Handle lists of BiocFrame objects."""

Expand Down
13 changes: 7 additions & 6 deletions src/compressed_lists/bool_list.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import Any, Dict, Optional, Sequence, Union
from collections.abc import Sequence
from typing import Any
from warnings import warn

import biocutils as ut
Expand All @@ -19,8 +20,8 @@ def __init__(
self,
unlist_data: ut.BooleanList,
partitioning: Partitioning,
element_metadata: Optional[dict] = None,
metadata: Optional[Union[Dict[str, Any], ut.NamedList]] = None,
element_metadata: dict | None = None,
metadata: dict[str, Any] | ut.NamedList | None = None,
**kwargs,
):
"""Initialize a CompressedBooleanList.
Expand Down Expand Up @@ -57,9 +58,9 @@ def __init__(
@splitAsCompressedList.register
def _(
data: ut.BooleanList,
groups_or_partitions: Union[list, Partitioning],
names: Optional[Union[ut.Names, Sequence[str]]] = None,
metadata: Optional[dict] = None,
groups_or_partitions: list | Partitioning,
names: ut.Names | Sequence[str] | None = None,
metadata: dict | None = None,
) -> CompressedBooleanList:
"""Handle lists of booleans."""

Expand Down
13 changes: 7 additions & 6 deletions src/compressed_lists/float_list.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import Any, Dict, Optional, Sequence, Union
from collections.abc import Sequence
from typing import Any
from warnings import warn

import biocutils as ut
Expand All @@ -19,8 +20,8 @@ def __init__(
self,
unlist_data: ut.FloatList,
partitioning: Partitioning,
element_metadata: Optional[dict] = None,
metadata: Optional[Union[Dict[str, Any], ut.NamedList]] = None,
element_metadata: dict | None = None,
metadata: dict[str, Any] | ut.NamedList | None = None,
**kwargs,
):
"""Initialize a CompressedFloatList.
Expand Down Expand Up @@ -57,9 +58,9 @@ def __init__(
@splitAsCompressedList.register
def _(
data: ut.FloatList,
groups_or_partitions: Union[list, Partitioning],
names: Optional[Union[ut.Names, Sequence[str]]] = None,
metadata: Optional[dict] = None,
groups_or_partitions: list | Partitioning,
names: ut.Names | Sequence[str] | None = None,
metadata: dict | None = None,
) -> CompressedFloatList:
"""Handle lists of floats."""

Expand Down
13 changes: 7 additions & 6 deletions src/compressed_lists/integer_list.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import Any, Dict, Optional, Sequence, Union
from collections.abc import Sequence
from typing import Any
from warnings import warn

import biocutils as ut
Expand All @@ -19,8 +20,8 @@ def __init__(
self,
unlist_data: ut.IntegerList,
partitioning: Partitioning,
element_metadata: Optional[dict] = None,
metadata: Optional[Union[Dict[str, Any], ut.NamedList]] = None,
element_metadata: dict | None = None,
metadata: dict[str, Any] | ut.NamedList | None = None,
**kwargs,
):
"""Initialize a CompressedIntegerList.
Expand Down Expand Up @@ -57,9 +58,9 @@ def __init__(
@splitAsCompressedList.register
def _(
data: ut.IntegerList,
groups_or_partitions: Union[list, Partitioning],
names: Optional[Union[ut.Names, Sequence[str]]] = None,
metadata: Optional[dict] = None,
groups_or_partitions: list | Partitioning,
names: ut.Names | Sequence[str] | None = None,
metadata: dict | None = None,
) -> CompressedIntegerList:
"""Handle lists of integers."""

Expand Down
19 changes: 10 additions & 9 deletions src/compressed_lists/numpy_list.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from __future__ import annotations

from typing import Any, Dict, List, Optional, Sequence, Union
from collections.abc import Sequence
from typing import Any
from warnings import warn

import biocutils as ut
Expand All @@ -22,8 +23,8 @@ def __init__(
self,
unlist_data: np.ndarray,
partitioning: Partitioning,
element_metadata: Optional[dict] = None,
metadata: Optional[Union[Dict[str, Any], ut.NamedList]] = None,
element_metadata: dict | None = None,
metadata: dict[str, Any] | ut.NamedList | None = None,
**kwargs,
):
"""Initialize a CompressedNumpyList.
Expand Down Expand Up @@ -62,9 +63,9 @@ def __init__(
@classmethod
def from_list(
cls,
lst: List[np.ndarray],
names: Optional[Union[ut.Names, Sequence[str]]] = None,
metadata: Optional[dict] = None,
lst: list[np.ndarray],
names: ut.Names | Sequence[str] | None = None,
metadata: dict | None = None,
) -> CompressedNumpyList:
"""
Create a `CompressedNumpyList` from a list of NumPy vectors.
Expand Down Expand Up @@ -95,9 +96,9 @@ def from_list(
@splitAsCompressedList.register
def _(
data: np.ndarray,
groups_or_partitions: Union[list, Partitioning],
names: Optional[Union[ut.Names, Sequence[str]]] = None,
metadata: Optional[dict] = None,
groups_or_partitions: list | Partitioning,
names: ut.Names | Sequence[str] | None = None,
metadata: dict | None = None,
) -> CompressedNumpyList:
"""Handle NumPy arrays."""

Expand Down
Loading
Loading