diff --git a/requirements.txt b/requirements.txt index 538e22cb1..54e57354d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -137,7 +137,7 @@ idna==3.8 # yarl img2pdf==0.5.1 # via dycw-utilities (pyproject.toml) -importlib-metadata==8.4.0 +importlib-metadata==8.5.0 # via keyring importlib-resources==6.4.5 # via pypiserver @@ -186,7 +186,7 @@ multidict==6.1.0 # via # aiohttp # yarl -narwhals==1.6.4 +narwhals==1.7.0 # via altair nest-asyncio==1.6.0 # via dycw-utilities (pyproject.toml) @@ -266,7 +266,7 @@ polars-lts-cpu==1.6.0 # via dycw-utilities (pyproject.toml) pqdm==0.2.0 # via dycw-utilities (pyproject.toml) -protobuf==5.28.0 +protobuf==5.28.1 # via # streamlit # vegafusion diff --git a/requirements/altair.txt b/requirements/altair.txt index 7b5417eb0..de4ed45a6 100644 --- a/requirements/altair.txt +++ b/requirements/altair.txt @@ -29,7 +29,7 @@ lxml==5.3.0 # via pikepdf markupsafe==2.1.5 # via jinja2 -narwhals==1.6.4 +narwhals==1.7.0 # via altair packaging==24.1 # via diff --git a/requirements/streamlit.txt b/requirements/streamlit.txt index bd9513ecf..adea76f49 100644 --- a/requirements/streamlit.txt +++ b/requirements/streamlit.txt @@ -43,7 +43,7 @@ markupsafe==2.1.5 # via jinja2 mdurl==0.1.2 # via markdown-it-py -narwhals==1.6.4 +narwhals==1.7.0 # via altair numpy==2.1.1 # via @@ -63,7 +63,7 @@ pillow==10.4.0 # via streamlit pluggy==1.5.0 # via pytest -protobuf==5.28.0 +protobuf==5.28.1 # via streamlit pyarrow==17.0.0 # via streamlit diff --git a/src/tests/test_more_itertools.py b/src/tests/test_more_itertools.py index 4830b3b59..9241aa206 100644 --- a/src/tests/test_more_itertools.py +++ b/src/tests/test_more_itertools.py @@ -33,6 +33,14 @@ def test_dropwhile(self) -> None: expected = [5, 6, 7, 8, 9] assert result == expected + def test_iter(self) -> None: + it = peekable(range(10)) + values: list[int] = [] + for value in it: + assert isinstance(value, int) + values.append(value) + assert len(values) == 10 + def test_next(self) -> None: it = peekable(range(10)) value = next(it) diff --git a/src/utilities/__init__.py b/src/utilities/__init__.py index 1bc06655a..d613f4298 100644 --- a/src/utilities/__init__.py +++ b/src/utilities/__init__.py @@ -1,3 +1,3 @@ from __future__ import annotations -__version__ = "0.53.2" +__version__ = "0.53.3" diff --git a/src/utilities/more_itertools.py b/src/utilities/more_itertools.py index a50f16b71..d51c71ba3 100644 --- a/src/utilities/more_itertools.py +++ b/src/utilities/more_itertools.py @@ -41,6 +41,11 @@ class peekable(_peekable, Generic[_T]): # noqa: N801 def __init__(self, iterable: Iterable[_T], /) -> None: super().__init__(iterable) + @override + def __iter__(self) -> Iterator[_T]: # pyright: ignore[reportIncompatibleMethodOverride] + while bool(self): + yield next(self) + @override def __next__(self) -> _T: return super().__next__()