Improved query

This commit is contained in:
2022-09-15 17:00:22 +02:00
parent ae3192b63c
commit 47ed0a705d
4 changed files with 13 additions and 9 deletions

View File

@@ -19,12 +19,14 @@ class SequenceValues:
if not hasattr(data, '__iter__'):
raise TypeError(f'{type(self).__name__} must be instantiated with an iterable object')
self._data = data
self._new_cycle = lambda: itertools.cycle(data)
self._len = lambda: len(data)
self._index = 0
self._cycle = itertools.cycle(self._data)
self._cycle = self._new_cycle()
def __len__(self):
return sum(1 for item in self._data)
return self._len()
def __iter__(self):
i = 0
@@ -44,4 +46,4 @@ class SequenceValues:
def reset(self):
self._index = 0
self._cycle = itertools.cycle(self._data)
self._cycle = self._new_cycle()

View File

@@ -233,9 +233,9 @@ class Enumerable(EnumerableABC):
if self is None:
raise ArgumentNoneException(ExceptionArgument.list)
if self.count() > 1:
if len(self) > 1:
raise IndexError('Found more than one element')
elif self.count() == 0:
elif len(self) == 0:
return None
return self.element_at(0)
@@ -316,4 +316,4 @@ class Enumerable(EnumerableABC):
if _func is None:
raise ArgumentNoneException(ExceptionArgument.func)
return Enumerable(self.type, [x for x in self if _func(x)])
return Enumerable(self.type, list(filter(_func, self._values)))

View File

@@ -340,4 +340,4 @@ class Iterable(IterableABC):
if _func(element):
result.append(element)
return result
return result