def chain_sing(*iterables_or_items):
    """
	As itertools.chain except that if an argument is not iterable then chain it
	as a singleton.
	"""
    for iter_or_item in iterables_or_items:
        if hasattr(iter_or_item, '__iter__'):
            for item in iter_or_item:
                yield item
        else:
            yield iter_or_item
