diff --git a/src/tests/test_numpy.py b/src/tests/test_numpy.py index ed576752c..5ce004096 100644 --- a/src/tests/test_numpy.py +++ b/src/tests/test_numpy.py @@ -8,7 +8,6 @@ from numpy import ( arange, array, - concatenate, eye, full, inf, @@ -28,7 +27,6 @@ from utilities.numpy import ( DEFAULT_RNG, AsIntError, - EmptyNumpyConcatenateError, FlatN0EmptyError, FlatN0MultipleError, NDArrayF, @@ -94,7 +92,6 @@ maximum, minimum, pct_change, - redirect_empty_numpy_concatenate, shift, shift_bool, ) @@ -1133,12 +1130,6 @@ def test_error(self) -> None: _ = pct_change(arr, n=0) -class TestRedirectEmptyNumpyConcatenate: - def test_main(self) -> None: - with raises(EmptyNumpyConcatenateError), redirect_empty_numpy_concatenate(): - _ = concatenate([]) - - class TestShift: @mark.parametrize( ("n", "expected_v"), diff --git a/src/tests/test_polars.py b/src/tests/test_polars.py index 6b1be4831..2f4ff7b03 100644 --- a/src/tests/test_polars.py +++ b/src/tests/test_polars.py @@ -21,7 +21,6 @@ Struct, Utf8, col, - concat, datetime_range, int_range, lit, @@ -40,7 +39,6 @@ DatetimeUSEastern, DatetimeUTC, DropNullStructSeriesError, - EmptyPolarsConcatError, IsNotNullStructSeriesError, IsNullStructSeriesError, SetFirstRowAsColumnsError, @@ -64,7 +62,6 @@ join, nan_sum_agg, nan_sum_cols, - redirect_empty_polars_concat, set_first_row_as_columns, struct_data_type, yield_struct_series_dataclasses, @@ -631,12 +628,6 @@ def test_main( assert df["z"].item() == expected -class TestRedirectEmptyPolarsConcat: - def test_main(self) -> None: - with raises(EmptyPolarsConcatError), redirect_empty_polars_concat(): - _ = concat([]) - - class TestSetFirstRowAsColumns: def test_empty(self) -> None: df = DataFrame() diff --git a/src/utilities/__init__.py b/src/utilities/__init__.py index 3481fa31b..3c1368fce 100644 --- a/src/utilities/__init__.py +++ b/src/utilities/__init__.py @@ -1,3 +1,3 @@ from __future__ import annotations -__version__ = "0.54.3" +__version__ = "0.55.0" diff --git a/src/utilities/numpy.py b/src/utilities/numpy.py index d0d74553c..7bc4b0f84 100644 --- a/src/utilities/numpy.py +++ b/src/utilities/numpy.py @@ -1,6 +1,5 @@ from __future__ import annotations -from contextlib import contextmanager from dataclasses import dataclass from functools import reduce from itertools import repeat @@ -39,7 +38,6 @@ from numpy.typing import NDArray from typing_extensions import override -from utilities.errors import redirect_error from utilities.iterables import is_iterable_not_str if TYPE_CHECKING: @@ -777,20 +775,6 @@ def __str__(self) -> str: return "Shift must be non-zero" -@contextmanager -def redirect_empty_numpy_concatenate() -> Iterator[None]: - """Redirect to the `EmptyNumpyConcatenateError`.""" - with redirect_error( - ValueError, - EmptyNumpyConcatenateError, - match="need at least one array to concatenate", - ): - yield - - -class EmptyNumpyConcatenateError(Exception): ... - - def shift(array: NDArrayF | NDArrayI, /, *, n: int = 1, axis: int = -1) -> NDArrayF: """Shift the elements of an array.""" if n == 0: @@ -821,7 +805,6 @@ def shift_bool( __all__ = [ "DEFAULT_RNG", "AsIntError", - "EmptyNumpyConcatenateError", "FlatN0EmptyError", "FlatN0Error", "FlatN0MultipleError", @@ -904,7 +887,6 @@ def shift_bool( "maximum", "minimum", "pct_change", - "redirect_empty_numpy_concatenate", "shift", "shift_bool", ] diff --git a/src/utilities/polars.py b/src/utilities/polars.py index 446b90f8f..1134b3a00 100644 --- a/src/utilities/polars.py +++ b/src/utilities/polars.py @@ -3,7 +3,7 @@ import datetime as dt from collections.abc import Callable, Iterable, Iterator, Mapping, Sequence from collections.abc import Set as AbstractSet -from contextlib import contextmanager, suppress +from contextlib import suppress from dataclasses import dataclass from datetime import timezone from enum import Enum @@ -592,18 +592,6 @@ def func(x: Expr, y: Expr, /) -> Expr: return reduce(func, all_exprs) -@contextmanager -def redirect_empty_polars_concat() -> Iterator[None]: - """Redirect to the `EmptyPolarsConcatError`.""" - with redirect_error( - ValueError, EmptyPolarsConcatError, match="cannot concat empty list" - ): - yield - - -class EmptyPolarsConcatError(Exception): ... - - def set_first_row_as_columns(df: DataFrame, /) -> DataFrame: """Set the first row of a DataFrame as its columns.""" with redirect_error(OutOfBoundsError, SetFirstRowAsColumnsError(f"{df=}")): @@ -792,7 +780,6 @@ def zoned_datetime( "DatetimeUSEastern", "DatetimeUTC", "DropNullStructSeriesError", - "EmptyPolarsConcatError", "IsNullStructSeriesError", "SetFirstRowAsColumnsError", "YieldStructSeriesElementsError", @@ -809,7 +796,6 @@ def zoned_datetime( "join", "nan_sum_agg", "nan_sum_cols", - "redirect_empty_polars_concat", "set_first_row_as_columns", "struct_data_type", "yield_struct_series_dataclasses", diff --git a/src/utilities/sqlalchemy_polars.py b/src/utilities/sqlalchemy_polars.py index 84b77dcc9..9498572c5 100644 --- a/src/utilities/sqlalchemy_polars.py +++ b/src/utilities/sqlalchemy_polars.py @@ -41,11 +41,7 @@ chunked, one, ) -from utilities.polars import ( - EmptyPolarsConcatError, - redirect_empty_polars_concat, - zoned_datetime, -) +from utilities.polars import zoned_datetime from utilities.sqlalchemy import ( CHUNK_SIZE_FRAC, EngineOrConnection, @@ -325,9 +321,8 @@ def select_to_dataframe( for sel in sels ) try: - with redirect_empty_polars_concat(): - return concat(dfs) - except EmptyPolarsConcatError: + return concat(dfs) + except ValueError: return DataFrame(schema=prepared.schema) dfs = ( select_to_dataframe( @@ -448,9 +443,8 @@ async def select_to_dataframe_async( for sel in sels ] try: - with redirect_empty_polars_concat(): - return concat(dfs) - except EmptyPolarsConcatError: + return concat(dfs) + except ValueError: return DataFrame(schema=prepared.schema) async def yield_dfs() -> AsyncIterator[DataFrame]: