negative index when using last() on OrderedQueryable
Closed this issue · 1 comments
GoogleCodeExporter commented
$ python3
>>> from asq.initiators import query
>>> with open('/usr/bin/dict/words', 'r') as words_file:
>>> words = query(words_file).select(str.strip).to_list()
...
>>> query(words).order_by(len).last()
Traceback (most recent call last):
File "/Users/rjs/dev/virtualenvs/meetup3/lib/python3.3/site-packages/asq/queryables.py", line 2248, in __getitem__
return self.element_at(index)
File "/Users/rjs/dev/virtualenvs/meetup3/lib/python3.3/site-packages/asq/queryables.py", line 808, in element_at
raise OutOfRangeError("Attempt to use negative index.")
asq.queryables.OutOfRangeError: Attempt to use negative index.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/rjs/dev/virtualenvs/meetup3/lib/python3.3/site-packages/asq/queryables.py", line 1709, in _last
return self._iterable[-1]
File "/Users/rjs/dev/virtualenvs/meetup3/lib/python3.3/site-packages/asq/queryables.py", line 2250, in __getitem__
raise IndexError(str(e))
IndexError: Attempt to use negative index.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/rjs/dev/virtualenvs/meetup3/lib/python3.3/site-packages/asq/queryables.py", line 1704, in last
return self._last() if predicate is None else self._last_predicate(predicate)
File "/Users/rjs/dev/virtualenvs/meetup3/lib/python3.3/site-packages/asq/queryables.py", line 1711, in _last
raise ValueError("Cannot return last() from an empty sequence.")
ValueError: Cannot return last() from an empty sequence.
What is the expected output? What do you see instead?
Please use labels and text to provide additional information.
Original issue reported on code.google.com by robert.smallshire@gmail.com
on 12 Oct 2012 at 6:44
rob-smallshire commented
This appears to work now:
>>> from asq.initiators import query
>>> with open('/usr/share/dict/words', 'r') as words_file:
... words = query(words_file).select(str.strip).to_list()
...
>>> query(words).order_by(len).last()
'thyroparathyroidectomize'