Skip to content

Commit

Permalink
Merge branch 'release/3.8.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
wolph committed Sep 26, 2023
2 parents b3e4bab + e3e7d40 commit 70a6a0a
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
8 changes: 4 additions & 4 deletions _python_utils_tests/test_containers.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def test_unique_list_raise() -> None:


def test_sliceable_deque() -> None:
d: containers.SlicableDeque[int] = containers.SlicableDeque(range(10))
d: containers.SliceableDeque[int] = containers.SliceableDeque(range(10))
assert d[0] == 0
assert d[-1] == 9
assert d[1:3] == [1, 2]
Expand All @@ -49,7 +49,7 @@ def test_sliceable_deque() -> None:


def test_sliceable_deque_pop() -> None:
d: containers.SlicableDeque[int] = containers.SlicableDeque(range(10))
d: containers.SliceableDeque[int] = containers.SliceableDeque(range(10))

assert d.pop() == 9 == 9
assert d.pop(0) == 0
Expand All @@ -65,9 +65,9 @@ def test_sliceable_deque_pop() -> None:


def test_sliceable_deque_eq() -> None:
d: containers.SlicableDeque[int] = containers.SlicableDeque([1, 2, 3])
d: containers.SliceableDeque[int] = containers.SliceableDeque([1, 2, 3])
assert d == [1, 2, 3]
assert d == (1, 2, 3)
assert d == {1, 2, 3}
assert d == d
assert d == containers.SlicableDeque([1, 2, 3])
assert d == containers.SliceableDeque([1, 2, 3])
2 changes: 1 addition & 1 deletion python_utils/__about__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
)
__url__: str = 'https://github.com/WoLpH/python-utils'
# Omit type info due to automatic versioning script
__version__ = '3.8.0'
__version__ = '3.8.1'
14 changes: 7 additions & 7 deletions python_utils/containers.py
Original file line number Diff line number Diff line change
Expand Up @@ -312,28 +312,28 @@ def __delitem__(

# Type hinting `collections.deque` does not work consistently between Python
# runtime, mypy and pyright currently so we have to ignore the errors
class SlicableDeque(types.Generic[T], collections.deque): # type: ignore
class SliceableDeque(types.Generic[T], collections.deque): # type: ignore
@typing.overload
def __getitem__(self, index: types.SupportsIndex) -> T:
...

@typing.overload
def __getitem__(self, index: slice) -> 'SlicableDeque[T]':
def __getitem__(self, index: slice) -> 'SliceableDeque[T]':
...

def __getitem__(
self, index: types.Union[types.SupportsIndex, slice]
) -> types.Union[T, 'SlicableDeque[T]']:
) -> types.Union[T, 'SliceableDeque[T]']:
'''
Return the item or slice at the given index.
>>> d = SlicableDeque[int]([1, 2, 3, 4, 5])
>>> d = SliceableDeque[int]([1, 2, 3, 4, 5])
>>> d[1:4]
SlicableDeque([2, 3, 4])
SliceableDeque([2, 3, 4])
>>> d = SlicableDeque[str](['a', 'b', 'c'])
>>> d = SliceableDeque[str](['a', 'b', 'c'])
>>> d[-2:]
SlicableDeque(['b', 'c'])
SliceableDeque(['b', 'c'])
'''
if isinstance(index, slice):
Expand Down

0 comments on commit 70a6a0a

Please sign in to comment.