Wraps a single non-iterable value with a tuple (or other iterable type, 
    if ``itertype`` is provided.)
    
        >>> as_iterable("abc")
        ("abc",)
        >>> as_iterable(("abc",))
        ("abc",)
        
    Equivalent to::
    
        if is_iterable(value, not wrap_maps, not wrap_sets):
            return value
        else:
            return itertype(value)

def as_iterable(value, wrap_maps=True, wrap_sets=False, itertype=tuple):
    """Wraps a single non-iterable value with a tuple (or other iterable type, 
    if ``itertype`` is provided.)
    
        >>> as_iterable("abc")
        ("abc",)
        >>> as_iterable(("abc",))
        ("abc",)
        
    Equivalent to::
    
        if is_iterable(value, not wrap_maps, not wrap_sets):
            return value
        else:
            return itertype(value)
            
    """
    if is_iterable(value, not wrap_maps, not wrap_sets):
        return value
    else:
        return itertype(value)