I have been working with python for a few years now, and two of my favorite features about it are iterators and duck typing. The fact that every iterator under the sun can be accessed with a simple for loop is one of the most amazing features of python.
However, there are times when I want to do type checking, and the builtin function *isinstance* is of great use. However, this function fails to be satisfactory in returning whether the object is a valid iterator. The call hasattr(obj, '__iter__') also fails because str and bytes types both have that, and are rarely what you mean when you are asking if something is an iterator (how often have you iterated over a string?) I propose a new builtin to address this problem. I have created code for it here: https://gist.github.com/cloudformdesign/de9b54d30547ddd28ec4 This will allow simple type checking on an input to determine whether it is an iterator.
-- https://mail.python.org/mailman/listinfo/python-list