Jason R. Coombs avatar Jason R. Coombs committed 19f0826

Added itertools.is_empty

Comments (0)

Files changed (2)

 Changes
 -------
 
+5.5
+~~~
+
+* Added `itertools.is_empty`.
+
 5.4
 ~~~
 

jaraco/util/itertools.py

 import itertools
 import collections
 import math
+import functools
 
 from jaraco.util.numbers import ordinalth
+from .exceptions import throws_exception
 
 def make_rows(num_columns, seq):
 	"""
 	"""
 	return iter(tuple())
 
+def is_empty(iterable):
+	"""
+	Return whether the iterable is empty or not. Consumes at most one item
+	from the iterator to test.
+
+	>>> is_empty(xrange(0))
+	True
+	>>> is_empty(xrange(1))
+	False
+	"""
+	get_next = functools.partial(next, iter(iterable))
+	return throws_exception(get_next, StopIteration)
+
 class Reusable(object):
 	"""
 	An iterator that may be reset and reused.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.